PROGRAMMING TECHNIQUES FOR DISTRIBUTED SYSTEMS

Academic Year 2025/2026 - Teacher: RAFFAELE DI NATALE

Expected Learning Outcomes

Knowledge and understanding

Knowledge of Java, with particular emphasis on distributed programming tools. Ability to integrate various programming techniques to structure the architecture of a distributed system based on a set of design requirements.


Applied knowledge

Ability to report what has been learned in the ability to deploy applications in commonly used distributed environments.

Required Prerequisites

Computer Systems Foundations

Attendance of Lessons

Attendance of the lessons is not compulsory but highly recommended.

Detailed Course Content

1. Object-oriented programming The Java programming language.General features, data types, operators, expressions, control structures: Classes, objects, interfaces, inheritance and polymorphism, packages, 

2. Threads and concurrency, 

3. Eexception management, events. Input / Output. 

4. Introduction to Distributed Systems

5. Programming for distributed systems JAVA: Concurrency. Socket. Networking. 

6. Distributed Computing, Process to Process Communications, Publish/SubScribe Model

Textbook Information

Distributed Systems: Theory and Applications, R. K. Ghosh

Core Java: Fundamentals: Fundamentals, Volume 1&2