- Docente: Alessandro Ricci
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Cesena
- Corso: Laurea in Ingegneria e scienze informatiche (cod. 8615)
Conoscenze e abilità da conseguire
Al termine del corso lo studente possiede competenze di base di carattere teorico e pratico relativamente ai principi e le tecniche di progettazione e sviluppo di programmi per sistemi embedded (in letteratura: "embedded software"). Questa tipologia di programmi e sistemi software ha come elemento chiave l'interazione con il mondo fisico, per cui aspetti relativi al tempo, la concorrenza, la reattività, la robustezza rispetto ai guasti, la comunicazione sincrona/asincrona, la gestione ottimizzata di risorse sono strettamente integrati con l'aspetto di pura elaborazione dell'informazione. Lo studente conosce inoltre gli elementi essenziali della progettazione e programmazione di questi tipi di sistemi software adottando o metodi, paradigmi e tecnologie più moderni.
Contenuti
- Introduzione ai sistemi embedded e Internet of Things (IoT):
caratteristiche, tipologie, architetture e tecnologie
hardware, applicazioni di riferimento
- Introduzione alla struttura, funzionamento e programmazione del
kernel di Sistemi Operativi per sistemi embedded e sistemi
Real-Time, ed in particolare per ciò che concerne la gestione
dell'I/O, delle interruzioni e lo sviluppo di device driver. Caso
di studio: RaspberryPi e Linux Kernel (C come linguaggio di
riferimento);
- Tecniche di programmazione di sistemi embedded
(1) basati su micro-controllori - Arduino come caso di studio
(C, C++ come linguaggi)
(2) basati su micro-processori - RaspberryPi come caso di
studio (C, Java come linguaggi)
- Framework/middleware di programmazione di alto livello per
sistemi embedded/mobile/IoT - Android e Java Embedded come casi di
studio
- Modelli e architetture di comunicazione per reti di dispositivi e
sistemi di Internet of Things e Web of Things, e tecniche di
programmazione basate su architetture service-oriented
- Cenni introduttivi su architetture e tecniche di programmazione
di dispositivi embedded autonomi (robot) e ambienti
smart.
Testi/Bibliografia
- An Embedded Software Primer (David E. Simon) - Addison Wesley
- Computers as Components (Wolf) - Morgan Kaufman
- Making Embedded Systems (E. White) - O'Reilly
- Building Internet of Things with The Arduino (C.
Doukas)
- Designing the Internet of Things (McEwen & Cassimally) -
Wiley
Metodi didattici
Dei sei crediti del corso, tre crediti circa sono dedicati alla teoria e tre alla pratica in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame finale prevede lo sviluppo di un progetto e un colloquio orale.
Strumenti a supporto della didattica
Durante le lezioni verranno proiettati lucidi, disponibili sul sito ufficiale del corso. A supporto delle attività pratiche, verrà utilizzato il laboratorio di informatica ove gli studenti troveranno gli strumenti necessari per svolgere le esercitazioni. Tutto il materiale è disponibile sul sito di riferimento del corso.
Orario di ricevimento
Consulta il sito web di Alessandro Ricci