Salta al contenuto principale della pagina

EDGE COMPUTING

CODE 101837
ACADEMIC YEAR 2022/2023
CREDITS
  • 5 cfu during the nd year of 8732 INGEGNERIA ELETTRONICA (LM-29) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/01
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 2° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    The course is structured in two main parts. The first concerns the advanced programming of microncontrollers, with topics ranging from analog-digital conversion to communication protocols, from the use of dedicated cards (eg MEMS) to embedded operating systems.

    The second concerns machine learning, in particular deep learning, with the study of the main types of neural networks: multilayer perceptron, convolutional networs and recurrent neural network.

    AIMS AND CONTENT

    LEARNING OUTCOMES

    The course aims to provide the fundamental elements of edge computing, with particular attention to advanced programming of microcontrollers. The main topics covered concern analog-to-digital conversion, communication protocols, the use of dedicated cards (eg MEMS), embedded operating systems (FreeRTOS).

    Particular attention is also dedicated to machine learning, with a roundup that starts from the training of linear models to focus on deep learning (with various versions of neural networks: multilayer perceptron, convolutional networs and recurrent neural network).

    Each topic is covered through numerous examples and exercises. The final project intends to put the acquired knowledge into practice and verify the student's design and synthesis skills in the field.

    AIMS AND LEARNING OUTCOMES

    The course aims to provide the fundamental elements of edge computing, with particular attention to the development of applications on microcontrollerS. The training objectives concern learning the foundations of architecture, peripheral management, timing, analog-digital conversion, communication protocols, the use of dedicated cards (eg MEMS), real-time operating systems. embedded. Each topic is covered through numerous examples and exercises on the Nucleo STM32 F4 board.
    
    Half of the course is dedicated to machine learning topics, with a roundup that starts from training linear models to focus on deep learning (with various versions of neural networks: multilayer perceptron, convolutional networs and recurrent neural network). The student will be asked to analyze and train various types of neural network models for different applications (classification / regression / prediction on datasets, images, time series).
    
    The course proposes a project, to be carried out individually or in pairs, aimed at putting into practice and verifying in an application case the concepts presented in a general / theoretical way and with relatively simple exercises.
    
    The learning outcomes concern the achievement of the above training objectives, including through the implementation of a project.

    PREREQUISITES

    Cyber-physical systems

    Computer architecture

    Programming basics

    Object oriented programming

    TEACHING METHODS

    Lectures, with the use of slides, and exercises carried out both on the blackboard and on the PC, using the development / simulation tools indicated in the lesson, microcontroller boards, sensors, electronic components and instrumentation. Proposal, discussion and implementation of application projects.

    SYLLABUS/CONTENT

    Microcontrollers

    • Basics (GPIO, Interrupt, DMA) 
    • Communications (UART/USART, I2C, SPI)
    • Clock tree
    • Timers
    • ADC/DAC
    • FreeRTOS
      • Memory management
      • Multitasking
      • Scheduling
      • Code
      • Software timers
      • Interrupt
      • Synchronization (semafori, mutex, eventi)
    • IoT / machine learning applications

    Machine learning

    • Linear models
      • 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

    RECOMMENDED READING/BIBLIOGRAPHY

    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  

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    Application project to be agreed with the teachers

     

    ASSESSMENT METHODS

    The evaluation will take place in the preparatory interviews and during the design / implementation and in the final discussion of a descriptive report of the project carried out.

    FURTHER INFORMATION

    The course includes 50 hours, carried out in half by the two teachers of the course