Computer Science
The discipline of computation: architecture, algorithms, databases, and AI foundations.
17 Topics
AI & Machine Learning
AI and Machine Learning focus on developing systems that learn from data to make predictions or decisions. Learners will understand core algorithms, neural networks, data preprocessing, and how to train and evaluate models.
Algorithms
Algorithms are step-by-step procedures used to solve computational problems and process data. Learners will understand sorting, searching, graph traversal, and how to analyze time and space complexity using Big O notation to write efficient code.
Compilers & Interpreters
Compilers translate source code into runnable programs. You will learn lexing, parsing, type checking, intermediate representations, optimisation and code generation by building a language from scratch.
Computer Architecture
Computer architecture explores the design and organization of computer systems, focusing on instruction sets, processors, memory hierarchies, and I/O interfaces. Learners will understand how hardware components interact to execute software instructions efficiently.
Computer Graphics
Computer graphics renders 2D and 3D images in real time or offline. You will learn the rasterisation pipeline, shaders, linear algebra for graphics, lighting models and ray tracing, using OpenGL, WebGL or Vulkan.
Data Structures
Data structures are specialized formats for organizing, processing, and storing data in a computer. Learners will understand arrays, linked lists, stacks, queues, trees, and graphs, and how to select the optimal structure for efficient data retrieval.
Data Structures & Algorithms
This topic combines data organization methods with step-by-step computational procedures. You will understand how to select appropriate data structures, design efficient algorithms, and analyze their time and space complexity to solve complex programming problems effectively.
Databases
Databases are structured systems for storing, managing, and retrieving data. You will understand relational and non-relational database models, write SQL queries, design schemas, and manage data integrity and transactions for modern software applications.
Functional Programming & Haskell
Functional programming builds software from pure functions and immutable data; Haskell is its purest mainstream language. You will learn types, higher-order functions, monads and how FP ideas transfer to any language.
Generative Art & Creative Coding
Creative coding makes art with algorithms. You will learn p5.js and Processing, randomness and noise, generative systems, shaders and how to exhibit or sell generative work.
Introduction to CS
This introductory field covers the core principles of computing, programming, and systems. You will understand how to write simple programs, analyze basic algorithms, and grasp how hardware and software interact to solve real-world computational problems.
Introduction to Computer Science
This subject introduces the fundamental concepts of computing and programming. You will understand computational thinking, basic software development, algorithm design, and how computers process information, establishing a foundation for further technical study in the field.
Networks & Security
This field covers how computers communicate and how to protect those communications. You will understand network protocols, routing, and architecture, alongside security principles like encryption, firewalls, and defense mechanisms against network-based threats.
Operating Systems
Operating systems manage computer hardware and provide services for execution of software. You will understand process scheduling, memory management, file systems, and concurrency, enabling you to write software that interacts efficiently with the underlying system.
Programming Fundamentals
This topic covers the essential building blocks of writing computer code. You will understand variables, control flow, loops, functions, and basic data types, enabling you to write simple programs and transition to any specific programming language.
Software Engineering
Software engineering applies systematic engineering principles to software development. You will understand software lifecycles, design patterns, testing methodologies, version control, and project management practices required to build reliable, scalable, and maintainable software systems.
Theory of Computation
This mathematical branch of computer science explores what can be computed and how efficiently. You will understand automata theory, formal languages, computability, and complexity classes, helping you grasp the fundamental limits of computers and algorithms.
