CODE 104779 ACADEMIC YEAR 2024/2025 CREDITS 2.5 cfu anno 2 INTERNET AND MULTIMEDIA ENGINEERING 10378 (LM-27) - GENOVA SCIENTIFIC DISCIPLINARY SECTOR ING-INF/03 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 2° Semester MODULES Questo insegnamento è un modulo di: INTERNET PROGRAMMING AND AUTONOMOUS SYSTEMS TEACHING MATERIALS AULAWEB AIMS AND CONTENT LEARNING OUTCOMES The course is aimed at providing the bases of inter-process communication (IPC) under an Unix operating system: the main system calls for controling the processes and the socket application programming interfaces (APIs) will be covered. The goal is to give the students an adequate knowledge needed to write client-server applications which are at the base of almost all Internet appliances. AIMS AND LEARNING OUTCOMES The lectures are designed as a coordinated mix of theoretical and practical elements on operating systems, processes, and socket programming. The coordination of these concepts aims at providing the students with the necessary skills to understand how to develop simple network applications, for instance Cloud Computing and/or Internet of Things. Attendance, active participation to lectures, and individual study will allow students - to appreciate the advantages/opportunities deriving from the use of Inter-process communication (IPC) - to understand the main techniques for exploiting the IPC; - to write code to implement Client/Server applications; - to know the principal client/server tools provided by the Internet Suite. TEACHING METHODS Lectures in attendance (except for specific restrictions due to the Covid-19 emergency). Lectures include also laboratory/programming trials. Further information will be available on the AulaWeb page devoted to the course. SYLLABUS/CONTENT - Hints on the general structure of a Unix Operating System. - Main techniques of Inter-process communication: signals, semaphores, shared memory, sockets. - Sockets for UDP and TCP data exchange. - Examples of "C" and/or Pyton code exploiting IPC and network sockets. RECOMMENDED READING/BIBLIOGRAPHY Handouts provided by the lecturers. Reference books: - W. Richard Stevens, "UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications", Prentice Hall, 1999, ISBN 0-13-081081-9. - Marc J. Rochkind, "Advanced Unix Programming", Addison-Wesley Professional, 2004, ISBN-10 0131411543. People who cannot attend the lectures will fruitfully use the reference books, especially focusing on the chapters that deal with the topics faced in the handouts. TEACHERS AND EXAM BOARD ALESSANDRO CARREGA Exam Board LUCIO MARCENARO (President) CARLO REGAZZONI ALESSANDRO CARREGA (President Substitute) LESSONS LESSONS START https://corsi.unige.it/10378/p/studenti-orario Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION Oral ASSESSMENT METHODS The oral exam is aimed at evaluting the synthsis, reasoning, and critical capacities of students on the topics covered by the lectures. Exam schedule Data appello Orario Luogo Degree type Note 08/01/2025 14:00 GENOVA Scritto + Orale 29/01/2025 14:00 GENOVA Scritto + Orale 14/02/2025 14:00 GENOVA Scritto + Orale 18/06/2025 14:00 GENOVA Scritto + Orale 09/07/2025 14:00 GENOVA Scritto + Orale 30/07/2025 14:00 GENOVA Scritto + Orale 10/09/2025 14:00 GENOVA Scritto + Orale FURTHER INFORMATION Students with disabilities or learning disorders are 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. Students are invited to contact the teacher of this course and copy the Delegate (https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.html).