University Computer Science — Year 3

The final year is specialist territory. Having built the foundations, you now turn to the frontiers: how languages are designed and compiled, how systems scale across thousands of machines, how machines reason and learn, how images are rendered, how people and computers meet, and where the hard limits of computation and security lie.

Every module below is grouped by its lecture course. Machine learning and deep learning already have their own courses; the rest are shown as placeholders so you can see the shape of the whole year.

Compilers

  1. Compiler Phases Overview
  2. Lexical Analysis
  3. Context-Free Grammars and Parsing
  4. Top-Down and Bottom-Up Parsing
  5. Abstract Syntax Trees
  6. Semantic Analysis and Symbol Tables
  7. Intermediate Representation
  8. Code Generation
  9. Optimization Passes

Programming Languages

  1. Syntax and Semantics
  2. Paradigms Overview
  3. Type Systems
  4. Type Inference
  5. The Lambda Calculus
  6. Evaluation Strategies
  7. Building an Interpreter
  8. Memory Management and Garbage Collection

Distributed Systems

  1. Models and Failure
  2. Logical Clocks and Time
  3. Remote Procedure Call
  4. Replication and Consistency
  5. The CAP Theorem
  6. Consensus: Paxos and Raft
  7. Fault Tolerance
  8. MapReduce and Distributed Compute

Artificial Intelligence

  1. Intelligent Agents
  2. Uninformed Search
  3. Informed Search and Heuristics
  4. Adversarial Search and Minimax
  5. Alpha-Beta Pruning
  6. Constraint Satisfaction
  7. Knowledge Representation and Logic Agents
  8. Automated Planning
  9. Reasoning Under Uncertainty

Machine Learning

  1. Machine Learning

Computer Graphics

  1. The Rendering Pipeline
  2. Raster vs Vector
  3. 2D Transforms
  4. 3D Transforms and Homogeneous Coordinates
  5. Projection and the Camera
  6. Rasterization
  7. Ray Tracing
  8. Shading and Lighting
  9. Colour and Texture

Human-Computer Interaction

  1. Interaction Paradigms
  2. Usability and Norman's Principles
  3. The Human: Perception, Cognition, Memory
  4. The UX Design Process
  5. Prototyping
  6. Evaluation Methods

Advanced Complexity

  1. NP-Completeness and Reductions
  2. Undecidability via Reductions
  3. Space Complexity and Hierarchy

Cryptography & Security

  1. Staying Safe Online
  2. Phishing and Social Engineering
  3. Malware
  4. Common Network Attacks
  5. Authentication and Access Control
  6. Firewalls and Antivirus
  7. Penetration Testing
  8. Modular Arithmetic
  9. Encryption
  10. Symmetric vs Asymmetric Encryption
  11. Hashing
  12. Digital Signatures and Certificates

Elective: Deep Learning

  1. Deep Learning