Network Programming
Christ Apostolic University College
School of Information and Communication Technology
Course Title Network Programming
Course Code ICT 420
Course Instructor Andrene Nii Ayitey Addy
Mobile: 0505472404/0544660554
Course Credit 3 semester hours of credit
Target Group Level 400
Course Content This course provides an in-depth exploration of network programming technologies. Students will
learn the principles of network programming to build, secure, and maintain robust network
systems.
Course Objective By the end of this course, students will be able to:
1. Understand the fundamentals of computer networks and network programming.
2. Learn how to develop network applications using sockets in various programming
languages (e.g., C, Python, Java).
3. Gain knowledge of different network protocols such as TCP/IP, UDP, HTTP, FTP, and
SMTP.
4. Implement client-server architectures and handle concurrent network connections.
5. Work with secure network communication, including encryption and authentication
techniques.
6. Explore advanced networking topics such as multi-threaded programming, IPv6, and cloud-
based networking.
7. Develop hands-on projects to strengthen practical networking skills.
Detailed Course Outline: Contact time, and Topics
Week Contact Topic/Subtopic/Chapter
Hour
1 3 Module 1: Introduction to Networking
Basics of Computer Networks
Network Protocols & OSI Model
TCP/IP Model and Internet Architecture
Client-Server Communication
2 3 Module 2: Socket Programming
Introduction to Sockets
TCP vs. UDP Sockets
Creating a Simple Client-Server Program
Blocking vs. Non-Blocking Sockets
3 3 Module 3: Advanced Socket Programming
Handling Multiple Clients (Threading & Multiprocessing)
Select, Poll, and Epoll Mechanisms
Raw Sockets and Packet Sniffing
Secure Socket Layer (SSL) & TLS
4 3 Module 4: Protocols and Application Layer
HTTP, HTTPS, FTP, SMTP, and DNS
RESTful APIs and WebSockets
Network File Transfers and Remote Procedure Calls (RPC)
5 Module 5: Network Security & Performance Optimization
3
Encryption and Authentication (SSL/TLS, OpenSSL)
Firewalls and Intrusion Detection Systems
Performance Tuning in Network Applications
6 3 Module 6: Advanced Topics in Network Programming
IPv6 and Its Implementation
Cloud Networking and Virtualization
Wireless & Mobile Networking Considerations
7 Module 7: Network Debugging & Performance Optimization
Debugging network applications with Wireshark and tcpdump
Performance testing with tools like Apache JMeter
Optimizing network latency and bandwidth usage
Identifying and mitigating common network programming issues
8
Module 8: Network Programming in Cloud & Web Services
Introduction to cloud networking
Using WebSockets for real-time communication
Implementing network applications with cloud APIs (AWS, Google Cloud, Azure)
9 Load balancing and scalability considerations
Module 9: Project & Case Studies
10,11,12
Developing a Real-World Network Application
Debugging and Performance Testing of Network Code
Industry Use Cases & Emerging Trends in Networking
Mode of Delivery Lectures (face-to-face, online, using a student-centered learning approach), tutorials, seminars,
group work, and extensive practicals and assignments.
Course policy All students are expected to abide by the code of conduct of students of our University
throughout this course.
Academic dishonesty, including cheating, fabrication, and plagiarism will not be tolerated.
Class activities will vary day to day, ranging from lectures to discussions. Students will be
active participants in the course.
You are required to submit and present the assignments provided according to the time
table indicated.
80 % of class attendance is mandatory! Please try to be on time for class.
Active participation in class is essential and it will have its own value in your grade
Text Books: Textbooks and online resources
TCP/IP Sockets in C: Practical Guide for Programmers" – Michael J. Donahoo & Kenneth L.
Calvert
A hands-on guide for writing socket programs in C.
"TCP/IP Sockets in Java: Practical Guide for Programmers" – Kenneth L. Calvert &
Michael J. Donahoo