Corso di Laurea in Ingegneria Informatica - Torino Corso di Laurea in Ingegneria Meccanica (Mechanical Engineering) - Torino Corso di Laurea in Ingegneria Dell'Autoveicolo (Automotive Engineering) - Torino Corso di Laurea in Ingegneria Informatica (Computer Engineering) - Torino Corso di Laurea in Ingegneria Dell'Autoveicolo - Torino Corso di Laurea in Electronic And Communications Engineering (Ingegneria Elettronica E Delle Comunicazioni) - Torino Corso di Laurea in Ingegneria Dei Materiali - Torino Corso di Laurea in Ingegneria Elettrica - Torino Corso di Laurea in Ingegneria Aerospaziale - Torino Corso di Laurea in Ingegneria Biomedica - Torino Corso di Laurea in Ingegneria Civile - Torino Corso di Laurea in Ingegneria Edile - Torino Corso di Laurea in Ingegneria Energetica - Torino Corso di Laurea in Ingegneria Meccanica - Torino Corso di Laurea in Ingegneria Per L'Ambiente E Il Territorio - Torino Corso di Laurea in Matematica Per L'Ingegneria - Torino Corso di Laurea in Ingegneria Elettronica - Torino Corso di Laurea in Ingegneria Fisica - Torino Corso di Laurea in Ingegneria Del Cinema E Dei Mezzi Di Comunicazione - Torino Corso di Laurea in Ingegneria Gestionale - Torino Corso di Laurea in Ingegneria Gestionale - Torino
Il corso si pone l'obiettivo di introdurre i concetti, le metodologie e le tecnologie necessarie per progettare e realizzare applicazioni web costituite da elementi testuali, multimediali e interattivi.
Verranno illustrati i concetti di base di linguaggi come HTML5 e CSS3, gli aspetti fondamentali relativi alla programmazione di applicazioni web, comprensiva delle tecnologie lato client (JavaScript) e lato server (con Python), nonché le modalità di interazione con database relazionali. Particolare attenzione verrà posta agli aspetti di accessibilità e progettazione dell'architettura dell'informazione.
La presentazione degli argomenti permetterà agli studenti di ottenere le competenze base per gestire le principali tecnologie per il web ed effettuare scelte di progettazione ragionate per costruire applicazioni web efficaci.
The course aims at introducing the concepts, the methodologies, and the technologies needed to design and implement web applications made of textual, multimedia, and interactive elements.
Students will study the basic concepts of languages like HTML5 and CCS3, the fundamental aspects of the web programming with client-side (JavaScript) and server-side (with Python) technologies, and the modalities of interacting with a relational database. Particular focus will be on the accessibility aspects and the information architecture design.
The topic presentation will enable students to gain the essential skills to manage the main web technologies and make reasoned design choices to create useful web applications.
Al termine del corso, gli studenti e le studentesse saranno in grado di:
- Conoscere i concetti fondamentali relativi alle architetture web, ai suoi protocolli e linguaggi principali.
- Possedere e utilizzare le conoscenze base di un framework in Python per creare applicazioni web.
- Conoscere e usare le principali tecnologie per il web (HTML, CSS, JavaScript) e saperle applicare a scenari reali.
- Creare un'applicazione web completa, di media complessità, usabile e accessibile.
Al termine del corso, gli studenti e le studentesse saranno in grado di:
- Conoscere i concetti fondamentali relativi alle architetture web, ai suoi protocolli e linguaggi.
- Possedere e utilizzare le conoscenze base di un framework in Python per creare applicazioni web.
- Conoscere e usare le principali tecnologie per il web (HTML, CSS, JavaScript) e saperle applicare a scenari reali.
- Creare un'applicazione web completa, di media complessità, usabile e accessibile.
- Programmazione Python (al livello fornito dall'insegnamento di Informatica del primo anno comune di Ingegneria).
- Linguaggio SQL per l'interrogazione di una base di dati (attraverso l'insegnamento di Basi di Dati o formazione personale).
- Programmazione Python (al livello fornito dall'insegnamento di Informatica del primo anno comune di Ingegneria).
- Linguaggio SQL per l'interrogazione di una base di dati (attraverso l'insegnamento di Basi di Dati o formazione personale).
Il corso tratterà i seguenti argomenti:
a) Progettare per il web: architetture e concetti fondamentali (1 credito)
- Architettura delle applicazioni web e cenni sul protocollo HTTP
- Concetti base di progettazione per il web
- Strumenti di sviluppo e debug, dentro e fuori dal browser
- Accessibilità e architettura dell'informazione di applicazioni web
b) Programmazione front-end (3 crediti)
- Il linguaggio HTML5: aspetti base e avanzati
- Cascading Style Sheets (CSS3) e design responsive
- JavaScript e DOM
c) Programmazione back-end (2 crediti)
- Server web e sviluppo in ambiente Python
- Accesso a basi dati relazionali con Python
- Interazione col front-end
Concetti base di progettazione per il web.
Architettura delle applicazioni web e cenni sul protocollo HTTP.
Il linguaggio HTML5.
Cascading Style Sheets (CSS3) e design responsive.
Accessibilità e architettura dell'informazione di applicazioni web.
Programmazione client-side: JavaScript e DOM.
Programmazione server-side: server web e sviluppo in ambiente Python.
Accesso a basi dati relazionali con Python.
Strumenti di sviluppo, dentro e fuori dal browser.
In aggiunta alle ore in aula, che includeranno sia lezioni interattive che esercizi (4 crediti), il corso prevede delle ore di laboratorio (2 crediti).
I laboratori consisteranno nell'applicazione delle tecniche e dei concetti presentati in aula per costruire incrementalmente un'applicazione web di complessità crescente. Durante i laboratori, gli studenti potranno discutere con i docenti le proprie soluzioni agli esercizi a loro assegnati.
Il corso adotterà soluzioni e strumenti moderni per la comunicazione e lo sviluppo di applicazioni web (per esempio, Git e GitHub, Telegram/Slack, ecc.). Le lezioni e gli esercizi in aula saranno video-registrati e messi a disposizione dopo ogni classe.
In aggiunta alle ore in aula, che includeranno sia lezioni interattive che esercizi (4 crediti), il corso prevede delle ore di laboratorio (2 crediti).
I laboratori consisteranno nell'applicazione delle tecniche e dei concetti presentati in aula per costruire incrementalmente un'applicazione web di complessità crescente. Durante i laboratori, gli studenti potranno discutere con i docenti delle proprie soluzioni agli esercizi a loro assegnati.
Il corso adotterà soluzioni e strumenti contemporanei per la comunicazione e lo sviluppo di applicazioni web (per esempio, Git e GitHub, Slack/Discord, ecc.).
Slide e materiale relativo (link, letture, ecc.) saranno forniti dai docenti durante il corso.
Ulteriori risorse consigliate:
* Flavio Copes, Handbook su HTML, CSS, e JavaScript, disponibili online: https://thevalleyofcode.com
* MDN Web Docs, disponibile online: https://developer.mozilla.org
* Miguel Grinberg, "Flask Web Development", seconda edizione, O'Reilly Media Inc., 2018, ISBN 9781491991732
Slide e materiale relativo (link, letture, ecc.) saranno forniti dai docenti durante il corso.
Slides; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Video lezioni dell’anno corrente; Video lezioni tratte da anni precedenti; Strumenti di collaborazione tra studenti;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year); Video lectures (previous years); Student collaboration tools;
E' possibile sostenere l’esame in anticipo rispetto all’acquisizione della frequenza
You can take this exam before attending the course
Modalità di esame: Prova orale obbligatoria; Elaborato progettuale individuale;
Exam: Compulsory oral exam; Individual project;
...
L'esame consisterà nella verifica delle competenze teoriche e pratiche descritte in precedenza attraverso un progetto pratico, da implementare individualmente, seguito da una discussione orale sul progetto stesso. La consegna del progetto avverrà tramite strumenti online, mentre la prova orale sarà svolta in laboratorio o in aula.
Il progetto prevederà la creazione e la consegna di un'applicazione web che utilizzi le competenze e le conoscenze acquisite durante il corso, secondo delle specifiche che saranno pubblicate 20 giorni in anticipo rispetto alla data dell'appello. Solo gli studenti che consegneranno il loro progetto entro la scadenza fissata per ogni appello potranno accedere all'orale.
L'applicazione web sarà valutata dai docenti durante la prova orale, verificando le funzionalità implementate e le tecniche di programmazione adottate rispetto alle specifiche progettuali ricevute. Tale prova orale servirà anche a valutare la conoscenza approfondita del codice consegnato dagli studenti e alla loro capacità di discutere le scelte progettuali effettuate alla luce degli argomenti del corso. Tale discussione avrà una durata prevista di 20-30 minuti per progetto.
La valutazione sarà espressa su una scala da 0 a 30, con il progetto che varrà fino a 26 punti e la prova orale fino a 4. Fino a 2 punti aggiuntivi saranno assegnati ai progetti che dimostreranno una particolare qualità nonché precisione e ricchezza delle risposte durante l’orale. Grazie a questi ulteriori punti, sarà possibile raggiungere una valutazione pari a 30L.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Compulsory oral exam; Individual project;
L'esame consisterà nella verifica delle competenze teoriche e pratiche descritte in precedenza attraverso un progetto pratico, da implementare individualmente, seguito da una discussione orale sul progetto stesso. La consegna del progetto avverrà tramite strumenti online, mentre la prova orale sarà svolta in laboratorio o in aula.
Il progetto prevederà la creazione e la consegna di un'applicazione web che utilizzi le competenze e le conoscenze acquisite durante il corso, secondo delle specifiche che saranno pubblicate alcune settimane in anticipo rispetto alla data dell'appello. Solo gli studenti che consegneranno il loro progetto prima della scadenza fissata per ogni appello potranno accedere all'orale.
L'applicazione web sarà valutata dai docenti durante la prova orale, verificando le funzionalità implementate e le tecniche di programmazione adottate rispetto alle specifiche progettuali ricevute. Tale prova orale servirà anche a valutare la conoscenza approfondita del codice consegnato dagli studenti e alla loro capacità di discutere le scelte progettuali effettuate alla luce degli argomenti del corso. Tale discussione avrà una durata prevista di 20-30 minuti per progetto.
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.