Programming learning hub

Explore programming, one topic at a time.

Discover programming from first-year fundamentals and classic languages to modern languages, web and app development, advanced practices, AI coding, and emerging technologies. Choose a topic to explore its course outline and lessons as they become available.

Browse all topics ↓Text-first learning · Clear skill levels · Learn at your own pace
80 topics to exploreFundamentals to AI coverageBeginner to research path
Course directory

Programming topics and courses

Search the directory or filter by category to find a subject.

⌨Fundamentals

Introduction to Programming and Computer Languages

Get started with what programming is and how computer languages work.

Explore topic↗
📜Fundamentals

History and Evolution of Programming Languages

Trace how programming languages developed from machine code to modern high-level languages.

Explore topic↗
🗺Fundamentals

Algorithms and Flowcharts

Learn to design step-by-step solutions and represent them with flowcharts.

Explore topic↗
📝Fundamentals

Pseudocode and Problem Solving

Write clear pseudocode and develop structured problem-solving skills.

Explore topic↗
𝑥Fundamentals

Variables, Constants and Data Types

Understand how data is stored, named, and typed in programs.

Explore topic↗
+Fundamentals

Operators and Expressions

Use arithmetic, logical, and relational operators to build expressions.

Explore topic↗
⎇Fundamentals

Conditional Statements

Control program flow with if, else, and switch-style decisions.

Explore topic↗
↻Fundamentals

Loops and Iteration

Repeat actions efficiently using for, while, and related constructs.

Explore topic↗
ƒFundamentals

Functions and Modular Programming

Break programs into reusable functions and organise code modularly.

Explore topic↗
[]Fundamentals

Arrays and Strings

Store and process collections of values and text efficiently.

Explore topic↗
FTraditional

FORTRAN Programming

Explore the classic language still used for high-performance scientific computing.

Explore topic↗
COBTraditional

COBOL Programming

Learn the business-oriented language that still powers many enterprise systems.

Explore topic↗
BTraditional

BASIC Programming

Study the beginner-friendly language that introduced millions to coding.

Explore topic↗
PTraditional

Pascal Programming

Understand structured programming concepts through the classic teaching language.

Explore topic↗
ASMTraditional

Assembly Language Programming

Work close to the hardware with registers, instructions, and machine code.

Explore topic↗
CTraditional

C Programming

Master the foundational systems language used for operating systems and embedded code.

Explore topic↗
C++Traditional

C++ Programming

Combine high performance with object-oriented features and the Standard Library.

Explore topic↗
☕Traditional

Java Programming

Build robust, portable applications with the widely used object-oriented language.

Explore topic↗
VBTraditional

Visual Basic and Desktop Programming

Create desktop applications rapidly with event-driven Visual Basic style coding.

Explore topic↗
🐪Traditional

Perl Programming

Use the powerful scripting language famous for text processing and system tasks.

Explore topic↗
◎Core

Object-Oriented Programming (OOP)

Master the core paradigm of classes, objects, and message passing.

Explore topic↗
◇Core

Classes, Objects and Constructors

Define blueprints, create instances, and initialise objects correctly.

Explore topic↗
⤷Core

Inheritance, Polymorphism and Encapsulation

Apply the three pillars of OOP to write flexible and maintainable code.

Explore topic↗
→Core

Pointers and Memory Management

Control memory directly and understand allocation, ownership, and lifetime.

Explore topic↗
↺Core

Recursion and Backtracking

Solve problems by calling functions that call themselves and explore solution spaces.

Explore topic↗
▤Core

Data Structures for Programmers

Choose and implement the right structures for efficient algorithms.

Explore topic↗
⌁Core

Algorithm Design and Complexity

Analyse time and space complexity and design efficient algorithms.

Explore topic↗
📄Core

File Handling and Input/Output

Read from and write to files and handle streams safely.

Explore topic↗
⚠Core

Exception and Error Handling

Write robust programs that recover gracefully from runtime errors.

Explore topic↗
🐛Core

Debugging and Testing Fundamentals

Find and fix bugs systematically and write basic automated tests.

Explore topic↗
🐍Modern

Python Programming

Write clear, productive code for scripting, data work, and applications.

Explore topic↗
JSModern

JavaScript Programming

Power interactive web pages and modern front-end and back-end applications.

Explore topic↗
TSModern

TypeScript Programming

Add static typing to JavaScript for safer and more maintainable large codebases.

Explore topic↗
C#Modern

C# Programming

Build robust applications on the .NET platform with a modern object-oriented language.

Explore topic↗
GoModern

Go (Golang) Programming

Write simple, concurrent, and efficient systems and network services.

Explore topic↗
🦀Modern

Rust Programming

Achieve memory safety and high performance without a garbage collector.

Explore topic↗
KModern

Kotlin Programming

Use a modern, concise language for Android and multi-platform development.

Explore topic↗
🍎Modern

Swift Programming

Build iOS, macOS, and Apple platform applications with a safe modern language.

Explore topic↗
PHPModern

PHP Programming

Create dynamic server-side web applications and APIs with PHP.

Explore topic↗
💎Modern

Ruby Programming

Write elegant, expressive code and explore the Ruby ecosystem.

Explore topic↗
🌐Web

HTML and CSS for Developers

Structure pages and style them with modern, responsive CSS techniques.

Explore topic↗
🖥Web

Frontend Programming

Build interactive user interfaces that run in the browser.

Explore topic↗
⚙Web

Backend Programming

Create server-side logic, APIs, and services that power applications.

Explore topic↗
⊞Web

Full-Stack Development

Connect front-end and back-end to deliver complete working applications.

Explore topic↗
⬢Web

Node.js Programming

Run JavaScript on the server and build scalable network applications.

Explore topic↗
⚛Web

React Programming

Build component-based user interfaces with the popular React library.

Explore topic↗
◇Web

Angular and Vue.js

Explore two major frameworks for building structured single-page applications.

Explore topic↗
⇄Web

REST APIs and GraphQL

Design and consume modern APIs for data exchange between services.

Explore topic↗
🗄Web

Database Programming and SQL

Query and manipulate data using SQL and database access libraries.

Explore topic↗
📱Web

Mobile App Programming

Develop applications for mobile devices using native and cross-platform tools.

Explore topic↗
λAdvanced

Functional Programming

Write pure, composable code with immutable data and higher-order functions.

Explore topic↗
⊢Advanced

Logic and Declarative Programming

Express what should be computed rather than how, using logic paradigms.

Explore topic↗
⚡Advanced

Concurrent and Parallel Programming

Write programs that safely use multiple cores and concurrent tasks.

Explore topic↗
🧵Advanced

Multithreaded Programming

Manage threads, synchronisation, and shared state correctly.

Explore topic↗
🔌Advanced

Network and Socket Programming

Build networked applications using sockets and network protocols.

Explore topic↗
🖥Advanced

Systems Programming

Write code that interacts closely with the operating system and hardware.

Explore topic↗
⚙Advanced

Compiler Construction

Understand how source code is translated into executable programs.

Explore topic↗
🔤Advanced

Programming Language Design

Explore the principles behind designing new languages and features.

Explore topic↗
🏛Advanced

Design Patterns and Clean Code

Apply proven patterns and write readable, maintainable software.

Explore topic↗
🏗Advanced

Software Architecture and Refactoring

Structure large systems and improve existing code safely over time.

Explore topic↗
⏱Practices

Asynchronous Programming and Event Loops

Handle non-blocking I/O and concurrent tasks with async patterns.

Explore topic↗
☁Practices

Cloud-Native Programming

Design applications that take full advantage of cloud platforms.

Explore topic↗
λPractices

Serverless Application Development

Build and deploy functions that scale automatically without managing servers.

Explore topic↗
⬡Practices

Microservices Programming

Design and implement loosely coupled services that work together.

Explore topic↗
🐳Practices

Containerized Application Development with Docker

Package applications and their dependencies into portable containers.

Explore topic↗
☸Practices

Kubernetes and Application Orchestration

Deploy, scale, and manage containerised applications in production.

Explore topic↗
🔄Practices

CI/CD and DevOps Automation

Automate build, test, and deployment pipelines for reliable releases.

Explore topic↗
🔒Practices

Secure Coding and Application Security

Write code that resists common attacks and follows security best practices.

Explore topic↗
✓Practices

Test Automation and Continuous Testing

Build automated test suites that run as part of every change.

Explore topic↗
⎇Practices

Git, GitHub and Collaborative Development

Use version control and collaboration workflows effectively on teams.

Explore topic↗
🤖AI & Emerging

AI-Assisted Programming and Coding Agents

Leverage AI tools and agents to write, review, and improve code faster.

Explore topic↗
💬AI & Emerging

Prompt Engineering for Code Generation

Craft effective prompts that produce high-quality, useful code from AI models.

Explore topic↗
📈AI & Emerging

Machine Learning Programming

Implement and train machine learning models using modern libraries.

Explore topic↗
🧠AI & Emerging

Deep Learning with Python

Build and train deep neural networks using popular Python frameworks.

Explore topic↗
📊AI & Emerging

Data Science and Scientific Programming

Analyse data and perform scientific computing with specialised libraries.

Explore topic↗
🚀AI & Emerging

GPU Programming and CUDA

Accelerate computations by programming modern graphics processors.

Explore topic↗
⛓AI & Emerging

Blockchain and Smart Contract Programming

Write and deploy smart contracts on blockchain platforms.

Explore topic↗
⚛AI & Emerging

Quantum Programming Fundamentals

Get started with quantum circuits, qubits, and quantum algorithms.

Explore topic↗
🔤AI & Emerging

Domain-Specific Languages and Metaprogramming

Create specialised languages and code that generates or transforms code.

Explore topic↗
📝AI & Emerging

Advanced Programming Research and Capstone Projects

Plan and complete a substantial research or practical programming project.

Explore topic↗
No topics match your search. Try another word or choose “All topics”.
Your learning path

Choose a category. Build your programming skills step by step.

This directory organises programming from first-year fundamentals through modern languages, web development, advanced practices, and AI & emerging technologies. Each topic can have its own course overview, chapter pages, examples, and practice questions. Some course pages still need to be created.

01 · Choose a topicPick the programming area that matches your level and goal.
02 · Follow chaptersStudy lessons in a logical order.
03 · Practise examplesWrite and run real code for every concept.
04 · Review progressRevisit important ideas and build projects.