Operating Systems & Computer Network
For NCRE4, 2026.03
Both Operating Systems and Computer Networks are absolute cornerstones of a Computer Science (CS) education. While introductory programming teaches you how to write code, these two courses teach you how the environment running your code actually works, and how your code interacts with the rest of the world.
Notice
Please note that the contents displayed on this page and its sub-pages are not bound to any courses, nor are they all required by NCRE4, but only related to computer network and operating system.
1. Operating Systems (OS)
Position in Computer Science
The Operating Systems course sits at the critical junction between computer hardware and high-level software. It is usually a core, upper-level requirement taken after students understand data structures and basic computer architecture. You can think of the OS as the great resource manager and illusionist of computer science: it manages limited hardware resources (CPU time, memory space) and provides software with the illusion of having the computer entirely to itself.
Main Contents
An OS course strips away the magic of how a computer runs multiple programs "simultaneously." The primary topics include:
- Process Management: How the OS creates, schedules, and terminates processes and threads. This includes dealing with concurrency, deadlocks, and synchronization (e.g., mutexes and semaphores).
- Memory Management: How the OS allocates RAM to different programs, prevents programs from accessing each other's memory, and uses "virtual memory" to make the computer seem like it has more RAM than it physically does.
- File Systems: How data is physically organized, stored, and retrieved on storage devices (like HDDs and SSDs).
- I/O Systems: How the OS communicates with external hardware like keyboards, monitors, and network cards through device drivers.
Practical Applications
Understanding OS concepts is crucial for almost any advanced software engineering role.
- Systems Programming: Writing high-performance software, database engines, or web servers that need to interact closely with hardware.
- Concurrency and Multithreading: Writing stable applications that can perform multiple tasks at once without crashing or corrupting data (vital for video games and high-frequency trading).
- Cloud Computing and Virtualization: The entire cloud computing industry (AWS, Google Cloud) is built on OS concepts like virtual machines and containerization (e.g., Docker).
2. Computer Networks
Position in Computer Science
If the OS course is about what happens inside a single computer, the Computer Networks course is about how information travels between them. It bridges the gap between isolated machines and the globally connected internet. It is typically a core requirement that introduces students to the complexities of distributed systems, latency, and data transmission over unpredictable mediums.
Main Contents
Network courses are heavily structured around protocol stacks, most commonly the TCP/IP or OSI models.
- Application Layer: Protocols that software uses directly, such as HTTP (web), SMTP (email), and DNS (translating domain names to IP addresses).
- Transport Layer: How computers ensure data is sent reliably and in the correct order (TCP) or quickly without reliability guarantees (UDP).
- Network Layer: How data packets are logically routed across the globe from one IP address to another through various routers.
- Data Link & Physical Layers: How bits are actually transmitted over physical mediums like Ethernet cables, Wi-Fi radio waves, or fiber optics.
Practical Applications
We live in a hyper-connected world, making network knowledge applicable to almost every tech domain.
- Web Development: Backend developers must understand HTTP, REST APIs, latency, and bandwidth to build scalable and responsive web applications.
- Cybersecurity: You cannot secure a network if you do not understand how its protocols work. Network courses are foundational for understanding firewalls, packet sniffing, DDoS attacks, and encryption.
- Distributed Systems: Building global applications (like Netflix or distributed databases) requires a deep understanding of network reliability and routing.