CODE 101837 ACADEMIC YEAR 2022/2023 CREDITS 5 cfu anno INGEGNERIA ELETTRONICA 8732 (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/9781492032632/ https://github.com/ageron/handson-ml2 LESSONS LESSONS START https://easyacademy.unige.it Class schedule L'orario di tutti gli insegnamenti è consultabile all'indirizzo 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