Salta al contenuto principale della pagina

EDGE COMPUTING

CODICE 101837
ANNO ACCADEMICO 2021/2022
CFU
  • 5 cfu al 2° anno di 8732 INGEGNERIA ELETTRONICA (LM-29) - GENOVA
  • SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01
    SEDE
  • GENOVA
  • PERIODO 2° Semestre
    MODULI Questo insegnamento è un modulo di:
    MATERIALE DIDATTICO AULAWEB

    PRESENTAZIONE

    Il corso si struttura in due parti principali. La prima riguarda la programmazione avanzata di microncontrollori, con argomenti che spaziano dalla conversione analogico-digitale ai protocolli di comunicazione, dall’utilizzo di schede dedicate (es. MEMS) ai sistemi operativi embedded.

    La seconda riguarda il machine learning, in particolare il deep learning, con lo studio delle principali tipologie di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network.

    OBIETTIVI E CONTENUTI

    OBIETTIVI FORMATIVI

    l corso intende fornire gli elementi fondamentali di edge computing, con particolare attenzione alla programmazione avanzata di microcontrollori. I principali argomenti trattati riguardano la conversione analogico-digitale, i protocolli di comunicazione, l’utilizzo di schede dedicate (es. MEMS), i sistemi operativi embedded (FreeRTOS).

    Particolare attenzione è dedicata anche al machine learning, con una carrellata che parte dall'addestramento di modelli lineari per concentrarsi sul deep learning (con varie versioni di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network).

    Ogni argomento è trattato attraverso numerosi esempi ed esercizi. Il progetto finale intende far mettere in pratica le conoscenze acquisite e verificare sul campo le capacità progettuali e di sintesi dello studente.

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    Il corso intende fornire gli elementi fondamentali di edge computing, con particolare attenzione allo sviluppo di applicazioni su microcontrollore. Gli obiettivi formativi riguardano l'apprendimento delle fondamenta dell'architettura, la gestione delle periferiche, la temporizzazione, la conversione analogico-digitale, i protocolli di comunicazione, l’utilizzo di schede dedicate (es. MEMS), i sistemi operativi real-time embedded. Ogni argomento è trattato attraverso numerosi esempi ed esercizi su scheda Nucleo STM32 F4.

    Metà del corso è dedicata ad argomenti di machine learning, con una carrellata che parte dall'addestramento di modelli lineari per concentrarsi sul deep learning (con varie versioni di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network). Lo studente sarà chiamato ad analizzare ed addstrare vari tipi di modelli di rete neurale per diverse applicazioni (classificazione/regressione/predizione su dataset, immagini, serie temporali).

    Il corso propone un progetto, da svolgere singolarmente o in coppia, finalizzato alla messa in pratica ed alla verifica in un caso applicativo delle nozioni presentate in maniera generale/teorica e con esercizi relativamente semplici. 

    I risultati di apprendimento riguardano la realizzazione degli obiettivi formativi di cui sopra, anche attraverso l’implementazione di un progetto.

    PREREQUISITI

    Cyber-physical systems

    Architettura dei calcolatori

    Fondamenti di programmazione

    Programmazione orientata agli oggetti

    MODALITA' DIDATTICHE

    Lezioni frontali, con utilizzo di slide, ed esercizi svolti sia alla lavagna sia al PC, utilizzando gli strumenti di sviluppo/simulazione indicati a lezione, schede microcontrollore, sensori, componenti elettronici e strumentazione. Proposta, discussione e realizzazione di progetti applicativi.

    PROGRAMMA/CONTENUTO

    Microcontrollori

    • Basi (GPIO, Interrupt, DMA) 
    • Comunicazione (UART/USART, I2C, SPI)
    • Clock tree
    • Timers
    • ADC/DAC
    • FreeRTOS
      • Gestione della memoria
      • Multitasking
      • Scheduling
      • Code
      • Software timers
      • Interrupt
      • Sincronizzazione (semafori, mutex, eventi)
    • Applicazioni di machine learning / IoT

    Machine learning

    • Modelli lineari
      • Linear regression
      • Gradient descent
    • Regularization
    • Logistic regression, softmax regression
    • Multi-layer perceptron
    • Le librerie Keras-Tensorflow
      • Sequantial and functional APIs
    • Hyperparameters fine tuning
    • Training deep Neural networks
      • Vanishing/exploding gradients
      • Pre-training/transfer learning
      • Regularization
    • Convolutional neural networks
      • Archtectures
      • Training with Keras
    • Recurrent neural networks
      • Processing time-series
      • LSTM/GRU
      • Wavenet

    TESTI/BIBLIOGRAFIA

    C. Noviello, Mastering STM32
    https://www.carminenoviello.com/mastering-stm32/

    A. Geron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, O'Reilly
    https://www.oreilly.com/library/view/hands-on-machine-learning/97814920…;
    https://github.com/ageron/handson-ml2  

    DOCENTI E COMMISSIONI

    Commissione d'esame

    FRANCESCO BELLOTTI (Presidente)

    MARCO RAGGIO

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

    ESAMI

    MODALITA' D'ESAME

    Progetto applicativo da concordare sui docenti

    MODALITA' DI ACCERTAMENTO

     La valutazione avverrà nei colloqui preparatori e durante la progettazione/implementazione e nella discussione finale di un elaborato descrittivo del progetto svolto.

    Calendario appelli

    Data Ora Luogo Tipologia Note
    17/02/2022 10:00 GENOVA Esame su appuntamento
    16/09/2022 10:00 GENOVA Esame su appuntamento Date indicative , concordare per email modalitia' e date precise. ulteriori date concordabili direttamente con docente
    16/09/2022 10:00 GENOVA Esame su appuntamento

    ALTRE INFORMAZIONI

    Il corso prevede 50 ore, svolte a metà dai due docenti