Servizi per la didattica
PORTALE DELLA DIDATTICA
Set-Cookie: language=it; path=/; domain=.polito.it;

Web Applications I

01TXYOV

A.A. 2019/20

Course Language

Inglese

Course degree

Master of science-level of the Bologna process in Computer Engineering - Torino

Course structure
Teaching Hours
Lezioni 21
Esercitazioni in aula 18
Esercitazioni in laboratorio 21
Teachers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Corno Fulvio   Professore Ordinario ING-INF/05 11 18 16 0 2
Teaching assistant
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 C - Affini o integrative Attività formative affini o integrative
2019/20
The course, taught in English in the second semester of the first year of the Master of Science in Computer Engineering, aims at presenting the main techniques for creating distributed web applications, focusing in particular on the front-end programming, using the Javascript language and a client-side programming framework. The main programming paradigms useful for the needs of the front-end of a modern web application will be considered, both by analyzing their impact in term of native Javascript code, and by studying the approaches provided by a dominant framework. The topics presentation will enable the student to gain the basic skill to manage the main design choices within the mentioned topics.
The course, taught in English in the second semester of the first year of the Master of Science in Computer Engineering, aims at presenting the main techniques for creating distributed web applications, focusing in particular on the front-end programming, using the Javascript language and a client-side programming framework. The main programming paradigms useful for the needs of the front-end of a modern web application will be considered, both by analyzing their impact in term of native Javascript code, and by studying the approaches provided by a dominant framework. The topics presentation will enable the student to gain the basic skill to manage the main design choices within the mentioned topics.
- Knowledge of the main aspects of HTML, CSS, Javascript - Ability to use a Javascript at an advanced level for creating web applications at the front-end level. - Basic knowledge of a framework for creating web applications in Javascript - Ability to create complete web applications, also in the “single page application” modality, by using a simple back-end server. - Knowledge of the main issues regarding robustness, security, interoperability, usability and performance of the studied applications, and their applicable best practices.
- Knowledge of the main aspects of HTML, CSS, Javascript - Ability to use a Javascript at an advanced level for creating web applications at the front-end level. - Basic knowledge of a framework for creating web applications in Javascript - Ability to create complete web applications, also in the “single page application” modality, by using a simple back-end server. - Knowledge of the main issues regarding robustness, security, interoperability, usability and performance of the studied applications, and their applicable best practices.
- Ability to program in procedural languages and object oriented languages, and corresponding debugging skills. - Basic knowledge do HTML. - Basic knowledge of web architectures and of the HTTP protocol.
- Ability to program in procedural languages and object oriented languages, and corresponding debugging skills. - Basic knowledge do HTML. - Basic knowledge of web architectures and of the HTTP protocol.
- Recall of web architectures, HTML5, CSS. - Complex layouts, CSS frameworks. Notions of web design. Usability. Accessibility. - Javascript as a language. Variables and objects. Execution in the browser and in nodejs. - Handling forms and tables. DOM. Events. Callbacks. Closures. - Ajax. JSON. REST. Asynchronous programming (async/await, Promise, Fetch). - Introduction to Firebase. CRUD operations. Subscription. - Single Page Applications. Reactive programming. Introduction to ReactJS. - React applications. Web Components. JSX. - Architecture of a complex application. Event routing. State management. - Deployment and publication of applications. - Application examples.
- Recall of web architectures, HTML5, CSS. - Complex layouts, CSS frameworks. Notions of web design. Usability. Accessibility. - Javascript as a language. Variables and objects. Execution in the browser and in nodejs. - Handling forms and tables. DOM. Events. Callbacks. Closures. - Ajax. JSON. REST. Asynchronous programming (async/await, Promise, Fetch). - Introduction to Firebase. CRUD operations. Subscription. - Single Page Applications. Reactive programming. Introduction to ReactJS. - React applications. Web Components. JSX. - Architecture of a complex application. Event routing. State management. - Deployment and publication of applications. - Application examples.
In addition to classes, that include both lectures and exercises in classroom (4 credits), the course includes laboratory exercises (2 credits) on the application of the presented techniques. The laboratories will consist in the application of the techniques learnt during the classes, by incrementally building a web application of increasing complexity. During the labs the students will discuss with the teachers on their solutions to the assigned exercises. The lab material will be managed through a Git-based platform.
In addition to classes, that include both lectures and exercises in classroom (4 credits), the course includes laboratory exercises (2 credits) on the application of the presented techniques. The laboratories will consist in the application of the techniques learnt during the classes, by incrementally building a web application of increasing complexity. During the labs the students will discuss with the teachers on their solutions to the assigned exercises. The lab material will be managed through a Git-based platform.
The teacher will provide the material (copy of slides and links to on-line resources) on the website of the course. Many useful resources are also freely available on the web (https://developer.mozilla.org, https://reactjs.org/, https://javascript.info/, etc). Some suggested textbooks for personal in-depth study: - M. Haverbeke, Eloquent Javascript (https://eloquentjavascript.net/) - A. Accomazzo, A. Lerner, N. Murray, C. Allsopp, D. Guttman, T. McGinnis, Fullstack React, 2019
The teacher will provide the material (copy of slides and links to on-line resources) on the website of the course. Many useful resources are also freely available on the web (https://developer.mozilla.org, https://reactjs.org/, https://javascript.info/, etc). Some suggested textbooks for personal in-depth study: - M. Haverbeke, Eloquent Javascript (https://eloquentjavascript.net/) - A. Accomazzo, A. Lerner, N. Murray, C. Allsopp, D. Guttman, T. McGinnis, Fullstack React, 2019
Modalità di esame: Prova orale obbligatoria; Progetto individuale;
Exam modality: mandatory oral colloquium to discuss the individual project. The exam consists in the verification of the above described expected knowledge and practical skills, through a practical test, followed by an oral discussion. The test consists in creating a web application using the knowledge gained in the course. For the test, an exercise will be assigned about 3 weeks in advance of each exam date. Only students who submit their solution before the deadline are admitted to the oral test. The web application is evaluated by the teacher during the oral session, by verifying the functionality of the web application, the adopted programming techniques, according to a checklist that depends on the test. The detailed knowledge of the submitted source code by the student is also checked, with his ability to discuss the project in light of the course topics.
Exam: Compulsory oral exam; Individual project;
Exam modality: mandatory oral colloquium to discuss the individual project. The exam consists in the verification of the above described expected knowledge and practical skills, through a practical test, followed by an oral discussion. The test consists in creating a web application using the knowledge gained in the course. For the test, an exercise will be assigned about 3 weeks in advance of each exam date. Only students who submit their solution before the deadline are admitted to the oral test. The web application is evaluated by the teacher during the oral session, by verifying the functionality of the web application, the adopted programming techniques, according to a checklist that depends on the test. The detailed knowledge of the submitted source code by the student is also checked, with his ability to discuss the project in light of the course topics.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il