PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Web Applications I

01TXYOV, 01TXYSM

A.A. 2024/25

Course Language

Inglese

Degree programme(s)

Master of science-level of the Bologna process in Ingegneria Informatica (Computer Engineering) - Torino
Master of science-level of the Bologna process in Data Science And Engineering - Torino

Course structure
Teaching Hours
Lezioni 21
Esercitazioni in aula 21
Esercitazioni in laboratorio 18
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Corno Fulvio   Professore Ordinario IINF-05/A 21 9 0 0 7
Co-lectures
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 C - Affini o integrative Attività formative affini o integrative
2024/25
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, modern JavaScript - Ability to use a JavaScript at an advanced level for creating web applications at the front-end layer. - Basic knowledge of a framework for creating web applications in JavaScript - Ability to create complete web applications, in the “single page application” modality, by using a simple back-end API server. - Knowledge of the main issues regarding robustness, security, interoperability, 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 of HTML. - Basic knowledge of web architectures and of the HTTP protocol. - Practical skills with relational Data Bases and SQL
- Recall of web architectures, HTML5, CSS. - Complex layouts, CSS frameworks. Notions of web design. - JavaScript as a language. Variables and objects. Execution in the browser and in nodejs. - Interaction with a SQLite database in nodejs applications. - Web servers and ExpressJS - JSON. HTTP API. Asynchronous programming (async/await, Promise, Fetch).- Handling forms and tables. DOM. Events. Callbacks. Closures. - Single Page Applications. Reactive programming. Introduction to ReactJS. - React applications. Components. JSX. - Architecture of a complex application. Event routing. State management. - Authentication and API authorization. - Application examples.
Communication with the teachers will rely on a shared Telegram group. The Laboratory activities and the exam submission will require a GitHub account.
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 classes will consist approximately of 60% of theoretical lectures and 40% of in-class development of exercises (a web application will be incrementally built to illustrate the different topics); students are invited to attend with their personal computer to code along with the teacher. Exercises developed in the classroom will be immediately shared with the students. All lectures will be video-recorded and published to the students. 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. Laboratories will be held in regular lecture rooms, and the students are expected to work on their own computers.
The teacher will provide the material (copy of slides and links to on-line resources) on the website of the course: https://elite.polito.it/ Many useful resources are also freely available on the web (https://developer.mozilla.org, https://react.dev/, 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
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year); Video lectures (previous years);
You can take this exam before attending the course
Exam: Compulsory oral exam; Individual project;
Exam modality: development of an individual project and oral discussion. The exam consists in the verification of the above described expected knowledge and practical skills, through a practical project (to be implemented individually), followed by an oral discussion. The project consists in creating a web application using the knowledge gained in the course. For each exam call, an exercise will be assigned 20 days 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, by verifying the functionality of the web application, the adopted programming techniques, according to the published specifications. The detailed knowledge of the submitted source code by the student is checked during the oral test, alongside with his/her ability to discuss the project in light of the course topics. The oral discussion will last 20-30 minutes, and will be taken in a classroom or a laboratory. The exam score will be on a scale of 30 points, of which 26 are assigned to the evaluation of the project, and 4 to the oral discussion. Additionally, up to 2 points may be assigned to projects of exceptional quality and to discussions of particular brilliance; with such extra points it's possible to attain the 30L score. All the process of project assignment, development, and submission will be managed through the GitHub platform.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word