Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA MECCATRONICA
Insegnamento
LINGUAGGI DI PROGRAMMAZIONE PER SISTEMI INDUSTRIALI
INM0018247, 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 in
INGEGNERIA MECCATRONICA
IN2376, ordinamento 2017/18, A.A. 2018/19
N0
porta questa
pagina con te
Crediti formativi 6.0
Tipo di valutazione Voto
Denominazione inglese PROGRAMMING LANGUAGES FOR INDUSTRIAL SYSTEMS
Sito della struttura didattica http://www.gest.unipd.it/it/corsi/corsi-di-studio/corsi-di-laurea-triennale/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-IN2376-000ZZ-2018-INM0018247-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 STEFANO MICHIELETTO ING-INF/05

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Ingegneria della sicurezza e protezione dell'informazione ING-INF/05 6.0

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

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 6.0 48 102.0

Calendario
Inizio attività didattiche 25/02/2019
Fine attività didattiche 14/06/2019
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2017

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

Syllabus
Prerequisiti: Lo studente deve aver superato l'esame di Fondamenti di Informatica, acquisendo le capacità di base dell'uso di un linguaggio di programmazione
Conoscenze e abilita' da acquisire: Lo studente acquisirà le nozioni fondamentali della rappresentazione delle informazioni e della struttura di un calcolatore con riferimento ad una architettura di tipo MIPS ed al caso di studio basato su un ARM7. Lo studente saprà anche esercitarsi nell'uso di semplici istruzioni di programmazione in linguaggio assembler. Lo studente acquisirà anche alcuni concetti di base sui linguaggi formali e gli automi a stati finiti per il riconoscimento di stringhe di caratteri.
Dopo aver familiarizzato con l'organizzazione di un sistema operativo basato sulla shell e sul file system di Unix, lo studente approfondirà la programmazione nel linguaggio C, in tutti i suoi aspetti più importanti.
Alla fine lo studente sarà in grado di comprendere il processo evolutivo in corso nel campo dei linguaggi di programmazione per sistemi industriali, volgendo la sua attenzione verso le problematiche dei linguaggi di programmazione e degli ambienti di simulazione innovativi, per applicazioni di automazione industriale.
Modalita' di esame: Modalità di esame in via di definizione
Criteri di valutazione: Il compito verificherà le competenza di base acquisite nel settore delle architetture dei calcolatori e della programmazione di sistemi informatici per applicazioni industriali con linguaggi di basso livello.
Nel caso venisse proposto un progetto di gruppo lo studente dovrà dimostrare di essere capace di condurre l'analisi di un problema di automazione dei sistemi industriali manufatturieri o dei servizi, e di sviluppare una soluzione, con relativa codifica in linguaggio C, che permetta il controllo tramite strumenti computerizzati delle funzionalità tipiche di un loro componente.
Contenuti: ● Richiami di rappresentazione delle informazioni.
● Cenni sulla struttura di un elaboratore: memoria centrale, modulo di controllo, ALU, dispositivi di I/O, reti logiche.
● Il linguaggio assembly MIPS: formato delle istruzioni, metodi di indirizzamento, istruzioni di trasferimento, istruzioni aritmetiche e logiche, ecc. Il meccanismo di chiamata a subroutine: lo stack. Funzionamento dell'assemblatore e direttive di assemblaggio.
● Caso di studio: l'architettura ARM7, approfondimento su interrupt, ISR, timer e periferiche di I/O (A/D e interfacce seriali).
● Introduzione ai sistemi operativi.
● Caso di studio: il S.O. Linux, la shell ed il filesystem, i comandi Unix fondamentali.
● Elementi di base sulle Grammatiche Formali e Automi a Stati finiti per i linguaggi di Tipo 3 e 2.
● Introduzione al linguaggio C.
● Preprocessore, compilatore e linker
● Variabili e strutture, definizione e chiamata a funzioni, le macro. Array, stringhe ed operatori (unari e binari)
● Sequenze di controllo del flusso.
● I puntatori: organizzazione della memoria, operatori "indirizzo di" e di riferimento Puntatori ad array, a strutture e puntatori a puntatori, aritmetica dei puntatori.
● Allocazione dinamica della memoria
● Operatori bitwise.
● La libreria standard del C. Input/output formattato e I/O binario: gli stream, gli standard stream.
● Casi di studio: implementazione in C di algoritmi di sorting e delle linked list.
● Relazioni tra linguaggio C e linguaggio assembly.
● Introduzione ai makefile: definizione delle regole, utilizzo base di cmake (cross platform make).
● Eventuale presentazione di un progetto finale.
Attivita' di apprendimento previste e metodologie di insegnamento: ● Apprendere i principi fondamentali sui quali si basa l’organizzazione di un computer.
● Acquisire familiarità con le basi della programmazione in un linguaggio assembly per architetture embedded.
● Acquisire familiarità con la programmazione in linguaggio C e con i relativi tool di sviluppo.
● Apprendere le regole base di buona programmazione:stile, generalità, portabilità, performance.
● Saper tradurre porzioni di codice C in linguaggio assembly, e viceversa.
● Acquisire le basi della progettazione di sistemi software complessi, basati su interfacce (API) generiche.
- Come strumento didattico, verranno proiettate in aula le slide con i contenuti delle lezioni, durante tutto lo svolgimento del corso.
Eventuali indicazioni sui materiali di studio: Sul sito di Moodle verranno caricate tutte le slide presentate durante le lezioni del corso.
Testi di riferimento:

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Files e pagine caricati online (pagine web, Moodle, ...)

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)