TABFlux
HomeCoursesUniversitiesProgramsForum
Contact Us

© 2026 TABFlux. All rights reserved. Built for students, by students.

ForumPrivacy PolicyTerms of ServiceContact UsContributors

Network and System Administration

Network and System Administration focuses on managing networked systems. It covers installation, configuration, monitoring, troubleshooting, and maintenance of network and server environments.

Select University

TUFWU

Select Program

BSC-CSITBCA-OLDBITBCT-NEW

TabFlux . Network and Systems Programming . TU . BCT-NEW

Network and Systems Programming

0%

Course Title: Network and Systems Programming

Course No: ENCT386

Nature of the Course: Theory + Lab

Semester: 6

Full Marks: 60 + 40 + 25

Pass Marks: 24 + 16 + 10

Credit Hours: 3

Course Description

Course Objectives

Course Contents

1. System Programming Fundamentals
4 hrs5 marks
1.1. Overview of system programming and its role in networking
1.2. User space versus kernel space
1.3. System calls and standard libraries
1.4. File descriptors and low-level I/O
1.5. Linux/Unix system architecture overview
2. Process Management and IPC
7 hrs9 marks
2.1. Process creation and control (Fork, exec, wait)
2.2. Process states and scheduling concepts
2.3. Signals and signal handling
2.4. Inter-process communication
  • Pipes and FIFOs
  • Message queues
  • Shared memory
  • Semaphores
3. Threads and Concurrent Programming
7 hrs9 marks
3.1. Thread models and lifecycle
3.2. POSIX threads (Pthreads)
3.3. Thread synchronization
  • Mutexes
  • Condition variables
3.4. Deadlocks, race conditions, and avoidance
3.5. Multithreading versus multiprocessing (Performance considerations)
4. Socket Programming and Network APIs
10 hrs14 marks
4.1. Socket interface and API
4.2. TCP socket programming (Client-server model)
4.3. UDP socket programming
4.4. Blocking versus non-blocking sockets
4.5. I/O multiplexing (Select, poll basics)
4.6. Error handling and debugging techniques
5. Advanced Network Programming
7 hrs9 marks
5.1. Concurrent server design
  • Iterative versus concurrent servers
  • Multi-process and multi-threaded servers
5.2. Event-driven programming: Select, poll, epoll
5.3. High-performance server design principles
5.4. Concepts of remote procedure call (RPC)
5.5. Introduction to RESTful APIs and microservices
5.6. Secure communication basics (SSL/TLS overview)
6. System-Level I/O and Performance Optimization
5 hrs7 marks
6.1. Advanced file I/O (Read/write optimization)
6.2. Non-blocking I/O and asynchronous I/O concepts
6.3. Memory-mapped files (Mmap)
6.4. File locking and concurrency
6.5. Performance tuning and profiling basics
7. Network Application Development and Case Studies
5 hrs7 marks
7.1. Design of scalable client-server systems
7.2. Development of network applications: Chat servers, file transfer systems
7.3. Debugging and monitoring tools (Netstat, ss, tcpdump, wireshark)
7.4. Case studies of real-world systems (Web servers, distributed apps)

Laboratory Works

  1. 1.System calls and file operations in Linux
  2. 2.Process creation using fork/exec and process control
  3. 3.IPC using pipes, shared memory, and message queues
  4. 4.Signal handling programs
  5. 5.Thread creation and synchronization using Pthreads
  6. 6.TCP client-server socket programming
  7. 7.UDP-based communication programs
  8. 8.Multi-client concurrent server (thread/process-based)
  9. 9.I/O multiplexing using select/poll
  10. 10.Packet capture and analysis using Wireshark
  11. 11.Mini-project: Design and implement a scalable network application

Text Books

  1. 1.Forouzan, B. A. (2017). Data communications and networking. McGraw-Hill Education.
  2. 2.Kurose, J. F., Ross, K. W. (2021). Computer networking: A top-down approach. Pearson.
  3. 3.Stevens, W. R. (2013). Advanced programming in the UNIX environment. Addison-Wesley.
  4. 4.Stevens, W. R. (2003). UNIX network programming. Addison-Wesley.
  5. 5.Kernighan, B. W., Pike, R. (1984). The UNIX programming environment (Latest Edition). Prentice Hall.

Notes:

Source:

This course provides knowledge of networking and system-level programming concepts. It focuses on socket programming, process and thread management, and the use of system calls for efficient resource handling.

Upon completion, students will be able to:

  • To provide knowledge of networking and system-level programming concepts

  • To develop concurrent and scalable high-performance network applications suitable for real-world computing environments

Practical sessions covering system calls, file operations, process creation, IPC, thread synchronization, TCP/UDP socket programming, multi-client servers, I/O multiplexing, packet capture, and a mini-project on scalable network application development. (15 hours)

This syllabus follows the official BCT curriculum of Tribhuwan University. In case of any doubt or revision, the university's published syllabus shall be considered authoritative. https://ioe.tu.edu.np/pages/computer-engineering-curriculum-structure-2635