Skip to content
Subjects

University Computer Science

Tips

This course follows a typical computer science degree from the first program to machine learning. It starts with programming fundamentals and discrete mathematics, then builds up: object-oriented design, data structures and algorithms, computer architecture, operating systems, databases and networks. Later parts cover algorithm design, the theory of computation and compilers, software engineering, and AI and machine learning.

Two habits matter more than any language. First, write and run code every week: reading a solution is not the same as producing one. Second, reason about cost. A university answer must say how the running time grows with the input, written as Big-O, and why the algorithm is correct, not only that it worked on one test.

Discrete maths can feel separate from programming. It is not. Proof by induction is how you show a recursive function is right, and graphs are behind maps, networks and compilers.

  • 1

    Programming Fundamentals

    • 1.1 What this course is, and how to use it
    • 1.1 Values, types and input/output
    • 1.2 Selection: choosing between paths
    • 1.3 Iteration: doing it again
    • 1.4 Functions: naming a job once
    • 1.5 Collections: lists, dictionaries, tuples, sets
    • 1.6 Files and errors
    • 1.7 Decomposition, testing and debugging
  • 2

    Discrete Mathematics

    • 2.1 Logic and proofs
    • 2.2 Sets, functions and relations
    • 2.3 Induction and recursion
    • 2.4 Counting and combinatorics
    • 2.5 Graphs and trees
    • 2.6 Discrete probability
  • 3

    Computer Systems Fundamentals

    • 3.1 Binary and data encoding
    • 3.2 Logic gates and digital building blocks
    • 3.3 Processor and memory overview
    • 3.4 Machine instructions
    • 3.5 The operating-system interface
    • 3.6 Compilation and execution path
  • 4

    Object-Oriented Programming

    • 4.1 Objects and classes
    • 4.2 Encapsulation
    • 4.3 Composition and inheritance
    • 4.4 Interfaces and polymorphism
    • 4.5 Exceptions and error handling
    • 4.6 Testing and design quality
  • 5

    Data Structures and Algorithms

    • 5.1 Asymptotic analysis
    • 5.2 Lists, stacks and queues
    • 5.3 Hashing
    • 5.4 Trees and heaps
    • 5.5 Graphs and traversal
    • 5.6 Sorting
    • 5.7 Searching
  • 6

    Computer Architecture

    • 6.1 Instruction set architecture
    • 6.2 Datapath and control
    • 6.3 Pipelining
    • 6.4 Memory hierarchy
    • 6.5 Input/output
    • 6.6 Parallelism and performance
  • 7

    Operating Systems

    • 7.1 Processes and threads
    • 7.2 Scheduling
    • 7.3 Synchronisation
    • 7.4 Virtual memory
    • 7.5 File systems
    • 7.6 Protection and security
  • 8

    Databases

    • 8.1 Relational modelling
    • 8.2 Relational algebra and SQL
    • 8.3 Normalisation
    • 8.4 Indexes and query plans
    • 8.5 Transactions and concurrency
    • 8.6 Security and data governance
  • 9

    Computer Networks

    • 9.1 Layering and architecture
    • 9.2 Link layer and IP
    • 9.3 Routing
    • 9.4 Transport (TCP/UDP)
    • 9.5 Application protocols
    • 9.6 Network security
    • 9.7 Distributed systems fundamentals
  • 10

    Algorithm Design and Analysis

    • 10.1 Recurrences and analysis tools
    • 10.2 Divide and conquer
    • 10.3 Greedy algorithms
    • 10.4 Dynamic programming
    • 10.5 Graph optimisation
    • 10.6 Reductions and NP-completeness
  • 11

    Theory of Computation and Compilers

    • 11.1 Automata and regular languages
    • 11.2 Context-free languages and parsing theory
    • 11.3 Computability
    • 11.4 Lexical analysis
    • 11.5 Parsing
    • 11.6 Semantic analysis and code generation
  • 12

    Software Engineering

    • 12.1 Requirements
    • 12.2 Architecture and design
    • 12.3 HCI and accessibility
    • 12.4 Version control and teamwork
    • 12.5 Testing and continuous integration
    • 12.6 Security and professional ethics
    • 12.7 Team project
  • 13

    Artificial Intelligence and Machine Learning

    • 13.1 Search
    • 13.2 Knowledge and reasoning
    • 13.3 Probability models
    • 13.4 Regression and classification
    • 13.5 Optimisation and learning
    • 13.6 Evaluation and leakage
    • 13.7 Fairness and limitations

Log in or create account

IGCSE, A-Level & AP