Insegnamenti

 

SM/0098/EN - ADVANCED PROGRAMMING TECHNIQUES

Anno Accademico ​2017/2018

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



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.
Gli obiettivi di apprendimento attesi riguarderanno la conoscenza e la comprensione dei seguenti argomenti:
tecniche avanzate di progettazione ad oggetti;
metriche del software e loro utilizzo avanzato;
programmazione in ambiente Blockchain e di Smart Contracts;
programmazione in ambiente Internet of Things;
gestione con le tecniche agili e Lean Kanban dei progetti software;
stima dell'effort di progetti software.

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 particolare in ambiente Blockchain e IoT;

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 nei settori indicati.

Capacità di apprendere autonomamente: lo studente sarà in grado di apprendere le problematiche, le metodologie e l'uso delle librerie software, 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 consente 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 (6 ore)

Programmazione in ambiente Internet of Things (8 ore)
Gestione con le tecniche agili e Lean Kanban dei progetti software (6 ore)
Metriche del software stima dell'effort di progetti software (8 ore)
Laboratorio (16 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.
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: 40 ore.
Laboratorio: 16 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.

Testi

Materiale distribuito durante le lezioni.

Altre Informazioni

Gli strumenti a supporto della didattica si trovano sul sito Moodle del corso di laurea e 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