
Computer Programming Course
Learn to write real software from the ground up, starting with core programming concepts and advancing to object-oriented design, algorithms, and professional workflows. This course covers everything a beginner needs to build functional, well-structured programmes and everything an intermediate developer needs to level up. By the end, you will have the skills, the portfolio, and the confidence to pursue a career in software development.
What you will learn:
You will start by understanding how computers execute code, then move through variables, control flow, and functions before tackling data structures and object-oriented programming. You will learn to handle files, parse JSON and CSV data, and consume REST APIs. The course covers fundamental algorithms, Big-O complexity analysis, and both elementary and efficient sorting methods. You will also apply professional practices including unit testing, Git version control, debugging, and code refactoring. Supplementary modules introduce SQL databases, data visualisation, security fundamentals, and career development strategies. Every concept builds directly on the last, giving you a complete and practical foundation in computer programming.
How you study in practice Computer Programming Course
How you practise Computer Programming Course
For companies looking to train their teams
With Dedika for businesses, the course includes exercises and examples tailored to your company and its specific needs.
Course content
8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsFoundations of Programming and Computation
Foundations of Programming and Computation
Lesson 1 • Input, Output, and Basic Formatting
Teaches reading user input and printing formatted output. Connects abstract data concepts to visible, interactive program behaviour.
Lesson 2 • Setting Up a Development Environment
Installs and configures a code editor, runtime, and terminal. Ensures every learner can write, run, and debug code from day one.
Lesson 3 • Operators and Expressions
Covers arithmetic, relational, logical, and assignment operators. Learners can construct and evaluate compound expressions correctly.
Lesson 4 • Variables, Data Types, and Literals
Introduces named storage, primitive types, and literal syntax. Establishes the vocabulary used throughout every subsequent chapter.
Lesson 5 • How Computers Execute Programs
Covers CPU cycles, memory hierarchy, and the fetch-decode-execute model. Grounds all later coding concepts in physical machine behaviour.
Chapter 2HideHide detailsSee detailsControl Flow and Decision Making
Control Flow and Decision Making
Lesson 1 • Comparison and Logical Conditions
Deepens understanding of compound Boolean expressions and short-circuit evaluation. Prevents common logic errors in branching code.
Lesson 2 • Loop Control and Iteration Patterns
Teaches break, continue, and common loop idioms such as accumulator and sentinel patterns. Refines loop design for clarity and correctness.
Lesson 3 • Condition-Controlled Loops
Covers while and do-while loops for repetition driven by a condition. Learners handle input validation and event-driven repetition.
Lesson 4 • Count-Controlled Loops
Introduces for loops and range-based iteration for a known number of repetitions. Builds the foundation for all iterative algorithms.
Lesson 5 • Conditional Statements
Covers if, else-if, and else blocks with Boolean conditions. Enables programs to choose different execution paths based on data.
Chapter 3HideHide detailsSee detailsFunctions and Modular Code Design
Functions and Modular Code Design
Lesson 1 • Defining and Calling Functions
Covers function declaration, parameter lists, and return values. Establishes the basic unit of code reuse used in every later chapter.
Lesson 2 • Default, Keyword, and Variable Arguments
Introduces flexible parameter signatures including defaults and variadic arguments. Enables functions that adapt to different calling contexts.
Lesson 3 • Scope and Variable Lifetime
Explains local, enclosing, and global scope rules and variable shadowing. Prevents subtle bugs caused by unintended variable sharing.
Lesson 4 • Higher-Order Functions and Lambdas
Covers passing functions as arguments, returning functions, and anonymous lambda syntax. Prepares learners for functional programming patterns.
Lesson 5 • Recursion and the Call Stack
Teaches recursive problem decomposition and base-case design. Learners solve problems like factorial and tree traversal using recursion.
Chapter 4HideHide detailsSee detailsData Structures: Collections and Sequences
Data Structures: Collections and Sequences
Lesson 1 • Sets and Tuples
Covers unordered unique collections and immutable sequences. Learners apply set operations and use tuples for fixed-structure data.
Lesson 2 • Strings as Sequences
Treats strings as indexed character sequences and covers common string operations. Bridges primitive types and collection behaviour.
Lesson 3 • Arrays and Lists
Covers indexed sequential storage, element access, and mutation. Provides the most fundamental collection type for ordered data.
Lesson 4 • Choosing and Combining Data Structures
Analyses time and space trade-offs across collection types. Learners design composite structures for realistic data modelling tasks.
Lesson 5 • Dictionaries and Hash Maps
Introduces key-value storage, hashing, and lookup efficiency. Learners model real-world entities and build frequency tables.
Chapter 5HideHide detailsSee detailsObject-Oriented Programming Principles
Object-Oriented Programming Principles
Lesson 1 • Inheritance and Method Overriding
Teaches subclass creation, parent-class reuse, and method overriding. Enables hierarchical modelling and code reuse across related types.
Lesson 2 • Composition and Design Principles
Introduces composition over inheritance, single responsibility, and open-closed principles. Learners refactor class designs for flexibility.
Lesson 3 • Methods and Encapsulation
Covers instance methods, access modifiers, and data hiding. Learners protect internal state and expose clean public interfaces.
Lesson 4 • Polymorphism and Interfaces
Covers duck typing, abstract classes, and interface contracts. Learners write code that operates on multiple types through a common interface.
Lesson 5 • Classes, Objects, and Attributes
Defines classes as blueprints and objects as instances with state. Introduces the core OOP abstraction used throughout software development.
Chapter 6HideHide detailsSee detailsFile I/O, Error Handling, and Exceptions
File I/O, Error Handling, and Exceptions
Lesson 1 • Reading and Writing Text Files
Covers opening, reading, writing, and closing files with context managers. Connects in-memory data to persistent storage on disk.
Lesson 2 • Exception Types and the Error Hierarchy
Maps common exception categories and their inheritance hierarchy. Learners identify the right exception type for each failure scenario.
Lesson 3 • Try, Except, and Finally Blocks
Covers structured exception handling, multiple except clauses, and cleanup code. Learners prevent crashes and release resources reliably.
Lesson 4 • Custom Exceptions and Defensive Programming
Teaches defining custom exception classes and validating inputs proactively. Learners design APIs that communicate errors clearly.
Lesson 5 • Structured Data Formats
Teaches parsing and serialising CSV and JSON data. Prepares learners to exchange data with external systems and APIs.
Chapter 7HideHide detailsSee detailsAlgorithms, Searching, and Sorting
Algorithms, Searching, and Sorting
Lesson 1 • Algorithm Analysis and Big-O Notation
Introduces time and space complexity and Big-O classification. Gives learners a framework for comparing algorithm efficiency objectively.
Lesson 2 • Linear and Binary Search
Implements and compares sequential and binary search algorithms. Learners understand the preconditions and performance of each approach.
Lesson 3 • Recursion-Based Problem Solving
Applies recursive thinking to classic problems like binary search trees and permutations. Reinforces recursion from chapter three in algorithmic contexts.
Lesson 4 • Efficient Sorting Algorithms
Implements merge sort and quicksort using divide-and-conquer. Learners analyse O(n log n) performance and partition strategies.
Lesson 5 • Elementary Sorting Algorithms
Covers bubble, selection, and insertion sort with step-by-step traces. Builds intuition for sorting mechanics before advanced algorithms.
Chapter 8HideHide detailsSee detailsSoftware Engineering Practices and Project Workflow
Software Engineering Practices and Project Workflow
Lesson 1 • Code Quality and Refactoring
Covers naming conventions, code smells, and systematic refactoring techniques. Learners improve existing code without changing its external behaviour.
Lesson 2 • Version Control with Git
Covers repository initialisation, commits, branching, and merging. Enables collaborative and solo development with a full change history.
Lesson 3 • Unit Testing and Test-Driven Development
Teaches writing unit tests, assertions, and the red-green-refactor cycle. Learners verify correctness and prevent regressions automatically.
Lesson 4 • Documentation and Code Readability
Teaches inline comments, docstrings, and README authoring. Learners produce code that teammates can understand and maintain.
Lesson 5 • Capstone Project Planning and Delivery
Guides learners through requirements gathering, iterative development, and final delivery. Integrates all prior skills into a complete software artifact.
Your valid completion certificate
This course is for you:
Career changer: wants a structured path into software development from a non-tech field.
Recent graduate: seeks practical coding skills that academic coursework did not fully provide.
Entrepreneur: needs to prototype ideas and communicate effectively with a development team.
Data professional: aims to automate workflows and move beyond spreadsheet-based analysis tools.
Hobbyist: has experimented with tutorials but wants to build complete, functional applications.
IT professional: looks to expand from infrastructure support into software development responsibilities.
What our students say
Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.

Top qualifications
FAQ
Who is Dedika?
Is the certificate valid in South Africa?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course




















