Computing
Computing
Computing is the systematic study of algorithmic processes, encompassing both the theoretical foundations and practical applications of computation. A rigorous education in computing requires understanding the mathematical structures that underpin algorithms, the engineering principles that govern system design, and the theoretical limits that constrain what can be computed.
Core Areas of Study
The discipline spans several interconnected domains: discrete mathematics provides the formal language for reasoning about algorithms and data structures; computer networks describe how distributed systems communicate; database systems manage the storage and retrieval of structured data; operating systems coordinate hardware resources; and theory of computation establishes the boundaries of algorithmic solvability and complexity.
Approach to Study
Each topic builds on foundational concepts from discrete mathematics, particularly logic, set theory, and graph theory. Work through the mathematical foundations first, as they provide the vocabulary and reasoning tools required for advanced study in algorithms, networks, and systems. Practice problems regularly to develop fluency with proofs, complexity analysis, and system design.
Overview
University-level computing notes covering discrete mathematics, algorithms, networks, databases, operating systems, and theory of computation.
Subjects Covered
- Discrete Mathematics: Logic, sets, proofs, combinatorics, graphs
- Algorithms and Data Structures: Analysis, design, implementation
- Computer Networks: Protocols, architecture, security
- Database Systems: Relational model, SQL, normalisation, transactions
- Operating Systems: Processes, memory, file systems, virtualisation
- Theory of Computation: Automata, computability, complexity
Prerequisites
- Basic programming experience
- Mathematical maturity
- Familiarity with discrete mathematics (helpful but not required)
How to Use These Notes
Start with discrete mathematics to build foundational knowledge, then progress to algorithms and systems. Each section includes worked examples and practice problems.
Navigation
Use the sidebar to browse topics, or start with the introductory pages linked from the sidebar.
Additional Resources
Each section includes:
- Detailed explanations of key concepts
- Worked examples with step-by-step solutions
- Practice problems with answers
- Common pitfalls and how to avoid them
- Connections to other areas of computing
Study Tips
- Build a strong foundation: Ensure you understand discrete mathematics before moving to advanced topics
- Practise regularly: Computing requires active practice, not just reading
- Connect theory and practice: Relate theoretical concepts to real-world applications
- Learn the patterns: Recognise common design patterns and algorithms
- Seek feedback: Discuss solutions with peers or tutors