CODE 90524 ACADEMIC YEAR 2024/2025 CREDITS 9 cfu anno 1 COMPUTER SCIENCE 10852 (LM-18) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester TEACHING MATERIALS AULAWEB OVERVIEW Internet of Things (IoT) concerns systems where physical devices are connected to the Internet. IoT is central to Computer Science, considering also that global IoT device connections are expected to continue to grow for many years to come. This course is focused on the tasks of designing and implementing IoT systems, covering all their main layers (edge, transport and computing): sensors, actuators, and device programming; IoT protocols; event-driven programming and cloud computing. AIMS AND CONTENT LEARNING OUTCOMES Learning methods, protocols, architectures, and platforms for the development of distributed and mobile applications for the Internet of Things, including machine to machine protocols, distributed algorithms for fault tolerance and replication, service oriented architectures platforms, embedded operating systems, real time and streaming data, geolocation, and collaborative framework. AIMS AND LEARNING OUTCOMES At the end of the course, students will be able to apply the basic concepts of event-driven programming to the development of IoT systems master basic knowledge of sensors/actuators, microcontrollers and device programming master the most useful IoT protocols and design and implement an IoT architecture starting from informal requirements use an IoT platform manage social relationships within a small team of students with a collaborative attitude and constructive communication in different environments make independent decisions, have a collaborative attitude, and manage human and material resources and coordination when designing and developing a non-trivial IoT system PREREQUISITES Object-Oriented Programming Concurrent and Distributed Programming and Systems Operating Systems and Networks TEACHING METHODS Lectures in classroom devoted to theory and demos. Individual assignments on event-driven and IoT programming in Node,js. Team development of a final project. The assignments and the final project are developed with the GitHub Classroom collaborative version control system to better support students and instructors interactions SYLLABUS/CONTENT JavaScript Node.js Device Programming - sensors and actuators - Physical Web with Estimote Beacon - Raspberry -SensorLab per Android: Dashboard per dati sensoriURL -Javascript for Mobile Apps: React Native -Arduino Programming -Low.js: Node.js for microcontrollersURL -Microbit, Javascript and Micropython IoT Application Layer: network and protocols -Network protocols: BLE, 6LowPan, ZigBee, ThreadFile -Physical Web in Node.js: Noble, Express and ClusterFolder -Protocols in Node.js: COAP, MQTT, Websocket in Node.js -Node.js Serverside: Schedulers with Immediate and NextTick, Fork and ClusterFile -Smart Cities, IoT and data interoperability IoT Platforms - Node-RED - ThingWorx - Ubidots RECOMMENDED READING/BIBLIOGRAPHY Published on the course web site of the Unige Aulaweb portal. TEACHERS AND EXAM BOARD DAVIDE ANCONA Ricevimento: On demand, upon explicit requests by email or Teams GIORGIO DELZANNO Ricevimento: Appointment by email Exam Board GIORGIO DELZANNO (President) DANIELE D'AGOSTINO DAVIDE ANCONA (President Substitute) LESSONS LESSONS START In agreement with the calendar approved by the Degree Program Board of Computer Science. Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION Final project, with presentation and discussion. Individual programming assignments ASSESSMENT METHODS The individual programming assignments aim to evaluate the ability of application of the basic concepts of event-driven programming and learning of the most useful IoT protocols. The evaluation is based on the correctness, efficiency and readability of the code. The final project has the aim to verify the ability to make independent decisions about sensors/actuators and device programming, to design and implement an IoT architecture starting from informal requirements and to use an IoT platform. The evaluation is based on the suitability of the chosen architecture, the effectiveness, scalability, usability and correctness of the implemented system. The presentation and discussion of the project aims to test the collaborative attitudes of students to design and develop a project within a small team. The evaluation is based on the comprehension level of the overall functioning and technical details of the project. Exam schedule Data appello Orario Luogo Degree type Note 14/02/2025 09:00 GENOVA Esame su appuntamento 19/06/2025 09:00 GENOVA Esame su appuntamento 01/09/2025 09:00 GENOVA Esame su appuntamento Agenda 2030 - Sustainable Development Goals Sustainable cities and communities