Nuova ricerca

Simone CALDERARA

Professore Ordinario
Dipartimento di Ingegneria "Enzo Ferrari"

Insegnamento: Intelligenza Artificiale e Tecnologie Web

Ingegneria Informatica (MO) (Offerta formativa 2024)

Obiettivi formativi

L’insegnamento integrato si colloca nell’ area di apprendimento Informatica per l'ICT ed è finalizzato a fornire le conoscenze dei principi di base dei sistemi per l'elaborazione dell'informazione e le capacità fondamentali per il loro utilizzo.
L’insegnamento svolge attività formative volte ad agevolare le scelte professionali.
Al termine dell’insegnamento, lo studente sarà in grado di applicare le conoscenze di sviluppo di applicativi software in qualsiasi ambito sapendo integrare le conoscenze di tecnologie del web e i metodi base dell'intelligenza artificiale.



INTELLIGENZA ARTIFICIALE:
Il corso mira a fornire conoscenze e competenze sulle principali tecniche di machine learning e intelligenza artificiale per l’analisi di dati numerici.
Il corso fornirò un introduzione agli strumenti di base per la risoluzione di problemi di apprendimento automatico siano essi supervisionati e non supervisionati.
Il corso si svolge con lezioni frontali e attività laboratoriale in linguaggio python tramite la libreria di calcolo numpy.

TECNOLOGIE WEB:
Il corso mira a fornire conoscenze e competenze su metodologie e tecnologie per il progetto e lo sviluppo di moderne applicazioni basate su infrastrutture Web e mobile. Gli argomenti trattati riguardano le tecnologie Web, e lo sviluppo di applicazioni web e mobili.
Inoltre, il corso contiene un’introduzione alla programmazione in Python e Django.
Il corso si svolge con lezioni frontali che introducono concetti teorici, linguaggi di programmazione e con progetti individuali in cui gli studenti applicheranno quanto appreso ad applicazioni reali.

Prerequisiti

INTELLIGENZA ARTIFICIALE:
E’ necessaria una buona conoscenza delle analisi matematiche e della geometria.
Inoltre, verranno utilizzati concetti provenienti dal corso di statistica.

TECNOLOGIE WEB:
E' gradita una conoscenza di base di database, linguaggio SQL, e Java.

Programma del corso

Intelligenza Artificiale (54 ore, 6 CFU - tenuto dal prof. Simone Calderara):
-Introduzione all’intelligenza artificiale
-Teoria dei metodi di apprendimento
-Apprendimento supervisionato e classificazione lineare
-Apprendimento statistico e Bayesiano
-Metodi di clustering e apprendimento non supervisionato
-Teoria dell’intelligenza artificiale simbolica.

Tecnologie Web (54 ore, 6 CFU - tenuto dalla prof. Po)
- Protocolli Web: Introduzione storica, URI e protocollo HTTP, HTTP2/0, Linguaggi di descrizione della pagina: HTML e CSS
- Programmazione Server Side: Servlet e JSP
- Programmazione Client Side: Javascript,Ajax, JSON, HTML5, React
- Progetto di applicazioni (Sistemi multi-livello, applicazioni mashup, servizi RESTful, interazione con sensori mobili, sviluppo event-driven)
- Tecnologie e linguaggi per lo sviluppo di applicazioni Web (Python, Django, interfacce REST)
- Sviluppo e programmazione su piattaforma mobile (in particolare: Android, React Native)
- Valutazione delle prestazioni e della user experience

Saranno possibili integrazioni e/o modifiche dei contenuti in relazione a situazioni contingenti o alla luce dei feedback degli studenti.

Metodi didattici

L’insegnamento viene erogato in lingua italiana mediante lezioni frontali in presenza che vengono svolte con l’ausilio di mezzi audiovisivi (presentazioni in Power Point rese disponibili agli studenti, prevalentemente in lingua inglese). Sono previste diverse esercitazioni pratiche che prevedono l’uso di strumenti software e attività pratiche di laboratorio.
La frequenza non è obbligatoria.


Testi di riferimento


Per affrontare alla verifica dell’apprendimento, gli studenti devono prepararsi utilizzando le slide e il materiale fornito dai docenti durante le lezioni, oltre che i tool software analizzati, e le esercitazioni svolte.

Tutte le slide e il materiale didattico sono rese disponibili man mano che vengono affrontate durante le lezioni sul sito MOODLE https:// https://moodle.unimore.it/

Materiali didattici aggiuntivi per l'approfondimento, come libri e articoli di ricerca saranno menzionati durante le lezioni o elencati come materiali per lo svolgimento della tesina.

---
To address the verification of learning, students must prepare using the slides and material provided by the teachers during the lessons, as well as the software tools analyzed, and the exercises carried out.

All the slides and teaching material are made available as they are addressed during the lessons on the MOODLE website https:// https://moodle.unimore.it/

Additional teaching materials for in-depth study, such as books and research articles will be mentioned during the lessons or listed as materials for carrying out the dissertation.


Verifica dell'apprendimento

INTELLIGENZA ARTIFICIALE:
La verifica dell’apprendimento sarà un esame scritto con domande chiuse e in forma aperta sui contenuti e le parti formali dell’insegnamento.
Potrebbe essere prevista una tesina (facoltativa) che consiste nella soluzione di una competizione kaggle e sua discussione.

TECNOLOGIE WEB
Per il modulo di Tecnologie Web, la verifica si compone di una tesina individuale su un argomento scelto a piacere dallo studente a partire da suggerimenti forniti dal docente e da un colloquio orale.
La tesina individuale richiede all’incirca 3 settimane di lavoro e può consistere nel l’ideazione ed elaborazione di un progetto/ applicazione web. Per presentare il lavoro della tesina, lo studente compone una presentazione power point di 10-15 slide e la presenta al docente referente in occasione dell’esame orale. La tesina è finalizzata a valutare la capacità di applicare conoscenza e comprensione oltre che l’autonomia di giudizio.
L’orale tratta tutti gli argomenti svolti a lezione e può contenere sia domande di teoria che esercizi, inoltre include la presentazione dell’attività svolta nella tesina individuale. Le domande (aperte e chiuse) sono finalizzate a valutare l’acquisizione da parte dello studente delle conoscenze e delle capacità di comprensione della parte nozionistica/teorica dell’insegnamento. Gli esercizi svolti, anche tramite l’ausilio di software, sono finalizzati a valutare la capacità di applicare conoscenza e comprensione.
Al termine della prova orale il docente comunicherà la valutazione comprensiva di orale e tesina.
Durante lo svolgimento degli esercizi il candidato potrà accedere a tutta la documentazione del corso (slide, libri, appunti etc.)

Il voto complessivo del corso integrato sarà la media ponderata dei voti dei singoli moduli (IA e TW).

Risultati attesi

INTELLIGENZA ARTIFICIALE:
Conoscenza e Comprensione:
Conoscere e comprendere le principali tecniche di pattern recognition e machine learning per l'analisi di dati di natura eterogenea.
Capacità di applicare conoscenza e comprensione:
Sapere applicare i principali algoritmi di classificazione di dati, di sequenze temporali di informazioni e di pattern complessi quali ad esempio le immagini e sapere applicare le principali tecniche di apprendimento automatico sia di tipo supervisionato che non supervisionato.
Autonomia di Giudizio:
autonomia di giudizio nell'analizzare e progettare sistemi complessi, valutando l'impatto delle soluzioni informatiche nel contesto applicativo, sia relativamente agli aspetti tecnici che agli aspetti organizzativi e dimostrando di partecipare attivamente al processo decisionale in contesti anche interdisciplinari.
Abilità comunicative:
descrivere a interlocutori eterogenei in modo chiaro e comprensibile informazioni, idee, problemi e soluzioni oltre che aspetti tecnici;
Capacità di apprendimento:
-capacità di riconoscere la necessità di apprendimento autonomo durante tutto l'arco della vita, dato l'elevato tasso di innovazione tecnologica e metodologica nell'area dell'Ingegneria Informatica;
- capacità di acquisire in modo autonomo nuove conoscenze specialistiche dalla letteratura


TECNOLOGIE WEB:
Al termine del corso, lo studente conoscerà le tecnologie più importanti utilizzate in ambito World Wide Web, sarà in grado di scrivere documenti e applicazioni Web e mobili, di curarne l'aspetto visivo, di verificarne la correttezza e universalità, e di progettarne e verificarne l'usabilità e la user experience.

1) Conoscenza e capacità di comprensione
Al termine dell’insegnamento e della verifica dell’apprendimento, si auspica che lo/a studente/essa sia in grado di:
a) orientarsi all’interno delle tecnologie web e mobili riconoscendo e confrontando le funzionalità di linguaggi/sistemi/architetture diversi;
b) descrivere i passi da intraprendere per modellare, sviluppare e valutare applicazioni web e mobili
c) applicare tecniche avanzate per verificare l'usabilità e la user experience.


2) Conoscenza e capacità di comprensione applicate
a) svolgere una analisi di dettaglio dei requisiti di una applicazione e suggerire le tecnologie più adatte a implementare l’applicazione;
b) padroneggiare i linguaggi e gli strumenti software utilizzati durante l’insegnamento e l’esame.

3) Autonomia di giudizio
a) verificare il proprio grado di apprendimento e comprensione dei concetti esposti grazie alla possibilità d’intervento a lezione e alla possibilità rappresentata dalla tesina individuale;
b) riorganizzare le conoscenze apprese ed implementare la propria capacità di valutazione critica ed autonoma di quanto appreso;
c) valutare soluzioni informatiche avanzate nell’ambito delle applicazioni web e mobili.


4) Abilità comunicative
a) esprimere in modo corretto e logico le proprie conoscenze, riconoscendo l’argomento richiesto e rispondendo in modo puntuale e completo alle domande d’esame orale;
b) sintetizzare ed elaborare compiutamente le ricerche e gli sviluppi condotti all’interno della tesina illustrandone i concetti chiave e gli elementi di distinzione del proprio lavoro individuale rispetto allo stato dell’arte;
c) padroneggiare una terminologia accurata e propria dell’ingegneria dell’informazione

5) Capacità di apprendimento
a) approfondire le nozioni apprese per provvedere autonomamente al proprio aggiornamento particolarmente cruciale in un ambito di sviluppo web e mobile dove le tecnologie sono in continua evoluzione;
b) impadronirsi ed affinare il proprio linguaggio scientifico e tecnico.