University of Embu
Department of Computing and Information Technology (CIT)
Course code: CSC 322 Course Title: Network and Distributed Programming
Semester: Second Academic year: 2024/2025
Course Purpose
The course provides students with knowledge of principles, mechanisms, architectures, and
platforms that underpin the design and implementation of distributed systems and applications.
Expected Learning Outcomes
At the end of the course, the learner should be able to:
1. Describe the software concepts, principles, mechanisms, architectures and platforms
that underpin the design and implementation of distributed systems and
applications.…
2. Demonstrate competency in concurrent programming models used to build scalable
servers.
3. Describe and analyze the design and architecture of object-based distributed systems
4. Design and construct networked and distributed applications including client-server,
peer-to-peer, and distributed object-based applications.
Course Outline (Topics and subtopics)
Week/ Date Lecture Topic Remarks
1: 17/01/2025 Introduction to Networking and Distributed
Systems
• Basic networking concepts (OSI model,
TCP/IP stack).
• Distributed Systems Overview:
Characteristics and Design Goals
• Types of distributed systems and their
applications.
2: 24/01/2025 Concurrent Programming:
• Processes and threads,
• process/thread interaction mechanisms;
• classical problems in concurrent
programming;
• concurrent programming with threads;
3: 31/01/2025 Network programming:
• TCP and UDP transport,
4: 7/02/2025 Introduction to software design models:
• client/server, peer-to-peer etc;
• Server designs;
• Networking APIs
5: 14/02/2025 Sockets:
• Introduction to sockets,
• Socket options, socket types,
•
6: 21/ 02/2025 CAT 1
7: 28/02/2025 Sockets
• Name and address conversions;
• Non blocking I/O;
• Daemons;
8: 07/03/2025 Sockets
• Broadcasting and multicasting;
• Network programming with TCP/IP;
9: 14/03/2025 Distributed Programming:
• Middleware for distributed applications;
• Remote Procedure Calls (RPC),
• Distributed programming using RPC;
10:21/03/2025 CAT 2
11: 28/03/2025 Distributed Object based systems:
• Distributed objects,
• Architecture;
• Communication
12: 04/04/2025 Distributed object programming systems:
• Java RMI,
• CORBA,
13: 11/04/2025 Distributed object programming systems:
• DCOM;
• Distributed object-based programming using
Java RMI and CORBA.
14 & 15 Examination
Assessment
CATs(30%) - Practical reports
- Assignments
- Sit in CATs
- Take away cats
End of semester examination: (70 %)
Reference Textbooks
1. G. Coulouris, J. Dollimore, T. Kindberg and G. Blair, Distributed Systems: Concepts
and Design, 5/E, Addison-Wesley, 2006, ISBN-10: 0321263545
2. Andrew S. Tanenbaum and Maarten Van Steen, Distributed Systems: Principles and
Paradigms (3rd Edition, 2017)
3.
Useful web pages
1. Tutorials from the official documentation of tools like gRPC, Apache Kafka, or
Kubernetes.
2. Online courses on Coursera or edX, such as “Cloud Computing Specialization” by the
University of Illinois.
Name of Lecturer: Dr Peter Maina Mwangi Sign: Date: 3rd January 2024