EDGE COMPUTING

EDGE COMPUTING

_
iten
Code
101837
ACADEMIC YEAR
2021/2022
CREDITS
5 credits during the 2nd year of 8732 Electronic Engineering (LM-29) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
ING-INF/01
TEACHING LOCATION
GENOVA (Electronic Engineering)
semester
2° Semester
modules
This unit is a module of:
Teaching materials

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/9781492032632/ 
https://github.com/ageron/handson-ml2  

TEACHERS AND EXAM BOARD

Ricevimento: On appointment: mail (francesco.bellotti@unige.it) or on Teams or after lecture

LESSONS

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.

LESSONS START

https://easyacademy.unige.it 

ORARI

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

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