Explore computer science, one topic at a time.
Discover computer science from first-year programming and fundamentals to advanced core subjects, specializations, and master’s level AI, cybersecurity, cloud, and research topics. Choose a topic to explore its course outline and lessons as they become available.
Computer Science topics and courses
Search the directory or filter by degree level to find a subject.
Computer Fundamentals and Architecture
Learn basic computer organisation, hardware components, and system architecture.
Programming Fundamentals
Build a strong foundation in programming logic, flowcharts, and problem-solving.
C Programming
Master C language syntax, pointers, arrays, structures, and memory concepts.
Python Programming
Learn Python syntax, data structures, and practical scripting applications.
Object-Oriented Programming (OOP)
Understand classes, objects, inheritance, encapsulation, and polymorphism.
Data Types, Variables and Operators
Explore primitive types, variables, operators, and expression evaluation.
Control Statements and Loops
Master decision-making and iterative constructs used in every program.
Functions and Recursion
Learn modular programming, parameter passing, and recursive problem solving.
Number Systems and Boolean Algebra
Convert between number systems and apply Boolean logic and simplification.
Digital Logic Design
Study logic gates, combinational circuits, flip-flops, and sequential design.
Data Structures
Implement and analyse arrays, linked lists, stacks, queues, trees, and graphs.
Algorithms and Problem Solving
Develop algorithmic thinking and analyse time and space complexity.
Design and Analysis of Algorithms
Study divide-and-conquer, greedy, dynamic programming, and graph algorithms.
Database Management Systems (DBMS)
Understand relational databases, ER modelling, and transaction management.
SQL and Database Design
Write SQL queries, design schemas, and apply normalisation techniques.
Operating Systems
Explore processes, threads, scheduling, memory, and file systems.
Computer Organization and Architecture
Study CPU design, instruction sets, pipelining, and memory hierarchy.
Computer Networks
Learn network layers, protocols, routing, switching, and the Internet model.
Object-Oriented Analysis and Design
Apply UML, use cases, and object-oriented design principles to systems.
Software Engineering
Understand the software development life cycle, requirements, and process models.
Theory of Computation
Study automata, formal languages, computability, and complexity theory.
Compiler Design
Learn the phases of a compiler: lexical analysis, parsing, and code generation.
Formal Languages and Automata Theory
Explore regular expressions, finite automata, and context-free grammars.
Web Development Fundamentals
Build modern web pages with HTML, CSS, and core JavaScript concepts.
Full-Stack Web Development
Develop complete web applications covering both front-end and back-end.
Java Programming
Master Java language features, collections, multithreading, and the JVM.
Computer Graphics
Study 2D/3D transformations, rendering pipelines, and graphics algorithms.
Distributed Systems
Understand concurrency, consistency models, consensus, and fault tolerance.
Information Security
Learn principles of confidentiality, integrity, authentication, and access control.
Linux and Unix Operating Systems
Work with Linux commands, shell scripting, and system administration basics.
Artificial Intelligence
Explore search algorithms, knowledge representation, and intelligent agents.
Machine Learning
Study supervised and unsupervised learning, model evaluation, and applications.
Data Science
Apply statistical methods, data cleaning, and visualization for insights.
Data Mining and Warehousing
Learn data warehouse design, ETL, association rules, and clustering.
Cloud Computing
Understand cloud models, virtualization, and major cloud platforms.
Internet of Things (IoT)
Explore sensors, embedded systems, communication protocols, and IoT architectures.
Mobile Application Development
Build mobile apps using native and cross-platform frameworks.
Cybersecurity and Ethical Hacking
Learn threat models, penetration testing, and defensive security practices.
Big Data Technologies
Work with Hadoop, Spark, MapReduce, and large-scale data processing tools.
Software Testing and Quality Assurance
Apply testing techniques, test automation, and quality assurance processes.
Advanced Data Structures and Algorithms
Study advanced structures, amortized analysis, and complex graph algorithms.
Advanced Database Systems
Explore query optimization, distributed databases, and modern storage engines.
Advanced Operating Systems
Dive into kernel design, virtualization, and advanced concurrency control.
Advanced Computer Networks
Study SDN, network function virtualization, and advanced protocol design.
Parallel and Distributed Computing
Design parallel programs and distributed algorithms for multi-core and cluster systems.
Advanced Software Architecture
Learn architectural styles, microservices, and large-scale system design patterns.
Cryptography and Network Security
Study modern cryptographic primitives and secure network protocol design.
Information Retrieval and Search Engines
Understand indexing, ranking models, and the architecture of search engines.
Natural Language Processing (NLP)
Process and analyse human language using statistical and neural techniques.
Deep Learning
Build and train deep neural networks including CNNs, RNNs, and transformers.
Computer Vision
Extract meaning from images and video using classical and deep learning methods.
Reinforcement Learning
Train agents that learn optimal behaviour through interaction and rewards.
Advanced Cloud and Edge Computing
Design scalable cloud-native and edge-deployed applications and services.
High-Performance Computing
Optimise scientific and engineering applications for parallel and GPU hardware.
Advanced Theory of Computation
Examine complexity classes, NP-completeness, and advanced computability results.
Research Methodology in Computer Science
Learn how to design experiments, review literature, and report research findings.
Advanced Topics in Blockchain
Explore consensus mechanisms, smart contracts, and blockchain system design.
Quantum Computing Fundamentals
Understand qubits, quantum gates, and basic quantum algorithms.
MLOps and AI Engineering
Build reliable pipelines for training, deploying, and monitoring ML models.
Research Project, Thesis and Dissertation
Plan, execute, and present a substantial independent research project.
Choose a level. Build your knowledge step by step.
This directory organises computer science from first-year fundamentals through master’s research topics. Each topic can have its own course overview, chapter pages, examples, and practice questions. Some course pages still need to be created.