Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
didattica:triennale:programmazioneweb:ay_1516:main [2016/06/18 16:55] luca [Esami] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Programmazione Web ====== | ||
- | ---- | ||
- | ===== News ===== | ||
- | <WRAP center round important 95%> | ||
- | * <wrap em>**18/04/2016**</wrap>: Inizio seconda parte del corso | ||
- | * <wrap em>**11/04/2016 e 12/04/2016**</wrap>: Lezioni sospese (reading) | ||
- | * <wrap em>**05/04/2016**</wrap>: Fine prima parte del corso | ||
- | * <wrap em>**01/03/2016**</wrap>: Inizio del corso | ||
- | </WRAP> | ||
- | ---- | ||
- | ===== Informazioni Generali ===== | ||
- | <WRAP box round 95% center> | ||
- | **Docente**: | ||
- | * [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=572&ru=RU|Luca Tesei]] | ||
- | * [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=990&ru=PA|Francesco Tiezzi]] | ||
- | |||
- | **Orario delle Lezioni**: | ||
- | * Lunedì 15 - 17 (Aula, A. Turing) | ||
- | * Martedì 11 - 13 (Aula, A. Turing) | ||
- | |||
- | |||
- | **Ricevimento studenti**: | ||
- | * <del>Tesei: mercoledì dalle 11.30 alle 13.30, stanza CS 07, secondo piano del Polo Tecnologico Palazzo Battibocca,via del Bastione 1, Camerino</del> | ||
- | * Tesei: a partire dal 13 giugno 2016 l'orario di ricevimento valido sarà solo quello indicato su [[http://docenti.unicam.it/pdett.aspx?ids=N&tv=d&UteId=572&ru=RU|questa pagina]]. | ||
- | * Tiezzi: su appuntamento (via email), stanza CS 08, secondo piano del Polo Tecnologico Palazzo Battibocca,via del Bastione 1, Camerino | ||
- | </WRAP> | ||
- | ---- | ||
- | ===== Obiettivi del Corso ===== | ||
- | |||
- | <WRAP box round 95% center> | ||
- | D1 - CONOSCENZA E CAPACITÀ DI COMPRENSIONE\\ | ||
- | Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:\\ | ||
- | - Conoscere le architetture di base a supporto della programmazione Web. | ||
- | - Conoscere le nozioni e i costrutti dei linguaggi per la programmazione Web, in particolare HTML5, PHP, JavaScript, Java Servlet e JSP. | ||
- | - Conoscere gli applicativi software di supporto alla programmazione Web, quali Apache, MySQL, Tomcat. | ||
- | |||
- | D2 - CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE\\ | ||
- | Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:\\ | ||
- | - Programmare un sito Web dinamico con le diverse tecnologie presentate nel corso. | ||
- | - Effettuare il deployment del software sviluppate nelle opportune piattaforme server. | ||
- | |||
- | D3 - AUTONOMIA DI GIUDIZIO\\ | ||
- | Risultati attesi: \\ | ||
- | Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: | ||
- | - Ordered List Item Identificare l'architettura, i linguaggi e le tecnologie più adatte dati i requisiti del sito Web da sviluppare. | ||
- | |||
- | D4 - ABILITÀ COMUNICATIVE\\ | ||
- | Risultati attesi:\\ | ||
- | Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: | ||
- | - Ordered List ItemScrivere un rapporto chiaro sullo sviluppo di un progetto | ||
- | |||
- | D5 - CAPACITÀ DI APPRENDIMENTO\\ | ||
- | Risultati attesi:\\ | ||
- | Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di: | ||
- | - Ordered List ItemComprendere e imparare ad usare autonomamente le nuove versioni delle tecnologie e dei linguaggi presentati nel corso, nonché librerie aggiuntive e tecnologie analoghe | ||
- | </WRAP> | ||
- | |||
- | ---- | ||
- | ===== Contenuti del Corso ===== | ||
- | |||
- | <WRAP round 95% center box> | ||
- | * Nozioni base di Programmazione Web | ||
- | * Architetture Client/Server | ||
- | * Installazione e configurazione dei vari componenti software per lo sviluppo, test e deployment di applicazioni Web (Apache, MySql, Tomcat, ecc.) | ||
- | * Linguaggi e Tool di sviluppo lato client: HTML 5, CSS, JavaScript, JQuery | ||
- | * Linguaggi e Tool di sviluppo lato server: PHP, Java Servlet, JSP | ||
- | </WRAP> | ||
- | ---- | ||
- | ===== Materiale ===== | ||
- | <WRAP box round center 95%> | ||
- | **Slide del Corso** | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:intro.pdf|Informazioni generali}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:html-css.pdf|HTML e CSS}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:01-overview-and-setup.pdf|Core servlets: Overview and setup}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:02-servlet-basics.pdf|Core servlets: Servlet basics}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:03-form-data.pdf|Form data}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:04-request-headers.pdf|Request header}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:05-status-codes.pdf|Status code}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:06-response-headers.pdf|Response header}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:07-cookies.pdf|Cookies}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:08-session-tracking.pdf|Session tracking}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:09-jsp-intro.pdf|Introduction to JSP}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:10-jsp-scripting-elements.pdf|JSP scripting elements}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:11-page-directive.pdf|JSP page directive}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:xamp.pdf|XAMP Platform}}, {{:didattica:triennale:programmazioneweb:ay_1516:javascript1.pdf|Intro Javascript}}, reference: [[http://www.w3schools.com/js/default.asp|W3C Javascript Tutorial]] | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:javascript2.pdf|JS Scope delle variabili e Tutorial (segue da Intro)}}, {{:didattica:triennale:programmazioneweb:ay_1516:variablesjs.html.zip|Codice allegato per testare lo scope delle variabili}} | ||
- | - {{:didattica:triennale:programmazioneweb:ay_1516:javascript3.pdf|JS e Document Object Model (DOM) HTML}} | ||
- | - Installazione di [[https://www.apachefriends.org/it/index.html|XAMPP]], Tutorial W3C [[http://www.w3schools.com/sql/default.asp|SQL]], uso di phpMyAdmin | ||
- | - Verifica funzionamento componenti XAMPP, creazione di tabelle e connessione al db {{:didattica:triennale:programmazioneweb:ay_1516:initxampp.zip|Codice}}, Connessione Tra PHP e MySQL: [[http://www.w3schools.com/php/php_mysql_intro.asp|Tutorial W3C Schools]] {{:didattica:triennale:programmazioneweb:ay_1516:phpmysqlstart.zip|Codice di Prova}} | ||
- | - PHP modello di memoria, scope delle variabili e passaggio dei parametri {{:didattica:triennale:programmazioneweb:ay_1516:php1.pdf|Slides}}, PHP [[http://www.w3schools.com/php/|W3C Schools Tutorial]], {{:didattica:triennale:programmazioneweb:ay_1516:phpvariablesvariousfirstform.zip|Codice con esempi}} | ||
- | - Esercitazione: Blog {{:didattica:triennale:programmazioneweb:ay_1516:blog-core.zip|Codice Blog (Core)}}, [[http://www.w3schools.com/php/php_forms.asp|Gestione dei form e dell'input in PHP]], [[http://www.w3schools.com/php/php_sessions.asp|Gestione delle sessioni in PHP]], {{:didattica:triennale:programmazioneweb:ay_1516:blogregistration.zip|Codice Blog (Core) con Registrazione di un utente (no DB connection) e controllo dell'input + Logout}} | ||
- | - W3C Tutorial: [[http://www.w3schools.com/php/php_arrays_multi.asp|PHP Advanced Topics]], Discussione sui progetti finali | ||
- | - W3C Tutorials: [[http://www.w3schools.com/php/php_xml_parsers.asp|Parser XML e loro uso un PHP]], [[http://www.w3schools.com/php/php_ajax_intro.asp|Connessioni Http Asincrone con AJAX e script PHP lato server]] | ||
- | - W3C Tutorials: [[http://www.w3schools.com/jquery/default.asp|jQuery]] | ||
- | - Modern Web Development - {{:didattica:triennale:programmazioneweb:ay_1516:lezione-e-xtrategy.pdf|Lezione straordinaria tenuta da Francesco Strazzullo di e-xtrategy s.r.l. }} - [[http://slides.com/francescostrazzullo/modern-web-development-unicam-2016#/|Slides]] | ||
- | |||
- | **Tool** | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:apache-tomcat-7.0.68.zip|Apache Tomcat 7.0.68}} | ||
- | * [[http://www.eclipse.org|Eclipse IDE for Java EE Developers]] | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:test-app.zip|Esempi di test (test-app.zip)}} | ||
- | |||
- | **Esercitazioni** | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:esercitazione1.pdf|Esercitazione 1}} | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:esercitazione2.pdf|Esercitazione 2}} | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:esercitazione3.pdf|Esercitazione 3}} ({{:didattica:triennale:programmazioneweb:ay_1516:esercitazione3_soluzione.zip|soluzione}}) | ||
- | * {{:didattica:triennale:programmazioneweb:ay_1516:trisjs.html.zip|Stub del codice della Esercitazione sul gioco del Tris in Javascript}} | ||
- | |||
- | **Testi di Riferimento** | ||
- | * Marty Hall, Larry Brown. Core Servlets and Javaserver Pages: Core Technologies, Vol. 1. 2a edizione, Prentice Hall (il libro è disponibile gratuitamente in PDF al sito: http://pdf.coreservlets.com) | ||
- | * W3C Schools: http://www.w3schools.com | ||
- | </WRAP> | ||
- | ---- | ||
- | ===== Esami ===== | ||
- | <WRAP box round center 95%> | ||
- | **Date degli Esami A.A. 2015/2016** | ||
- | * 1° appello | ||
- | * Prova Scritta: Mar 21/06/2016 ore 15:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 21/06/2016 ore 15:00 | ||
- | * Orali progetto: dal 23/06/2016 al 01/07/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 22/06/2016 in base ai progetti consegnati | ||
- | * 2° appello | ||
- | * Prova Scritta: Lun 04/07/2016 ore 11:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 04/07/2016 ore 11:00 | ||
- | * Orali progetto: dal 11/07/2016 al 14/07/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 05/07/2016 in base ai progetti consegnati | ||
- | * 3° appello | ||
- | * Prova Scritta: Mar 19/07/2016 ore 15:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 19/07/2016 ore 15:00 | ||
- | * Orali progetto: dal 25/07/2016 al 29/07/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 20/07/2016 in base ai progetti consegnati | ||
- | * 4° appello | ||
- | * Prova Scritta: Mar 06/09/2016 ore 15:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 06/09/2016 ore 15:00 | ||
- | * Orali progetto: dal 08/09/2016 al 09/09/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 07/09/2016 in base ai progetti consegnati | ||
- | * 5° appello | ||
- | * Prova Scritta: Mar 20/09/2016 ore 15:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 20/09/2016 ore 15:00 | ||
- | * Orali progetto: dal 22/09/2016 al 23/09/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 21/09/2016 in base ai progetti consegnati | ||
- | * 6° appello | ||
- | * Prova Scritta: Mar 04/10/2016 ore 15:00 Aula A. Turing, ex Tribunale | ||
- | * Consegna progetto: entro il 04/10/2016 ore 15:00 | ||
- | * Orali progetto: dal 06/10/2016 al 07/10/2016, il calendario verrà pubblicato **in questo spazio wiki** in data 05/10/2016 in base ai progetti consegnati | ||
- | * 7° appello | ||
- | * Prova Scritta: Mar 07/02/2017 ore 15:00 Aula **Da Definire - Guardare su ESSE3** | ||
- | * Consegna progetto: entro il 07/02/2017 ore 15:00 | ||
- | * Orali progetto: dal 09/02/2017 al 10/02/2017, il calendario verrà pubblicato **in questo spazio wiki** in data 08/02/2017 in base ai progetti consegnati | ||
- | * 8° appello | ||
- | * Prova Scritta: Mar 21/02/2017 ore 15:00 Aula **Da Definire - Guardare su ESSE3** | ||
- | * Consegna progetto: entro il 21/02/2017 ore 15:00 | ||
- | * Orali progetto: dal 23/02/2017 al 24/02/2017, il calendario verrà pubblicato **in questo spazio wiki** in data 22/02/2017 in base ai progetti consegnati | ||
- | |||
- | **Regole di esame** | ||
- | |||
- | Il raggiungimento dei risultati di apprendimento è verificato attraverso due prove: | ||
- | * Prova Scritta obbligatoria (domande a risposta chiusa e aperta) sugli argomenti trattati a lezione. | ||
- | * Realizzazione di un Progetto Software (si veda sotto) con relazione scritta e discussione orale. Gli studenti che realizzano il progetto in gruppo (massimo 2 studenti per gruppo) devono obbligatoriamente sostenere la prova orale nello stesso appello. La discussione orale verterà principalmente sul progetto realizzato. Lo studente (o gli studenti se in gruppo) potranno preparare una presentazione del loro progetto (durata massima 15 minuti). | ||
- | |||
- | Le due prove possono essere superate nello stesso appello o in due appelli separati. Il voto finale potrà essere registrato solo dopo il superamento di entrambe le prove. Per poter effettuare la prova scritta in un certo appello è necessario iscriversi entro la data di scadenza indicata in ESSE3 (qualche giorno prima della data dello scritto). Per poter effettuare la prova orale del progetto in un certo appello bisogna consegnare il progetto entro la data prevista per quell'appello (si veda la sezione date degli esami qui sopra). Le modalità di consegna del progetto sono indicate di seguito nell'apposita sezione. | ||
- | |||
- | **Progetto software** | ||
- | |||
- | Il progetto software può essere realizzato individualmente o in gruppi di massimo 2 studenti. Il progetto deve realizzare un'applicazione web basata su una delle seguenti architetture presentate durante il corso: | ||
- | * HTML + CSS + Javascript + Java Servlet / JSP + MySQL | ||
- | * HTML + CSS + Javascript + PHP + MySQL | ||
- | |||
- | Business logic e front-end dell'applicazione sono a discrezione degli studenti purché possano essere inquadrati in una delle seguenti aree: | ||
- | * Social network | ||
- | * Blogging / Publishing | ||
- | * Browsing of items, ad esempio e-commerce, digital library ecc. | ||
- | * Game | ||
- | |||
- | L'applicazione deve obbligatoriamente prevedere: | ||
- | * Lato client realizzato in HTML5 con foglio di stile ed eventuale Javascript | ||
- | * Un DataBase lato server per la gestione dei dati permanenti | ||
- | * L'uso di sessioni per la gestione dei dati transitori (ad esempio sessioni di login/logout, carrelli ecc.) | ||
- | |||
- | Il progetto deve essere accompagnato da una relazione scritta (in formato pdf) che ne descrive le funzionalità, le tecnologie utilizzate, le soluzioni progettuali adottate e le soluzioni implementative adottate. | ||
- | |||
- | ** Consegna del progetto ** | ||
- | |||
- | Il progetto va consegnato all'interno di uno degli appelli previsti entro la data di consegna prevista per quell'appello. Si vedano le date indicate nella sezione Date degli Esami qui sopra. | ||
- | |||
- | Il progetto va consegnato inserendo la relazione scritta (in pdf), il codice e ogni altro documento ritenuto attinente in una cartella condivisa Google Drive di nome: | ||
- | |||
- | ''PW1516-AppelloX-CognomeStudente1-NomeStudente1-CognomeStudente2-NomeStudente2'' | ||
- | |||
- | La cartella dovrà essere condivisa tra gli studenti del gruppo tramite l'account ''nome.cognome@studenti.unicam.it'' e, solamente in visualizzazione, con ''luca.tesei@unicam.it'' e ''francesco.tiezzi@unicam.it''. Per la data di consegna farà fede la data di caricamento dei file in Google Drive. | ||
- | |||
- | Ad esempio, lo studente Mario Rossi che vuole consegnare il progetto per fare l'orale nel secondo appello dal 11/07/2016 al 14/07/2016 dovrà creare la cartella ''PW1516-Appello2-Rossi-Mario'' e condividerla con i docenti entro le ore 11:00 del 04/07/2016, come indicato nelle date di esame. | ||
- | |||
- | |||
- | ** Risultati Esame ** | ||
- | * N/A | ||
- | </WRAP> |