CODE 94787 ACADEMIC YEAR 2025/2026 CREDITS 6 cfu anno 1 INGEGNERIA MECCANICA - PROGETTAZIONE E PRODUZIONE 11959 (LM-33) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE Italian TEACHING LOCATION GENOVA SEMESTER 2° Semester MODULES Questo insegnamento è un modulo di: ARCHITECTURES FOR EMBEDDED SYSTEMS OVERVIEW The course provides skills for developing software for embedded and pervasive systems, combining architecture, hardware-software interaction, and innovative technologies such as generative AI and neural networks. It includes the paradigm of physical computing, where systems perceive and respond to the physical world, and addresses software engineering methodologies with attention to documentation, standards, and the transition from prototype to final product. AIMS AND CONTENT LEARNING OUTCOMES The course aims to train students in the design, planning and development of application software for pervasive and dedicated systems. Students will learn about the dynamics of the Internet, the Internet of Things and embedded systems, and will acquire skills in system implementation and project flow management using UML diagrams. The course also focuses on project planning and management, exploring basic software architectures and relevant technologies such as sensors and communication methods. Particular attention is given to the development of human-machine interfaces and the use of generative artificial intelligence as a tool for co-design. Practical activities, which are essential to consolidate theoretical knowledge, are carried out in the computer laboratory using the Arduino platform, which is available both in the classroom and through a simulator. This hands-on approach allows students to directly experience the applications and challenges of the mechatronics sector, enriching their educational journey with concrete and applied experiences AIMS AND LEARNING OUTCOMES The course deepens the knowledge and skills needed to design, develop, and manage software for embedded and pervasive systems, with particular focus on the relationship between hardware and software architecture. Students will acquire knowledge on key architectural models, microcontroller programming techniques, the physical computing paradigm, and the design of physical user interfaces. They will also be introduced to the use of generative and subsymbolic artificial intelligence models to support design, documentation, and prototyping. The course also includes the study of software engineering methodologies, product lifecycle management, testing and validation strategies, and technical documentation according to industry standards. The overarching goal is to train professionals capable of contributing to all stages of embedded system development with analytical, design, and interdisciplinary communication skills. PREREQUISITES To successfully follow the course, students are expected to have: Basic programming knowledge, preferably in C, C++ or Python, including: use of variables, control structures, functions, basic concepts of modularity and memory management; Foundations of digital electronics, including: understanding of basic hardware components (sensors, actuators, microcontrollers), combinational and sequential logic, and digital communication protocols (e.g., I2C, serial); Familiarity with using a PC as a development environment, including: ability to install and use IDEs (e.g., Arduino IDE), and understanding of software project structure. TEACHING METHODS The course includes two main types of activities: Lectures (40 hours): theoretical or applied sessions in which the student mainly attends passively, either in the classroom or through online materials provided on the teaching portal; Hands-on sessions (20 hours): guided lab-based activities in which the student is actively involved in experimentation and practical implementation tasks. Regular attendance of lectures and lab sessions, as well as engagement with shared resources and exercises, is highly recommended to ensure a full understanding of the subject. The course is worth 6 ECTS credits, equivalent to 150 total workload hours. SYLLABUS/CONTENT 1. Software/Hardware Architecture Design (Architecture analysis and modelling for embedded and IoT systems; block diagrams, WBS, hierarchical modelling - Activities: top-down design, ProjectLibre usage, block-based modelling). 2. Embedded Application Design (FSM behaviour modelling, physical UI design, UML modelling - Activities: FSM in Arduino, LCD-based UI, use case and class diagrams). 3. Agent-based and Multi-Agent Systems (Reactive/deliberative models, agent-environment interaction, event-based logic - Activities: microcontroller simulations, collaborative distributed robotics). 4. Neural Networks and Subsymbolic AI (AI foundations, signal-based neural networks, embedded deep learning - Activities: neural network training, edge deployment discussion, symbolic vs subsymbolic AI comparison). 5. Generative AI and Co-design (Generative AI tools for design and documentation - Activities: chatbot prompting, Project Charter generation, LLM-assisted brainstorming). 6. Software Engineering and Lifecycle (Development models (waterfall, agile), requirements management, versioning, testing - Activities: drafting specifications, requirement traceability, incremental release). 7. Technical Documentation and Standards (Manuals, requirement tracking, standard usage (e.g., ISO, MISRA - Activities: writing technical documentation, naming conventions, standard references). 8. Embedded Application Development – Physical Computing (Coding, testing, and prototyping on microcontrollers (Arduino/C++) - Activities: modular sketches, sensor libraries, I2C, PWM, interactive systems). 9. System Integration and Testing (Functional validation, robustness, monitoring and debugging tools - Activities: integration tests, SNR measures, technical documentation). 10. System Engineering and Physical Resources (Complete system design: power, communication, energy management - Activities: robot simulation, wiring, signal/power testing). 11. Software Evolution Management (Version control, maintenance, incremental updates - Activities: firmware releases, technical reports, compatibility testing). RECOMMENDED READING/BIBLIOGRAPHY All materials used during lectures and lab sessions will be made available progressively on the AulaWeb platform, in the section “Materials used in class”, together with links to relevant resources and freely accessible references. LESSONS LESSONS START https://corsi.unige.it/en/corsi/11959/studenti-orario Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION In order to take the exam, students must register online through the Student Portal at: https://servizionline.unige.it/studenti/ The exam consists of an individual oral examination on the course content, combined with the discussion of the assigned project and the related technical documentation. ASSESSMENT METHODS The exam consists of a discussion of the final project, which includes an individual oral interview on the course topics, and an evaluation of the technical documentation produced by the student. Project discussion and oral interview (approximately 70% of the grade) - This part of the exam aims to assess the student's acquisition of design, implementation, and theoretical competencies. The discussion begins with the analysis of an embedded system developed individually or in a group. Evaluation criteria include: the ability to integrate hardware and software components into a coherent solution; understanding of the architectural models used (FSM, block diagrams, UML diagrams); competent use of development tools (e.g., Arduino, ProjectLibre, sensor libraries); the ability to justify design choices from a technical and methodological perspective; in-depth understanding of course topics (physical computing, software engineering, agents, neural networks, testing, security); the ability to connect theory and practice, integrating conceptual knowledge and lab activities; proper use of technical terminology and the ability to communicate autonomously. Evaluation of technical documentation (approximately 30% of the grade) - The documentation includes functional specifications, diagrams, user manuals, and requirement tracking. Evaluation criteria include: completeness, internal coherence, and clarity of presentation; appropriate use of technical terminology and adherence to industry standards; ability to formally and professionally represent the software development lifecycle; declared and motivated use of generative AI tools, if applied in co-design, documentation, or planning. Preparation instructions and detailed evaluation criteria will be provided during the course. Students are required to transparently document any use of generative AI tools during the project or in the preparation of documentation. FURTHER INFORMATION Students with disabilities or specific learning disorders (SLD) may request compensatory or exemptive measures for the exam. These measures will be defined on a case-by-case basis in consultation with the Faculty Disability Liaison of the University Committee for Student Support. Students who wish to make such a request are invited to contact the course instructor and copy the Liaison Officer: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.html Agenda 2030 - Sustainable Development Goals Quality education Industry, innovation and infrastructure