Skip to main content
CODE 104779
ACADEMIC YEAR 2025/2026
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/03
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
MODULES Questo insegnamento è un modulo di:
TEACHING MATERIALS AULAWEB

AIMS AND CONTENT

LEARNING OUTCOMES

The lectures are designed as a coordinated mix of theoretical and practical elements on operating systems, processes, socket programming, RESTful APIs (Application Program Interfaces), and related security mechanisms. 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 Multi Thread Internet applications; - to design and implement Multi Thread Internet applications; - to design and implement Client/Server applications; - to design and implement RESTful APIs; - to use, design and implement security protocols and mechanisms for Client/Server applications and RESTful APIs.

AIMS AND LEARNING OUTCOMES

The lessons are designed as a coordinated mix of theoretical and practical elements on operating systems, processes, socket programming, programming of REST API architectures and some concepts related to the security of these implementations. The coordination of these concepts aims to provide students with the skills needed to understand how to develop simple network applications, such as Cloud Computing and/or Internet of Things (IoT).

Attendance, active participation in the lessons and individual study will allow students to:

  • appreciate the advantages/opportunities arising from the use of inter-process communication (IPC) and inter-thread communication (ITC);
  • understand the main techniques to exploit IPC and ITC;
  • write code to implement Client/Server applications based on Socket (TCP and UDP) and those based on REST API with related security concepts for the protection of these applications.
  • know the main tools for the development, testing and deployment of Client/Server applications based on Socket (TCP and UDP), and those based on REST API.

TEACHING METHODS

Lectures in attendance (except for specific restrictions due to the Covid-19 emergency).

Lectures are mainly related to programming and they include some possible practical trials.

Further information will be available on the AulaWeb page and on Microsoft Teams channel devoted to the course.

SYLLABUS/CONTENT

  1. General overview of Unix / Linux Operating Systems
    1. Multi - Process / Multi - Thread paradigm
    2. Main techniques of IPC (Inter Process Communications) / ITC (Inter Thread Communications)
  2. Socket Programming
    1. TCP
    2. UDP
    3. Security with TSL and SSL
  3. REST API
    1. Introduction
    2. Architectural Constraints
    3. Design
      1. Error Handling Patterns
      2. Handling Change - Versioning Patterns
      3. Cache Control Patterns
  4. REST Security
    1. Introduction
    2. Basic Authentication
    3. Tokens & JWT
    4. Keys & Secret
    5. OAuth 2.0
    6. Functional Attack

RECOMMENDED READING/BIBLIOGRAPHY

Recordings of the lessons with particular attention to the development of the code explained point by point.

Reference Books

  • Vasudevan, S. K., Muralidharan, S., Sundaram, M. N., and Suresh, C. (2015), "Essentials of internet programming," I.K. International Publishing House.
  • Stevens, W. R. (1990), "UNIX Network Programming," Prentice Hall.
  • Stevens, W. R. (1998), "UNIX Network Programming, Volume 2: Interprocess Communications (2nd ed.)," Prentice Hall.
  • Rochkind, M. J. (2004), "Advanced UNIX Programming (2nd ed.)," Addison-Wesley Educational.
  • Goerzen, J., Bower, T., and Rhodes, B. (2010). "Foundations of Python Network Programming: The comprehensive guide to building network applications with Python (2nd ed.)," APress.
  • Jose Manuel Ortega (2023), "Python for Security and Networking: Leverage Python modules and tools in securing your network and applications (3rd ed.)," Packt.
  • Subramanian, H., and Raj, P. (2019), "Hands-On RESTful API Design Patterns and Best Practices: Design, develop, and deploy highly adaptable, scalable, and secure RESTful web APIs," Packt Publishing.

TEACHERS AND EXAM BOARD

LESSONS

EXAMS

EXAM DESCRIPTION

Written. Additional oral exam for possible improvement of the final grade.

ASSESSMENT METHODS

The written exam with a possible subsequent oral test is aimed at evaluating the students' ability to summarise, reason and criticise the topics covered in class.

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).