- Docente: Giancarlo Succi
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
-
Corso:
Laurea Magistrale in
Informatica (cod. 5898)
Valido anche per Laurea Magistrale in Governance e politiche dell'innovazione digitale (cod. 5889)
-
dal 16/09/2024 al 20/12/2024
Conoscenze e abilità da conseguire
L'insegnamento si propone di formare gli studenti, affinché alla fine del corso: • conoscano i principali modelli cognitivi che possano spiegare come le persone sviluppano il software • siano consapevoli delle opportunità e dei limiti dell’applicazione degli strumenti dell’intelligenza artificiale per lo sviluppo del software • acquisiscano familiarità a come i principi di ingegneria del software possano guidare lo sviluppo di sistemi basati sull’intelligenza artificiale • padroneggino i principi del blockchain e le sue applicazioni • comprendano il ruolo e le potenzialità delle criptovalute, e le problematiche ad esse associate nello sviluppo di sistemi software • riescano costruire complessi modelli di produzione e di prodotto combinando i vari settori di punta degli odierni produttivi, con particolare rilevanza all’intelligenza artificiale, ai sistemi blockchain e alle criptovalute
Contenuti
Negli ultimi anni si è assistito ad un sostanziale cambio di paradigma nello sviluppo del software che ha portato a ripensare processi ed ambiti applicativi. In particolare, è emerso un rinnovato interesse per l’intelligenza artificiale, con un forte interesse all’applicazione dell’apprendimento automatico nei modelli di predizione e qualità, e nell’uso di modelli cognitivi per orientare i processi di produzione. D’altro canto, è emerso un forte bisogno di identificare strumenti software adatti per gestire le piattaforme di analisi dati, che sono sempre più complesse e generano sistemi che in prima battuta sembrano di notevole portata ma poi sono difficili da far evolvere. In aggiunta a tutto questo il settore è stato permeato da una sempre maggiore distribuzione delle applicazioni e dei processi di sviluppo, intrecciato con le nuove modalità di gestione degli aspetti e delle applicazioni relative all’introduzione dei sistemi a blockchain e alle criptovalute.
Prerequisiti:
Pur non avendo alcun prerequisito formale, il corso si caratterizza come corso di ingegneria del software e quindi non presenterà gli aspetti fondanti dell’intelligenza artificiale e dell’apprendimento automatico; all’uopo si raccomanda agli studenti che non abbiano tali competenze di seguire preventivamente il corso di Deep Learning, cod. 91250, del prof. Asperti.
Conoscenze e abilità da conseguire:
Questo è un corso di ingegneria del software che si propone di formare gli studenti, affinché alla fine del corso:
- conoscano i principali modelli cognitivi che possano spiegare come le persone sviluppano il software
- siano consapevoli delle opportunità e dei limiti dell’applicazione degli strumenti dell’intelligenza artificiale per lo sviluppo del software
- acquisiscano familiarità a come i principi di ingegneria del software possano guidare lo sviluppo di sistemi basati sull’intelligenza artificiale
- padroneggino i principi del blockchain e le sue applicazioni
- comprendano il ruolo e le potenzialità delle criptovalute, e le problematiche ad esse associate nello sviluppo di sistemi software
- riescano costruire complessi modelli di produzione e di prodotto combinando i vari settori di punta degli odierni produttivi, con particolare rilevanza all’intelligenza artificiale, ai sistemi blockchain e alle criptovalute
Contenuti di massima:
- Modelli cognitivi per lo sviluppo software (approcci sistemici e modelli impulsivo-riflessivo)
- Applicazioni di intelligenza artificiale nello sviluppo software (testing, predizione, valutazione, ...)
- Uso dei principi software nello sviluppo dei sistemi di intelligenza artificiale
- Blockchain (principi, Distributed Ledger Technology, smart contract, piattaforme)
- Criptovalute (principi di valute centralizzate e distribuite, transazioni, consensus algorithm, panoramica sulle valute esistenti)
Testi/Bibliografia
Data la novità del temi e la loro continua evoluzione, non c’è un testo ufficiale del corso, ma il docente provvederà a fornire una lista di letture rilevanti per il corso.
Metodi didattici
- Lezioni frontali
- Esercitazioni guidate
- Discussioni
- Presentazioni di esperti
- Presentazioni da parte degli studenti
Modalità di verifica e valutazione dell'apprendimento
- Nella prima sessione di esame, lo studente in corso può scegliere tra un orale onnicomprensivo e un progetto (eventualmente da svolgersi in gruppo) sui temi del corso ed assegnato dal docente.
- Nelle successive sessioni, la valutazione si baserà su un orale onnicomprensivo.
Strumenti a supporto della didattica
Il corso utilizza strumenti usuali per le attività didattiche ed una piattaforma sperimentale unica basata sull'integrazione di LLMs, reti semantiche, e HPC (https://research.constructor.tech/) gentilmente fornita dal pionieristico Constructor Group (https://constructor.tech).
Il docente raccomanda caldamente l'uso della carta e della penna/matita per la partecipazione alle attività in aula, e, quando richiesto, di un portatile con accesso ad internet anche per accedere alla menzionata piattaforma. Sistemi e applicativi con licenza aperta sono preferiti.
Orario di ricevimento
Consulta il sito web di Giancarlo Succi