ProgrammingUpper Secondary · University · General PublicIntermediate C++ Course Uganda – OOP, STL and Algorithms
Computer Programming
Upper Secondary · University · General Public

Intermediate C++ Course Uganda – OOP, STL and Algorithms

Intermediate C++ Course Uganda – OOP, STL and Algorithms

Duration

4 weeks

Investment

UGX 450,000

Teaching

Live online

Program Introduction

Move beyond basic syntax with an intermediate C++ course built for developers and computing students in Uganda, with practical relevance across East Africa and Africa. In 4 weeks, you will learn how to design maintainable classes, manage object lifetime safely, use RAII and smart pointers, choose efficient STL containers, and process data with algorithms, lambdas and C++20 ranges. You will also create reusable templates, handle failures deliberately, test code automatically and build multi-file projects with CMake. Practical exercises use offline datasets and familiar regional scenarios, including SACCO operations, produce markets, schools and mobile-money transaction records. The course stays focused on modern C++ programming—no web development—and ends with a tested portfolio project that demonstrates stronger software design, correctness and performance reasoning.

Key Features & Benefits

• Focused 8-week progression from basic C++ to maintainable software • Modern C++20 OOP, STL, algorithms, ranges and templates • RAII, smart pointers and sanitizers for safer memory management • Practical complexity analysis for choosing efficient data structures • Automated unit testing and portable CMake builds • Uganda and East Africa data scenarios with offline-friendly projects • Portfolio capstone with source code, tests and project documentation • No web frameworks or unrelated technology detours

Real-World Applications

Learners can use the skills from this course to:

• Build reliable desktop, command-line and offline data-processing software. • Write maintainable C++ components for fintech, telecom, education, agriculture and logistics teams. • Prepare for C++ internships, junior developer roles and technical interviews in Uganda and East Africa. • Progress into embedded systems, robotics, simulation, game engines or systems programming. • Improve performance in data-heavy programs by selecting better containers and algorithms. • Contribute more confidently to existing C++ codebases and open-source projects. • Build reusable software libraries for African business and engineering problems.

Course outline and learning expectations

This is a tutor-led course. The outline shows what your tutor will cover; teaching materials and examinations are provided directly to enrolled students.

intermediate C++ Uganda``C++ programming course``object-oriented programming``C++ STL``C++ algorithms``C++20 ranges``smart pointers``RAII``CMake``C++ unit testing``East Africa software training``Ellipkom
Teaching format

Live online

Teaching language

English (Uganda)

Course difficulty

Intermediate

Intended learners

Upper Secondary · University · General Public

What you will learn

  • By the end of this intermediate C++ programming course, the learner will be able to:
  • Design cohesive classes with clear responsibilities and safe interfaces.
  • Apply composition, inheritance and runtime polymorphism only where each is appropriate.
  • Explain object lifetime, ownership, stack storage and dynamic storage.
  • Use RAII and smart pointers to manage resources safely.
  • Select suitable standard containers based on access patterns and complexity.
  • Transform, search, sort and aggregate data with STL algorithms, iterators and lambdas.
  • Write reusable function and class templates with introductory C++20 constraints.
  • Represent failures with exceptions, `std::optional` or explicit results as appropriate.
  • Organise, build and test a multi-file C++ project with CMake and automated unit tests.
  • Evaluate basic time and space complexity and improve an inefficient solution.

Modules

  1. 1

    Stronger Types, Interfaces and Class Design

    Review of value types, references, `const` and object lifetimeEncapsulation, invariants and valid object stateConstructors, delegating constructors and member initialiser lists`explicit`, `default`, `delete`, `override` and `final`Separating interfaces from implementation**Practice:** Safer account, customer and transaction types
  2. 2

    Composition, Inheritance and Polymorphism

    Composition as the default reuse techniqueWhen public inheritance models a true “is-a” relationshipVirtual functions, abstract interfaces and dynamic dispatchVirtual destructors and object slicingDependency inversion with small interfaces**Practice:** Pluggable transaction-fee or notification policies without web services
  3. 3

    Ownership, RAII and Smart Pointers

    Automatic, static and dynamic storage durationDeterministic destruction and RAIIRule of zero and why raw `new`/`delete` are avoided in application code`std::unique_ptr`, `std::shared_ptr` and `std::weak_ptr`Non-owning pointers and referencesFinding memory errors with sanitizers**Practice:** Resource-safe member and asset registry
  4. 4

    STL Containers and Complexity

    Choosing among `vector`, `deque`, `list`, `set`, `map` and unordered containersIterators and iterator invalidationKeys, values, hashing and custom comparisonBig-O reasoning for common container operationsMeasuring before changing a data structure**Practice:** Efficient lookup for school, clinic or cooperative records
  5. 5

    Algorithms, Lambdas and Ranges

    Prefer standard algorithms to hand-written loops when intent becomes clearer`find_if`, `count_if`, `sort`, `transform`, `accumulate` and partitioningLambda captures and callable objectsC++20 ranges and views at a practical levelComposing readable data-processing pipelines**Practice:** Analyse offline mobile-money or market-transaction records
  6. 6

    Generic Programming

    Function templates and class templatesType deduction and `auto`Template specialisation only where justifiedIntroductory C++20 concepts and constraintsGeneric code that remains readable and testable**Practice:** Reusable statistics, validation and repository components
  7. 7

    Reliable Programs, Builds and Tests

    Choosing exceptions, `std::optional` or explicit status resultsException safety and RAIIProject structure with headers, source files and namespacesCMake targets and buildsUnit tests, fixtures, boundary cases and regression testsStatic analysis and warning-clean builds**Practice:** Convert an earlier program into a tested, multi-file project
  8. 8

    Capstone: Tested Regional Data Processor

    Build one project: SACCO ledger, produce-market analyser or offline transaction processorModel the domain with safe classes and clear interfacesUse appropriate containers, algorithms and at least one reusable templatePersist and reload local dataAdd automated tests and run sanitizersDocument performance choices and demonstrate the final solution

Before you enroll

  • Completion of Ellipkom’s beginner C++ course or equivalent practical knowledge.
  • Ability to write and compile C++ programs using variables, conditions, loops and functions.
  • Working knowledge of `std::string`, `std::vector`, simple classes and text-file input/output.
  • Ability to diagnose basic compiler errors and use a debugger.
  • A laptop or desktop computer and 8–10 study hours per week for 8 weeks.

What you need

  • Laptop or desktop computer with at least 4 GB RAM and 5 GB free storage.
  • A C++20-capable GCC, Clang or Microsoft Visual C++ compiler.
  • Visual Studio Code, Visual Studio Community, CLion or another C++ IDE.
  • CMake for portable project builds.
  • Git for version control.
  • A lightweight C++ test framework such as Catch2 or GoogleTest.
  • Compiler sanitizers where supported: AddressSanitizer and UndefinedBehaviorSanitizer.
  • No web framework, browser programming stack or database server is required.

Frequently asked questions

More in Computer Programming

Introduction to Object-Oriented Programming Concepts
Lower Secondary

Introduction to Object-Oriented Programming Concepts

4 weeksUGX 450,000
Advanced Rust Systems Programming Course in Uganda & Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Rust Systems Programming Course in Uganda & Africa

4 weeksUGX 450,000
Intermediate Dart Programming in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Intermediate Dart Programming in Uganda & East Africa

4 weeksUGX 450,000
Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency
Lower Secondary · Upper Secondary · University · General Public

Intermediate Rust Programming Course in East Africa: Traits, Lifetimes & Concurrency

4 weeksUGX 450,000
Advanced PHP Programming – Professional Course in Uganda
Upper Secondary · University · General Public

Advanced PHP Programming – Professional Course in Uganda

4 weeksUGX 500,000
Data Structures and Algorithms with Python for Beginners in Uganda
Lower Secondary · Upper Secondary · University · General Public

Data Structures and Algorithms with Python for Beginners in Uganda

4 weeksUGX 450,000

More for Upper Secondary · University · General Public

 Dart Programming for Beginners in Uganda & East Africa
Lower Secondary · Upper Secondary · University · General Public

Dart Programming for Beginners in Uganda & East Africa

4 weeksUGX 450,000
Advanced C Systems Programming Course – Africa
Upper Secondary · University · General Public

Advanced C Systems Programming Course – Africa

4 weeksUGX 500,000
Advanced C# Programming in Uganda: Async, Generics & Performance
Upper Secondary · University · General Public

Advanced C# Programming in Uganda: Async, Generics & Performance

4 weeksUGX 500,000
Advanced C++ Course Uganda – Performance and Concurrency
Upper Secondary · University · General Public

Advanced C++ Course Uganda – Performance and Concurrency

4 weeksUGX 500,000
Advanced Computer Vision & Image Recognition
Upper Secondary · University · General Public

Advanced Computer Vision & Image Recognition

6 weeksUGX 650,000
Advanced Dart Programming & Concurrency for Africa
Lower Secondary · Upper Secondary · University · General Public

Advanced Dart Programming & Concurrency for Africa

4 weeksUGX 500,000

Quick Actions

Enroll Now

Need Help?

Have questions about this program? Our team is here to help!