B1459 - ARTIFICIAL INTELLIGENCE, BLOCKCHAIN E CRIPTOVALUTE NELLO SVILUPPO SOFTWARE

Anno Accademico 2022/2023

  • 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. 8028)

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 nonpresenterà 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. In particolare, il docente raccomanda 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. Sistemi e applicativi con licenza aperta sono preferiti.

Orario di ricevimento

Consulta il sito web di Giancarlo Succi