Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA MECCATRONICA
Insegnamento
PROGRAMMAZIONE DI SISTEMI EMBEDDED
IN01122661, A.A. 2018/19

Informazioni valide per gli studenti immatricolati nell'A.A. 2018/19

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
INGEGNERIA MECCATRONICA
IN0529, ordinamento 2011/12, A.A. 2018/19
N0
porta questa
pagina con te
Crediti formativi 9.0
Tipo di valutazione Voto
Denominazione inglese EMBEDDED SYSTEMS PROGRAMMING
Sito della struttura didattica http://www.gest.unipd.it/it/corsi/corsi-di-studio/corsi-di-laurea-magistrale/ingegneria-meccatronica/
Dipartimento di riferimento Dipartimento di Tecnica e Gestione dei Sistemi Industriali (DTG)
Sito E-Learning https://elearning.unipd.it/dtg/course/view.php?idnumber=2018-IN0529-000ZZ-2018-IN01122661-N0
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede VICENZA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile MONICA REGGIANI ING-INF/05

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
AFFINE/INTEGRATIVA Attività formative affini o integrative ING-INF/05 8.0
ALTRO Altre conoscenze utili per l'inserimento nel mondo del lavoro -- 1.0

Organizzazione dell'insegnamento
Periodo di erogazione Primo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 9.0 72 153.0

Calendario
Inizio attività didattiche 24/09/2018
Fine attività didattiche 18/01/2019
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2011

Commissioni d'esame
Commissione Dal Al Membri
11 2018 01/10/2018 15/03/2020 REGGIANI MONICA (Presidente)
TRAMARIN FEDERICO (Membro Effettivo)
TAGLIAPIETRA LUCA (Supplente)
10 2017 01/10/2017 15/03/2019 TRAMARIN FEDERICO (Presidente)
REGGIANI MONICA (Membro Effettivo)

Syllabus
Prerequisiti: Per il proficuo raggiungimento degli obiettivi prefissati sono richieste competenze di informatica di base (rappresentazione dei dati, architettura di un calcolatore, introduzione ai sistemi operativi) e conoscenze ed esperienze nella programmazione sequenziale (tipi di dati, condizioni, cicli, vettori).
Conoscenze e abilita' da acquisire: Il corso offre l’opportunità di raggiungere le conoscenze fondamentali nell’area della programmazione di sistemi embedded, oltre a presentarne i loro usi pratici. Il corso introdurrà inoltre tecniche per la concorrenza e il real-time.

Al superamento con successo del corso, gli studenti avranno conseguito le seguenti abilità:
- comprendere le specifiche di un sistema embedded
- spiegare diversi meccanismi per la comunicazione e sincronizzazione tra processi
- comprendere le caratteristiche dei sistemi real-time
- programmare applicazioni embedded concorrenti
- progettare, strutturare e analizzare programmi per sistemi embedded
- comparare, selezionare e applicare costrutti linguistici progettati per la concorrenza
Modalita' di esame: La valutazione sarà composta da:
20% assegnamento di programmazione da svolgere a casa
20% esame scritto
60% esame orale sui contenuti del corso
Criteri di valutazione: L'assegnamento di programmazione da svolgere a casa valuta le capacità dello studente di progettare e sviluppare un’applicazione software di importanza pratica.
L'esame scritto si concentra sulla capacità dello studente di risolvere un problema di concorrenza.
L'esame orale verifica le competenze acquisite dallo studente sui fondamenti presentati dal corso. Questa parte di valutazione permette inoltre di valutare l'abilità di presentare con termini appropriati dei progetti ingegneristici.
Contenuti: Introduzione ai sistemi embedded. Programmazione vicino all'hardware. Programmi che reagiscono agli eventi.
Gestione dei processi e schedulazione.
Programmazione concorrente: il problema della sezione critica, semafori, monitor, algoritmi per sistemi distribuiti. Deadlock e starvation.
Sistemi Real-Time: affidabilità e ripetibilità, sistemi sincroni e asincroni, priority inversion e priority inheritance. Schedulazione di sistemi real time: schedulazione ciclica, rate-monotonic, EDF. Condivisione di risorse, analisi di deadlock e di schedulabilità.

Sviluppi pratici: linguaggio di programmazione C, compilazione automatica, profiling, POSIX Thread, Socket, Real-Time Linux, Rasperry Pi.
Attivita' di apprendimento previste e metodologie di insegnamento: Una serie di lezioni frontali presenta concetti, metodi, problemi e soluzioni. Diversi esercizi di base vengono proposti al calcolatore sotto la supervisione diretta del docente. Quattro attività di laboratorio più complesse permettono allo studente di formulare soluzioni personali.
Eventuali indicazioni sui materiali di studio: Le lezioni frontali si basano sui testi di riferimento indicati.
Ulteriore materiale presentato durante le lezioni sarà reso disponibile nella piattaforma moodle.
Verranno inoltre distribuiti articoli di approfondimento sugli argomenti svolti.
Testi di riferimento:
  • Burns, Alan; Wellings, Andy, Real-Time systems and programming languagesAda, Real-Time Java and C/Real-Time POSIXAlan Burns and Andy Wellings. Harlow [etc.]: Addison-Wesley, 2009. Cerca nel catalogo
  • Ben-Ari, Mordechai, Principles of concurrent and distributed programmingM. Ben-Ari. Harlow [etc.]: Addison-Wesley, 2006. Cerca nel catalogo
  • Kerrisk, Michael, <<The >>linux programming interfacerisorsa elettronicaa Linux and UNIX system programming handbookMichael Kerrisk. San Francisco: No Starch Press, 2010. Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Lecturing
  • Laboratory
  • Interactive lecturing
  • Working in group
  • Questioning
  • Problem solving
  • Quiz o test a correzione automatica per feedback periodico o per esami
  • Active quiz per verifiche concettuali e discussioni in classe
  • Files e pagine caricati online (pagine web, Moodle, ...)

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)
  • Latex
  • Linguaggio C, sistema di sviluppo sotto linux