72775 - PROGRAMMAZIONE DI SISTEMI EMBEDDED

Anno Accademico 2014/2015

  • 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