CODE 98920 ACADEMIC YEAR 2025/2026 CREDITS 5 cfu anno 1 SAFE TRANSPORT AND LOGISTICS ENGINEERING 11920 (LM-26 R) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester MODULES Questo insegnamento è un modulo di: ICT FOR TRANSPORT AND LOGISTICS OVERVIEW The course aims at learning how to access, model, and manipulate (textual) data by providing concepts of object-oriented programming (Python scripts) and an introduction to data interchange files and databases. The course includes frontal teaching activities alongside practical lecutures with the aim of consolidating the topics seen in class. The course has a strong applicative connotation, then students are encouraged to tackle problems of increasing complexity independently. AIMS AND CONTENT LEARNING OUTCOMES The course aims to provide students with the necessary IT tools to collect, store, manage, and analyze data to be used in the context of transport and logistics systems, with particular emphasis on the development of methodologies to make such systems more efficient, sustainable, and safe. This objective will be achieved by offering basic technological and methodological tools for writing simple scripts and using an information system. In particular, the course will address aspects related to the automation of data management and data warehousing systems, with a specific focus on scripting techniques and methods for querying structured text files and databases. AIMS AND LEARNING OUTCOMES At the end of the course, students are able to: abstract informal specifications to design algorithms; implement and validate small python scripts; understand, use and modify code produced by others; retrieve information present in relational databases; write SQL queries. TEACHING METHODS The course is articulated in 45 hours of lectures held in the INFAL2 laboratory. Due to the practical nature of the course, some practical classes are provided during the course; in addition, each theoretical lesson ends with exercises of the concepts introduced. In order to complete, review and better understand the proposed exercises, students are encouraged to install Python 3, PyCharm and MariaDB server. SYLLABUS/CONTENT Python fundamentals: Introduction to programming Variables Conditional flow Loops Collections Functions Overview on Object-Oriented Programming Read - Write files Data-interchange formats Database introduction: Entities and keys Relationships From ER to table SQL principles: Single-table queries Multi-table queries Multiset operation and "group by" DB connection to python scripts RECOMMENDED READING/BIBLIOGRAPHY All the slides and additional exercise material used during the lectures will be available on AulaWeb. In general, the notes taken during the lectures and the material on AulaWeb are sufficient to prepare for the exam. LESSONS LESSONS START https://corsi.unige.it/en/corsi/10377/studenti-orario Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam is composed of two parts. A quiz part (10 questions -multiple choices- in 20 minutes) will test the database and SQL knowledge of the students, 1 point for each correct answer will be assigned (no penalty for wrong answers is foreseen). A lab project (2 hours) where students should demonstrate their ability to access data from CSV files, manipulate file content to extract some information, and save the results. Both the parts are delivered on AulaWeb. Both parts should be sufficient to pass the exam (6 right answers for the quiz and a grade of 18 for the lab). The final grade is given by the weighted average of the two parts (30% the quiz and 70% the lab). Students with learning disorders ("Disturbi Specifici di Apprendimento", DSA) will be allowed to use specific modalities and supports that will be determined on a case-by-case basis in agreement with the delegate of the Engineering courses in the Committee for the Inclusion of Students with Disabilities. ASSESSMENT METHODS The quiz aims to test the knowledge for accessing information in relational databases and the comprehension of SQL queries; while the lab project tests the acquired scripting knowledge.