100% found this document useful (1 vote)
34 views

CSC322-Network and Distributed Programming

The course CSC 322 at the University of Embu focuses on Network and Distributed Programming, providing students with knowledge of distributed systems' principles, architectures, and programming models. Learners are expected to demonstrate competency in concurrent programming and design networked applications. The course includes a detailed outline of topics covering networking concepts, concurrent programming, socket programming, and distributed object-based systems, along with assessments and reference materials.

Uploaded by

David Waihenya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
34 views

CSC322-Network and Distributed Programming

The course CSC 322 at the University of Embu focuses on Network and Distributed Programming, providing students with knowledge of distributed systems' principles, architectures, and programming models. Learners are expected to demonstrate competency in concurrent programming and design networked applications. The course includes a detailed outline of topics covering networking concepts, concurrent programming, socket programming, and distributed object-based systems, along with assessments and reference materials.

Uploaded by

David Waihenya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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

You might also like