Difficulty: Beginner | Prerequisites: Familiarity with basic data structures and algorithms (see companion notes).
These four topics represent the layers that sit between raw hardware and the applications people use every day. The operating system manages the machine's resources. Networks connect machines together. Databases give applications a structured place to store and retrieve data. Software engineering is the discipline that ties it all together into reliable, maintainable systems. If the first set of notes (data structures, algorithms, languages) gave you the building blocks, this set shows you the infrastructure those blocks get assembled into.
An operating system manages hardware and software resources. Computer networks let machines share resources and communicate. Databases organise data so programs can store, retrieve, and manipulate it efficiently. Software engineering is the systematic process of designing, building, testing, and maintaining all of the above.
Operating system (OS)
A software program that manages the hardware and software resources of a computer, acting as an intermediary between the user and the machine.
Think of it as the building manager of a block of flats: it decides who gets which room (memory), when the lift is available (CPU time), and where the post goes (file storage).
Memory management
The OS function responsible for allocating and deallocating memory space to programs as they run.
In simple terms, it is how the OS decides which program gets how much RAM and reclaims it when the program finishes.
Process scheduling
The OS function that determines which process gets access to the CPU and for how long, allowing multiple programs to appear to run simultaneously.
File management
The OS function that organises, stores, retrieves, and controls access to files on storage devices.
Computer network
A collection of computers and other devices connected together to share resources and communicate with each other.
In simple terms, any time two or more devices are linked so they can exchange data, you have a network.
Network topology
The physical or logical arrangement of nodes in a network. Common topologies include star, bus, and mesh.
Think of it as the floor plan of the network: topology describes who is connected to whom and through what path.
Star topology
All nodes connect to a single central hub. Simple to manage, but the hub is a single point of failure.
Bus topology
All nodes share a single communication line. Inexpensive but prone to congestion and difficult to troubleshoot.
Mesh topology
Every node connects to every other node (full mesh) or to several others (partial mesh). Highly redundant but expensive to implement.
TCP/IP (Transmission Control Protocol / Internet Protocol)
The foundational protocol suite for the internet. TCP handles reliable, ordered delivery of data; IP handles addressing and routing packets between devices.
In simple terms, TCP/IP is the set of rules that lets your computer talk to any other computer on the internet.
HTTP (Hypertext Transfer Protocol)
The protocol used for transferring web pages and other resources between a web browser and a web server.
FTP (File Transfer Protocol)
A protocol for transferring files between a client and a server over a network.
Database
A collection of data organised in a structured way so that computer programs can access and manipulate it efficiently.
Think of it as a digital warehouse with labelled shelves: everything has an address, and the system knows exactly where to find it.
Database management system (DBMS)
The software that provides tools for creating, managing, querying, and securing a database. Examples include MySQL, Oracle, and Microsoft SQL Server.
SQL (Structured Query Language)
The standard language for interacting with relational databases, used to create, read, update, and delete data.
In simple terms, SQL is how you ask a database questions and tell it to change things.
Software engineering
The systematic process of designing, developing, testing, and maintaining software systems using engineering principles.
In simple terms, it is building software the way an engineer builds a bridge: with planning, standards, and quality checks.
Requirements gathering
The phase of software engineering where the team identifies what the software needs to do, from the perspective of its users and stakeholders.
Quality assurance (QA)
The set of activities that ensure a software product meets specified requirements and is free of defects before release.
Software documentation
Written material that describes how software works, how to use it, and how to maintain it. Includes user manuals, API references, and architecture documents.
The OS is the layer between hardware and user applications.
Three core services to know:
Memory management: allocating RAM to running processes, reclaiming it when they finish, and preventing one process from accessing another's memory.
Process scheduling: deciding which of several competing processes gets the CPU at any given moment. Common strategies include round-robin and priority-based scheduling.
File management: organising data on disk into files and directories, controlling read/write permissions, and managing storage space.
Major examples: Windows (dominant in consumer desktops), macOS (Apple hardware), Linux (dominant in servers and open-source environments).
A network exists whenever two or more devices can exchange data.
Topologies describe the layout:
Star: central hub, easy to add/remove nodes, hub failure kills the network.
Bus: single shared cable, cheap, but a break in the cable affects everyone.
Mesh: many redundant paths, highly fault-tolerant, costly to build.
Protocols are the agreed rules for communication:
TCP/IP: the backbone of the internet. IP routes packets; TCP ensures they arrive complete and in order.
HTTP: the protocol behind every web page you load.
FTP: used for bulk file transfers between machines.
A database organises data so programs can store, retrieve, and update it reliably.
A DBMS (database management system) is the software that sits between the application and the raw data, handling queries, security, and concurrency.
Major examples: MySQL (open-source, widely used in web applications), Oracle (enterprise-grade, common in large organisations), Microsoft SQL Server (common in Windows-based enterprise environments).
Most relational databases are queried using SQL.
Software engineering applies engineering discipline to software: plan, build, test, ship, maintain.
Key phases of the development lifecycle:
Requirements gathering: what the software should do.
Design: how it will be structured (architecture, data models, interfaces).
Coding: writing the actual program.
Testing: verifying it works correctly and handles edge cases.
Maintenance: fixing bugs, updating features, and adapting to new requirements after release.
Beyond the code itself, software engineering includes project management (keeping the team on schedule), quality assurance (catching defects before users do), and documentation (making sure the next developer can understand what was built).
Your phone's operating system (iOS or Android) is constantly performing memory management and process scheduling every time you switch between apps. The Wi-Fi network in a coffee shop is a star topology with the router as the central hub. Every time you log into a website, the server queries a database to check your credentials. Software engineering practices are what allow companies like banks and hospitals to build systems that handle millions of transactions without catastrophic failure.
Students often think the operating system is the same thing as the user interface. The OS includes the UI, but most of its work happens invisibly: managing memory, scheduling processes, and handling file I/O.
Students often confuse network topology with network protocol. Topology is the physical or logical layout (star, bus, mesh). Protocol is the set of rules for communication (TCP/IP, HTTP). They are independent concepts.
Students often assume "database" means "spreadsheet." A spreadsheet stores data in a flat grid with no enforced structure. A database enforces schemas, supports concurrent access, handles transactions, and scales to millions of records.
Students often treat software engineering as synonymous with coding. Coding is one phase. Requirements, design, testing, maintenance, project management, and documentation are equally part of the discipline.
⚠️ Know the three core OS services (memory management, process scheduling, file management) and be able to explain each in one sentence.
⚠️ Be able to compare star, bus, and mesh topologies, including one advantage and one disadvantage of each.
⚠️ TCP/IP, HTTP, and FTP are commonly tested. Know what layer each operates at and what it is used for.
⚠️ Know the difference between a database and a DBMS. Exam questions may ask you to name examples of each.
⚠️ Be able to list the phases of the software development lifecycle in order: requirements, design, coding, testing, maintenance.
True or false: An operating system only manages hardware resources, not software resources.
Fill in the blank: In a _______ topology, all nodes connect to a single central hub.
True or false: HTTP is the protocol used for transferring files between a client and a server.
Fill in the blank: A _______ is the software layer that provides tools for creating, managing, and querying a database.
True or false: Testing comes before coding in the software development lifecycle.
Answers: 1. False (it manages both). 2. Star. 3. False (that describes FTP; HTTP transfers web pages and resources). 4. DBMS (database management system). 5. False (coding comes before testing).
Q: Name the three core services provided by an operating system and briefly explain each.
A: Memory management (allocating and reclaiming RAM for processes), process scheduling (determining which process gets CPU time), and file management (organising and controlling access to files on storage devices).
Q: Compare star and mesh network topologies. Give one advantage and one disadvantage of each.
A: Star: advantage is simplicity of management; disadvantage is that the central hub is a single point of failure. Mesh: advantage is high redundancy and fault tolerance; disadvantage is the cost and complexity of connecting every node.
Q: What is the difference between TCP and IP in the TCP/IP protocol suite?
A: IP handles addressing and routing packets between devices (getting data to the right machine). TCP handles reliable, ordered delivery of that data (making sure it arrives complete and in sequence).
Q: A company stores customer records in MySQL. Is MySQL the database or the database management system?
A: MySQL is the database management system (DBMS). The database is the structured collection of customer records that MySQL creates, manages, and queries.
Q: List the five phases of the software development lifecycle in order.
A: Requirements gathering, design, coding, testing, maintenance.
Q: Why is software documentation considered part of software engineering rather than an afterthought?
A: Documentation ensures that future developers can understand, maintain, and extend the system. Without it, knowledge lives only in the heads of the original team, making the software fragile and expensive to maintain.
Operating systems rely heavily on the data structures covered in the companion notes, particularly queues (for process scheduling) and trees (for file systems). Networking protocols connect to database systems when you consider that most modern databases are accessed over a network via client-server architecture. Software engineering practices apply to every project in the degree, from a small class assignment to a capstone project. Understanding these systems-level topics will be essential when you reach courses on distributed systems, cloud computing, or cybersecurity.
operating system, OS, Windows, macOS, Linux, memory management, process scheduling, file management, computer network, network topology, star topology, bus topology, mesh topology, TCP/IP, HTTP, FTP, protocol, database, DBMS, database management system, MySQL, Oracle, SQL Server, SQL, structured query language, software engineering, SDLC, software development lifecycle, requirements gathering, design, coding, testing, maintenance, quality assurance, QA, documentation, COMP 301, Computer Science I, UCF, intro to CS