Intermediate C Programming Course – East Africa

Duration
4 weeks
Investment
UGX 450,000
Teaching
Live online
Program Introduction
Move beyond C syntax and learn to build reliable, modular programs in this intermediate C programming course for Uganda, East Africa and Africa. In four focused weeks, you will strengthen pointer skills, manage dynamic memory, organise multi-file projects, process real data and use professional debugging and testing tools. The course is built for learners who can already write basic C and now need dependable software-development habits.
Key Features & Benefits
• High-value focus on pointers, dynamic memory and modular C design. • Practical training with GCC or Clang, Make, Git, debuggers and memory diagnostics. • Secure coding habits for input, bounds, allocation and cleanup. • Regionally relevant data-processing projects without limiting globally transferable skills. • Weekly defect-repair labs that teach learners how to diagnose crashes and memory errors. • Portfolio-ready capstone with tests, documentation and a repeatable build. • Eight-week progression with a clear competency check before advanced C.
Real-World Applications
Learners can use this course to:
• Build reliable command-line applications and reusable C modules. • Process school, clinic, logistics, agriculture, finance or retail data stored in files. • Strengthen C skills required in computer science and software-engineering programmes. • Prepare for embedded software, device programming and systems-development pathways. • Debug and maintain existing C codebases. • Progress to advanced C library, performance and secure-coding work.
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.
Live online
English (Uganda)
Intermediate
Lower Secondary · Upper Secondary · University · General Public
What you will learn
- By the end of the course, the learner will be able to:
- Trace stack and heap memory and explain object lifetime and ownership.
- Allocate, resize and release dynamic memory without leaks or invalid access.
- Model program data with structures, enumerations, unions and bit flags where appropriate.
- Design multi-file C programs with clean headers, internal helpers and public interfaces.
- Explain preprocessing, compilation, linking and common build failures.
- Process command-line arguments and robustly read text and binary files.
- Implement and evaluate dynamic arrays, linked lists and callback-based operations.
- Test and debug C code with assertions, sanitizers, GDB or LLDB, and Valgrind where supported.
- Build a modular, memory-safe data-processing application in C.
Modules
- 1
Pointer fluency and the C memory model
Pointer arithmetic and array traversal.Pointers to pointers.Stack, static storage and heap.Object lifetime, scope and ownership conventions.Practice: trace and repair pointer defects. - 2
Dynamic memory management
`malloc`, `calloc`, `realloc` and `free`.Allocation checks and cleanup paths.Dynamically sized strings and arrays.Preventing leaks, double frees and use-after-free defects.Practice: resizable collection of records. - 3
Rich data modelling
Nested structures and arrays of structures.`enum`, `union`, `typedef` and bit flags.Choosing representations for clarity, size and correctness.Practice: transaction, inventory or sensor-reading model. - 4
Modular C program design
Headers, include guards and source files.Public interfaces and private implementation details.`static`, `extern`, declarations and definitions.Naming, contracts and defensive function design.Practice: convert a single-file program into modules. - 5
From source files to a program
Preprocessor, compiler, assembler and linker roles.Object files, libraries and common linker errors.Compiler warning levels.Repeatable builds with Make.Practice: build a small reusable library and application. - 6
Robust files and command-line programs
`argc`, `argv` and option validation.Text versus binary I/O.Structured parsing and malformed-data handling.File positions, status checks and useful error messages.Practice: import, validate and summarise a data file. - 7
Data structures, tests and memory diagnostics
Dynamic arrays and singly linked lists.Function pointers and callback-based operations.Assertions and table-driven tests.Debugging with GDB or LLDB.Detecting defects with sanitizers and Valgrind. - 8
Capstone project
Build a modular data-processing application with persistent storage.Suggested contexts: stock movement, clinic queue data, crop purchases or school records.Required evidence: multi-file source, Makefile, tests, memory-check report and README.Final code review and readiness check for the advanced course.
Before you enroll
- Completion of the Ellipkom beginner C course or equivalent ability.
- Ability to write C programs using functions, loops, arrays, strings, pointers, structures and text files.
- Ability to compile programs and correct basic compiler errors.
- Laptop with a working GCC or Clang toolchain.
- Commitment to at least 7 study hours per week for eight weeks.
- Entry check: complete a small multi-function C program before enrolment.
What you need
- Windows with WSL, Linux or macOS laptop.
- GCC or Clang with warnings and sanitizer support.
- Visual Studio Code or another code editor.
- Terminal and Make.
- GDB or LLDB.
- AddressSanitizer and UndefinedBehaviorSanitizer.
- Valgrind on a supported Linux environment.
- Git for version control.
Frequently asked questions
More in Computer Programming

Introduction to Object-Oriented Programming Concepts

Advanced Rust Systems Programming Course in Uganda & Africa

Intermediate Dart Programming in Uganda & East Africa

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

Advanced PHP Programming – Professional Course in Uganda

Data Structures and Algorithms with Python for Beginners in Uganda
More for Lower Secondary · Upper Secondary · University · General Public

Dart Programming for Beginners in Uganda & East Africa

Advanced Dart Programming & Concurrency for Africa

Advanced iOS Engineering: Secure, Offline-First Apps for Africa

Advanced NumPy for High-Performance Data Science in Africa

Advanced Pandas Course for Scalable Data Pipelines in Africa

Advanced Python Programming Course in Africa
Quick Actions
Need Help?
Have questions about this program? Our team is here to help!