Choose your language
C/C++ Course
+400,000 professionals on the platform
Exclusive for businesses

C/C++ Course

Master C and C++ from the ground up, covering everything from raw memory and pointers to modern C++20 features, design patterns, and concurrent systems. This course gives you the technical depth that professional developers and systems engineers actually use on the job. Whether you're targeting embedded firmware, high-performance applications, or technical interviews, you'll leave with real, production-ready skills.

Dedika for students

What your team will master:

You will build a complete foundation in C and C++ syntax, memory management, and object-oriented programming before advancing to templates, the Standard Template Library, and modern C++17/20 features. The course covers data structures and algorithms implemented from scratch, giving you the problem-solving skills needed for technical interviews and systems work. You will also learn to use industry-standard tools including CMake, GDB, Google Test, and static analysers. Embedded and systems-level programming topics prepare you for firmware and low-level development. By the end, you will be equipped to design, build, and ship robust C++ software in professional environments.

How your team learns practically C/C++ Course

How your team practises C/C++ Course

Professionals from these companies study at Dedika

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Course content

8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

C/C++ Environment and Syntax Basics

  • Lesson 1 • Variables, Types, and Literals

    Introduces primitive data types, variable declaration, and literal values. Mastery here enables correct data representation throughout the course.

  • Lesson 2 • Input and Output Fundamentals

    Teaches console I/O using printf/scanf in C and cin/cout in C++. Enables interactive programs required in every hands-on exercise.

  • Lesson 3 • Operators and Expressions

    Covers arithmetic, relational, logical, and bitwise operators with precedence rules. Builds the expression-writing skill needed for all control flow and algorithms.

  • Lesson 4 • Core Syntax and Program Structure

    Covers tokens, statements, blocks, and the anatomy of a C/C++ source file. Connects directly to writing any valid program in later chapters.

  • Lesson 5 • Setting Up the Development Environment

    Install and configure compilers, editors, and build tools for C/C++. Provides the technical foundation every subsequent chapter depends on.

Chapter 2See details

Control Flow and Functions

  • Lesson 1 • Function Declaration and Definition

    Introduces function prototypes, definitions, and call mechanics in C/C++. Establishes modular design principles used throughout the course.

  • Lesson 2 • Scope, Lifetime, and Storage Classes

    Explains local, global, and static variables and their lifetimes. Prevents common bugs related to uninitialised or misscoped variables.

  • Lesson 3 • Recursion Fundamentals

    Covers recursive function design, base cases, and stack behaviour. Prepares students for recursive algorithms and data structures in later chapters.

  • Lesson 4 • Conditional Statements

    Covers if, else-if, and switch constructs for decision-making. Directly enables logic-driven programs built upon in every subsequent chapter.

  • Lesson 5 • Loops and Iteration

    Teaches for, while, and do-while loops along with loop control statements. Iteration is the backbone of algorithms and data processing covered later.

Chapter 3See details

Arrays, Strings, and Pointers

  • Lesson 1 • C-Style Strings and String Functions

    Teaches null-terminated character arrays and standard string library functions. Provides the C-string foundation needed before C++ std::string is introduced.

  • Lesson 2 • Dynamic Memory Allocation

    Teaches malloc/free in C and new/delete in C++ for heap management. Lays the groundwork for dynamic data structures covered in the next chapter.

  • Lesson 3 • One-Dimensional and Multi-Dimensional Arrays

    Covers array declaration, initialisation, and element access patterns. Arrays underpin nearly every data structure introduced later in the course.

  • Lesson 4 • Pointers and Functions

    Covers passing pointers to functions and returning pointers safely. Enables efficient data manipulation without unnecessary copying.

  • Lesson 5 • Pointer Basics and Address Arithmetic

    Introduces pointer declaration, dereferencing, and pointer arithmetic. Pointers are central to dynamic memory and low-level programming in later chapters.

Chapter 4See details

Structures, Unions, and Enumerations

  • Lesson 1 • Enumerations and Type Aliases

    Covers C enums, C++ enum class, and typedef/using declarations. Improves code clarity and type safety in all subsequent projects.

  • Lesson 2 • Bit Fields and Packed Data

    Introduces bit-field struct members for compact data representation. Relevant to protocol parsing and hardware register mapping in advanced topics.

  • Lesson 3 • Pointers to Structures

    Teaches pointer-based struct access and dynamic struct allocation. Enables linked data structures built in the algorithms chapter.

  • Lesson 4 • Unions and Memory Sharing

    Explains union semantics, overlapping storage, and valid use cases. Provides low-level memory insight relevant to embedded and systems programming.

  • Lesson 5 • Defining and Using Structures

    Covers struct declaration, member access, and nested structs. Structures are the direct precursor to C++ classes introduced in the next chapter.

Chapter 5See details

Object-Oriented Programming in C++

  • Lesson 1 • Polymorphism and Virtual Functions

    Introduces virtual functions, pure virtual functions, and abstract classes. Enables runtime dispatch patterns central to extensible software design.

  • Lesson 2 • Inheritance and Class Hierarchies

    Covers single and multiple inheritance, base class access, and constructor chaining. Builds the hierarchy design skills needed for polymorphism.

  • Lesson 3 • Encapsulation and Design Principles

    Applies SOLID principles and encapsulation strategies to class design. Prepares students to write maintainable, testable C++ code in advanced chapters.

  • Lesson 4 • Operator Overloading

    Teaches overloading arithmetic, comparison, and stream operators for custom types. Enables intuitive syntax for user-defined classes used in later projects.

  • Lesson 5 • Classes and Objects

    Covers class declaration, access specifiers, and object instantiation. Establishes the class model that all OOP features in this chapter extend.

Chapter 6See details

Templates, STL, and Generic Programming

  • Lesson 1 • STL Algorithms

    Covers sort, find, transform, accumulate, and other standard algorithms. Applying STL algorithms replaces error-prone manual loops in production code.

  • Lesson 2 • Function and Class Templates

    Covers template syntax, type parameters, and template instantiation. Generic functions and classes reduce code duplication across all future projects.

  • Lesson 3 • STL Containers

    Introduces vector, list, deque, map, set, and unordered variants. Choosing the right container is critical for performance in algorithm design.

  • Lesson 4 • Lambda Expressions and Functors

    Introduces lambda syntax, captures, and functor objects for use with STL. Enables concise, expressive algorithm customisation in modern C++.

  • Lesson 5 • Iterators and Ranges

    Teaches iterator categories, iterator arithmetic, and range-based for loops. Iterators are the universal interface between containers and algorithms.

Chapter 7See details

Memory Management and Resource Safety

  • Lesson 1 • Exception Handling and Safety

    Covers try/catch/throw, exception hierarchies, and exception-safety guarantees. Robust error handling prevents resource leaks under exceptional conditions.

  • Lesson 2 • RAII and Resource Ownership

    Explains the RAII idiom and how constructors/destructors enforce resource safety. RAII is the foundation of all safe resource management in modern C++.

  • Lesson 3 • Smart Pointers in Depth

    Covers unique_ptr, shared_ptr, and weak_ptr semantics and usage patterns. Smart pointers eliminate manual delete calls and prevent ownership errors.

  • Lesson 4 • Copy and Move Semantics

    Teaches copy constructors, copy assignment, move constructors, and move assignment. The Rule of Five governs correct resource-owning class design.

  • Lesson 5 • Memory Debugging and Profiling

    Introduces tools for detecting leaks, invalid accesses, and heap corruption. Profiling skills are essential for maintaining production-quality C++ code.

Chapter 8See details

File I/O, Concurrency, and Systems Programming

  • Lesson 1 • Multithreading with std::thread

    Teaches thread creation, joining, and detaching using the C++11 thread library. Concurrency fundamentals enable parallel program design in this chapter.

  • Lesson 2 • Process and System Interfaces

    Introduces process creation, environment variables, and system calls. Provides the OS-level context needed for writing systems-level C programs.

  • Lesson 3 • Networking and Socket Basics

    Introduces BSD socket API for TCP/UDP communication in C/C++. Networking skills extend C/C++ applications to distributed and client-server contexts.

  • Lesson 4 • Synchronisation and Data Races

    Covers mutexes, condition variables, and atomic operations to prevent data races. Safe synchronisation is mandatory for correct concurrent programs.

  • Lesson 5 • File I/O in C and C++

    Covers fopen/fclose in C and fstream in C++ for reading and writing files. File I/O is required for data persistence in all capstone projects.

Certification

Your valid completion certificate

This course is for you:

  • Computer science students: seeking practical depth beyond what classrooms typically provide.

  • Python or JavaScript developers: ready to understand what happens below the abstraction layer.

  • Electrical engineers: needing C skills to write and maintain firmware for hardware projects.

  • Career changers: targeting systems or embedded roles that require low-level programming fluency.

  • Game developers: wanting to optimise performance-critical code written in C or C++.

  • Self-taught programmers: building the rigorous foundation that structured languages like C demand.

Related Courses

FAQ

Who is Dedika?

Is the certificate valid in Kenya?

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