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.
Programming topics and courses
Search the directory or filter by category to find a subject.
Introduction to Programming and Computer Languages
Get started with what programming is and how computer languages work.
History and Evolution of Programming Languages
Trace how programming languages developed from machine code to modern high-level languages.
Algorithms and Flowcharts
Learn to design step-by-step solutions and represent them with flowcharts.
Pseudocode and Problem Solving
Write clear pseudocode and develop structured problem-solving skills.
Variables, Constants and Data Types
Understand how data is stored, named, and typed in programs.
Operators and Expressions
Use arithmetic, logical, and relational operators to build expressions.
Conditional Statements
Control program flow with if, else, and switch-style decisions.
Loops and Iteration
Repeat actions efficiently using for, while, and related constructs.
Functions and Modular Programming
Break programs into reusable functions and organise code modularly.
Arrays and Strings
Store and process collections of values and text efficiently.
FORTRAN Programming
Explore the classic language still used for high-performance scientific computing.
COBOL Programming
Learn the business-oriented language that still powers many enterprise systems.
BASIC Programming
Study the beginner-friendly language that introduced millions to coding.
Pascal Programming
Understand structured programming concepts through the classic teaching language.
Assembly Language Programming
Work close to the hardware with registers, instructions, and machine code.
C Programming
Master the foundational systems language used for operating systems and embedded code.
C++ Programming
Combine high performance with object-oriented features and the Standard Library.
Java Programming
Build robust, portable applications with the widely used object-oriented language.
Visual Basic and Desktop Programming
Create desktop applications rapidly with event-driven Visual Basic style coding.
Perl Programming
Use the powerful scripting language famous for text processing and system tasks.
Object-Oriented Programming (OOP)
Master the core paradigm of classes, objects, and message passing.
Classes, Objects and Constructors
Define blueprints, create instances, and initialise objects correctly.
Inheritance, Polymorphism and Encapsulation
Apply the three pillars of OOP to write flexible and maintainable code.
Pointers and Memory Management
Control memory directly and understand allocation, ownership, and lifetime.
Recursion and Backtracking
Solve problems by calling functions that call themselves and explore solution spaces.
Data Structures for Programmers
Choose and implement the right structures for efficient algorithms.
Algorithm Design and Complexity
Analyse time and space complexity and design efficient algorithms.
File Handling and Input/Output
Read from and write to files and handle streams safely.
Exception and Error Handling
Write robust programs that recover gracefully from runtime errors.
Debugging and Testing Fundamentals
Find and fix bugs systematically and write basic automated tests.
Python Programming
Write clear, productive code for scripting, data work, and applications.
JavaScript Programming
Power interactive web pages and modern front-end and back-end applications.
TypeScript Programming
Add static typing to JavaScript for safer and more maintainable large codebases.
C# Programming
Build robust applications on the .NET platform with a modern object-oriented language.
Go (Golang) Programming
Write simple, concurrent, and efficient systems and network services.
Rust Programming
Achieve memory safety and high performance without a garbage collector.
Kotlin Programming
Use a modern, concise language for Android and multi-platform development.
Swift Programming
Build iOS, macOS, and Apple platform applications with a safe modern language.
PHP Programming
Create dynamic server-side web applications and APIs with PHP.
Ruby Programming
Write elegant, expressive code and explore the Ruby ecosystem.
HTML and CSS for Developers
Structure pages and style them with modern, responsive CSS techniques.
Frontend Programming
Build interactive user interfaces that run in the browser.
Backend Programming
Create server-side logic, APIs, and services that power applications.
Full-Stack Development
Connect front-end and back-end to deliver complete working applications.
Node.js Programming
Run JavaScript on the server and build scalable network applications.
React Programming
Build component-based user interfaces with the popular React library.
Angular and Vue.js
Explore two major frameworks for building structured single-page applications.
REST APIs and GraphQL
Design and consume modern APIs for data exchange between services.
Database Programming and SQL
Query and manipulate data using SQL and database access libraries.
Mobile App Programming
Develop applications for mobile devices using native and cross-platform tools.
Functional Programming
Write pure, composable code with immutable data and higher-order functions.
Logic and Declarative Programming
Express what should be computed rather than how, using logic paradigms.
Concurrent and Parallel Programming
Write programs that safely use multiple cores and concurrent tasks.
Multithreaded Programming
Manage threads, synchronisation, and shared state correctly.
Network and Socket Programming
Build networked applications using sockets and network protocols.
Systems Programming
Write code that interacts closely with the operating system and hardware.
Compiler Construction
Understand how source code is translated into executable programs.
Programming Language Design
Explore the principles behind designing new languages and features.
Design Patterns and Clean Code
Apply proven patterns and write readable, maintainable software.
Software Architecture and Refactoring
Structure large systems and improve existing code safely over time.
Asynchronous Programming and Event Loops
Handle non-blocking I/O and concurrent tasks with async patterns.
Cloud-Native Programming
Design applications that take full advantage of cloud platforms.
Serverless Application Development
Build and deploy functions that scale automatically without managing servers.
Microservices Programming
Design and implement loosely coupled services that work together.
Containerized Application Development with Docker
Package applications and their dependencies into portable containers.
Kubernetes and Application Orchestration
Deploy, scale, and manage containerised applications in production.
CI/CD and DevOps Automation
Automate build, test, and deployment pipelines for reliable releases.
Secure Coding and Application Security
Write code that resists common attacks and follows security best practices.
Test Automation and Continuous Testing
Build automated test suites that run as part of every change.
Git, GitHub and Collaborative Development
Use version control and collaboration workflows effectively on teams.
AI-Assisted Programming and Coding Agents
Leverage AI tools and agents to write, review, and improve code faster.
Prompt Engineering for Code Generation
Craft effective prompts that produce high-quality, useful code from AI models.
Machine Learning Programming
Implement and train machine learning models using modern libraries.
Deep Learning with Python
Build and train deep neural networks using popular Python frameworks.
Data Science and Scientific Programming
Analyse data and perform scientific computing with specialised libraries.
GPU Programming and CUDA
Accelerate computations by programming modern graphics processors.
Blockchain and Smart Contract Programming
Write and deploy smart contracts on blockchain platforms.
Quantum Programming Fundamentals
Get started with quantum circuits, qubits, and quantum algorithms.
Domain-Specific Languages and Metaprogramming
Create specialised languages and code that generates or transforms code.
Advanced Programming Research and Capstone Projects
Plan and complete a substantial research or practical programming project.
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.