Insegnamenti

 

SM/0162 - PROGETTO E SVILUPPO DI APPLICAZIONI BLOCKCHAIN

Anno Accademico ​2020/2021

Docente
MICHELE ​MARCHESI (Tit.)
Periodo
Secondo Semestre ​
Modalità d'Erogazione
Convenzionale ​
Lingua Insegnamento
ITALIANO ​



Informazioni aggiuntive

CorsoPercorsoCFUDurata(h)
[60/73] ​ ​INFORMATICA [73/00 - Ord. 2017] ​ ​PERCORSO COMUNE648
Obiettivi

Conoscenza e capacità di comprensione: lo studente conoscerà le più recenti e avanzate tecniche di progettazione e programmazione relative alle applicazioni blockchain.
Gli obiettivi di apprendimento attesi riguarderanno la conoscenza e la comprensione dei seguenti argomenti:


  • funzionamento dei registri distribuiti e blockchain;
  • programmazione di Smart Contracts su blockchain, in particolare Ethereum;
  • linguaggio Solidity e suoi ambienti di sviluppo;
  • linguaggio Vyper e suoi ambienti di sviluppo;
  • gestione con le tecniche agili dei progetti software per applicazioni decentralizzate (dApp).

Capacità di applicare la conoscenza e capacità di comprensione: lo studente sarà in grado di valutare e applicare i principi che guidano il processo di sviluppo di applicazioni complesse e innovative in ambiente Blockchain;


Autonomia di giudizio: lo studente saprà valutare l'adeguatezza dei processi e degli strumenti per lo sviluppo del software e delle pratiche da usare, rispetto a specifici progetti nei settori indicati.


Abilità comunicative: lo studente sarà in grado di dialogare con specialisti informatici e con sviluppatori sullo sviluppo di sistemi innovativi in tecnologia blockchain.


Capacità di apprendere autonomamente: lo studente sarà in grado di apprendere le problematiche, le metodologie e l'uso delle librerie software per programmazione di dApp, applicando con flessibilità i concetti di base forniti nel corso. Egli sarà i grado di ampliare in futuro le proprie conoscenze in modo autonomo, comprendendo testi tecnici avanzati.
Prerequisiti


  1. Conoscenze. Il corso richiede una buona conoscenza delle tecniche di programmazione (in particolare procedurali, ad oggetti e di scripting), delle architetture di calcolatori e dell'ingegneria del software, che è possibile acquisire nel corso di laurea triennale.
  2. Abilità. Gli studenti dovranno essere in grado di progettare, documentare e scrivere programmi in uno o più linguaggi di programmazione, nei settori di riferimento.
  3. Competenze. E' richiesta una buona conoscenza operativa di uno o più linguaggi di programmazione di computer, che consenta una comprensione più profonda dei problemi e delle soluzioni che verranno descritti.
Contenuti


  • Introduzione alla Blockchain e agli Smart Contracts (2 ore)
  • I protocolli e il software Bitcoin (5 ore)
  • I protocolli e il software Ethereum (5 ore)
  • Il linguaggio Solidity e la programmazione di Smart Contracts (16 ore)
  • Gestione con tecniche agili di progetti di sviluppo di dApps (4 ore)
  • Altre blockchain (6 ore)

Laboratorio (10 ore)
Metodi Didattici

I risultati attesi di conoscenza e comprensione sono conseguiti tramite la partecipazione alle lezioni, alle esercitazioni ed ai laboratori, nonché tramite lo studio individuale, previsti dalle attività formative attivate.

Compatibilmente con la modalità di insegnamento mista prevista nel Manifesto degli Studi per l'A.A. 2020-21 a seguito dell'emergenza COVID-19, gli strumenti utilizzati per le lezioni frontali saranno sia la lavagna che slide con sistema di proiezione via schermo in aula, e via internet in streaming.

Le modalità di verifica del sufficiente raggiungimento di delle conoscenze e capacità (tramite prove scritte, prove orali, realizzazioni di progetti applicativi, verifica della partecipazione attiva alle lezioni ed ai laboratori) prevedono lo svolgimento di specifiche prove in cui lo studente dimostra la padronanza delle nozioni, degli strumenti, delle metodologie e certificano anche l'autonomia critica.

Lezioni frontali di teoria: 38 ore.

Laboratorio: 10 ore.

Verifica dell'apprendimento

L'esame è composto da due parti: teoria ed elaborato pratico.

La teoria riguarda tutto il programma. Gli esami sono tipicamente svolti in forma orale.

L'elaborato pratico viene affidato a gruppi di 1 o 2 studenti. Questi devono sviluppare un progetto relativo al programma e poi discuterlo. Il progetto può essere svolto anche in collaborazione con una ditta attiva nel settore blockchain, o può riguardare un progetto di ricerca in corso. Se il progetto è ad ampio spettro, l'esame di teoria è ridotto alla discussione del progetto.
I documenti risultanti il progetto devono essere prodotti con licenza Creative Commons Attribution 3.0 Unported (CC BY 3.0).
L'eventuale software prodotto deve essere distribuito con licenza EUPL 1.2 (https://eupl.eu/1.2/it/ o https://eupl.eu/1.2/en/).
Compatibilmente con la modalità di esami prevista nel Manifesto degli Studi per l'A.A. 2020-21 a seguito dell'emergenza COVID-19, gli esami si terranno o in presenza oppure sulla piattaforma MS Teams.

Testi

Materiale distribuito durante le lezioni.

Altre Informazioni

Gli strumenti a supporto della didattica si trovano sul sito del docente: http://people.unica.it/michelemarchesi/

Tra essi si trovano:

- copia dei lucidi mostrati a lezione

- altro materiale fornito

credits unica.it | accessibilità Università degli Studi di Cagliari
C.F.: 80019600925 - P.I.: 00443370929
note legali | privacy

Nascondi la toolbar