Choose your language
Functions, Recursion, and Program Organization in C++ Course
More than 2 million students worldwide

Functions, Recursion, and Program Organization in C++ Course

Master the core pillars of professional C++ development — functions, recursion, and modular design — in one comprehensive course. You'll build everything from recursive sorting algorithms to multi-file projects with CMake, gaining the skills that real software engineering roles demand. This course takes you from C++ fundamentals all the way to templates, lambdas, and technical interview readiness.

Dedika for businesses

What you'll learn:

  • Build and trace recursive functions including factorial, merge sort, and backtracking algorithms.

  • Design modular C++ programs using header files, namespaces, compilation units, and build tools.

  • Apply pointer arithmetic, dynamic memory allocation, and RAII to manage resources safely.

  • Implement higher-order functions using lambdas, std::function, and function pointer dispatch patterns.

  • Use function templates and STL algorithms to write generic, type-safe, reusable C++ code.

  • Solve classic technical interview problems by applying structured recursive and dynamic programming strategies.

How you study in practice Functions, Recursion, and Program Organization in C++ Course

How you practise Functions, Recursion, and Program Organization in C++ Course

For businesses looking to train their team

With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

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

Chapter 1See details

C++ Fundamentals and Program Structure

  • Lesson 1 • Setting Up the C++ Environment

    Install a compiler toolchain and configure an IDE for C++ development. Establishes the baseline workspace used throughout the course.

  • Lesson 2 • Core Data Types and Variables

    Covers primitive types, variable declaration, initialisation, and type sizes. Provides the data foundation required for all subsequent function work.

  • Lesson 3 • Operators and Expressions

    Explains arithmetic, relational, logical, and bitwise operators with precedence rules. Enables correct expression construction inside functions.

  • Lesson 4 • Control Flow Statements

    Teaches if-else, switch, loops, and jump statements for directing program execution. Prepares students to implement conditional logic inside functions.

  • Lesson 5 • Input, Output, and Basic Debugging

    Covers standard I/O streams and simple debugging techniques using print statements. Enables students to test and observe program behaviour interactively.

Chapter 2See details

Defining and Calling Functions

  • Lesson 1 • Parameter Passing Mechanisms

    Contrasts pass-by-value, pass-by-reference, and pass-by-pointer semantics. Directly impacts how functions read and modify caller data.

  • Lesson 2 • Default Arguments and Function Overloading

    Teaches default parameter values and overloaded function signatures for flexible APIs. Reduces code duplication while maintaining clear interfaces.

  • Lesson 3 • Scope, Lifetime, and Storage Classes

    Explains local, global, and static variable behaviour within and across functions. Prevents common bugs caused by unintended variable sharing.

  • Lesson 4 • Inline Functions and the Call Stack

    Covers inline expansion hints and how the call stack manages function invocations. Builds intuition for performance and stack-depth considerations.

  • Lesson 5 • Function Syntax and Declaration

    Covers return types, parameter lists, function prototypes, and definitions. Establishes the structural rules every function in the course will follow.

Chapter 3See details

Arrays, Pointers, and Memory Basics

  • Lesson 1 • Arrays and Array Operations

    Covers one-dimensional and multidimensional array declaration, initialisation, and traversal. Provides the data structures used in recursive and iterative algorithms.

  • Lesson 2 • References vs. Pointers in Depth

    Compares reference and pointer semantics for aliasing, nullability, and reassignment. Guides students towards idiomatic C++ parameter and return-type choices.

  • Lesson 3 • Pointers and Address Arithmetic

    Explains pointer declaration, dereferencing, and arithmetic on contiguous memory. Essential for understanding how arrays decay to pointers in function calls.

  • Lesson 4 • Dynamic Memory Allocation

    Covers new, delete, and heap allocation patterns for runtime-sized data. Prepares students to build data structures used in recursive algorithms.

  • Lesson 5 • Passing Arrays to Functions

    Demonstrates how arrays are passed as pointers and how size information is conveyed. Connects pointer semantics to practical function design.

Chapter 4See details

Recursion Fundamentals

  • Lesson 1 • Common Recursive Patterns

    Catalogues divide-and-conquer, accumulator, and tail-recursive patterns with examples. Gives students reusable templates for structuring recursive solutions.

  • Lesson 2 • Recursion Pitfalls and Debugging

    Addresses infinite recursion, missing base cases, and stack overflow errors. Equips students to diagnose and fix broken recursive functions systematically.

  • Lesson 3 • Thinking Recursively

    Introduces the recursive mindset: identifying subproblems and trusting the recursive call. Shifts students from iterative to recursive problem-solving patterns.

  • Lesson 4 • Recursion on Arrays and Strings

    Applies recursion to linear data structures using index and pointer parameters. Extends recursive thinking beyond numeric problems to sequence processing.

  • Lesson 5 • Writing and Tracing Recursive Functions

    Guides students through writing factorial, sum, and power functions with full call traces. Builds mechanical confidence before tackling complex recursive structures.

Chapter 5See details

Advanced Recursion and Classic Algorithms

  • Lesson 1 • Tree Traversal and Recursive Structures

    Introduces binary trees and implements pre-order, in-order, and post-order traversals. Shows how recursive data structures naturally call for recursive algorithms.

  • Lesson 2 • Binary Search and Recursive Search

    Covers recursive binary search on sorted arrays and its logarithmic complexity. Connects recursive structure to measurable performance improvements over linear search.

  • Lesson 3 • Memoisation and Recursive Optimisation

    Introduces memoisation to eliminate redundant recursive calls in overlapping subproblems. Bridges pure recursion to dynamic programming as a performance strategy.

  • Lesson 4 • Backtracking and Combinatorial Recursion

    Teaches backtracking through N-Queens, permutations, and subset generation problems. Develops the ability to prune search spaces and enumerate solutions systematically.

  • Lesson 5 • Recursive Sorting Algorithms

    Implements merge sort and quicksort using recursive decomposition and in-place partitioning. Demonstrates how recursion enables efficient, elegant sorting solutions.

Chapter 6See details

Programme Organisation and Modular Design

  • Lesson 1 • Designing Cohesive Modules

    Applies cohesion, coupling, and interface-design principles to C++ module boundaries. Produces code that is testable, reusable, and easy to maintain.

  • Lesson 2 • Build Systems: Makefiles and CMake

    Introduces Makefile rules and CMakeLists.txt for automating multi-file builds. Enables students to manage dependencies and build configurations professionally.

  • Lesson 3 • Namespaces and Name Collision Prevention

    Teaches namespace declaration, nesting, and the using directive for managing identifiers. Prevents name collisions in large codebases with multiple contributors.

  • Lesson 4 • Compilation Units and the Build Process

    Explains preprocessing, compilation, linking, and object file generation step by step. Demystifies build errors and prepares students for Makefile and CMake usage.

  • Lesson 5 • Header Files and Source Separation

    Covers header guards, include directives, and the declaration-definition split across files. Establishes the file organisation pattern used in all professional C++ projects.

Chapter 7See details

Function Pointers, Lambdas, and Higher-Order Design

  • Lesson 1 • std::function and Type Erasure

    Introduces std::function as a uniform wrapper for any callable type. Enables storing and passing heterogeneous callables through a single interface.

  • Lesson 2 • Function Pointers in C++

    Covers function pointer syntax, typedef aliases, and passing functions as arguments. Provides the low-level foundation for callback and dispatch mechanisms.

  • Lesson 3 • Callbacks, Events, and the Strategy Pattern

    Implements callback registration, event dispatch, and the strategy design pattern using callables. Connects language features to real-world software architecture decisions.

  • Lesson 4 • Lambda Expressions and Closures

    Teaches lambda syntax, capture lists, and return-type deduction for inline callables. Enables concise, context-aware function objects without named function overhead.

  • Lesson 5 • Higher-Order Functions and Algorithms

    Applies higher-order design to std::sort, std::transform, and custom algorithm templates. Demonstrates how callable parameters generalise algorithm behaviour.

Chapter 8See details

Templates, Generic Functions, and Code Reuse

  • Lesson 1 • STL Algorithms and Generic Programming

    Applies std::find, std::accumulate, std::partition, and related algorithms to containers. Demonstrates how generic programming replaces hand-written loops with expressive code.

  • Lesson 2 • Template Specialisation and Constraints

    Teaches full and partial specialisation and C++20 concepts for constraining template parameters. Produces templates that fail clearly when misused.

  • Lesson 3 • Variadic Templates and Parameter Packs

    Introduces variadic templates and fold expressions for functions accepting any number of arguments. Enables flexible utility functions like type-safe print and tuple builders.

  • Lesson 4 • Function Template Basics

    Covers template syntax, type parameter deduction, and explicit instantiation for generic functions. Eliminates type-specific duplication while preserving full type safety.

  • Lesson 5 • STL Containers and Iterators

    Surveys vector, list, map, and unordered_map with iterator-based traversal patterns. Provides the data structures that generic algorithms operate on.

Certification

Your valid completion certificate

This course is for you:

  • Computer science students: ready to move beyond introductory programming concepts.

  • Self-taught coders: wanting to close gaps in their C++ knowledge systematically.

  • Software developers from other languages: transitioning into C++ for systems-level work.

  • Embedded systems hobbyists: needing structured C++ skills for hardware programming projects.

  • Junior developers: preparing to pass technical interviews at competitive engineering companies.

  • Game development enthusiasts: building the C++ foundation required for engine-level coding.

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...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast and simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top upskilling courses

FAQ

Who is Dedika?

Is the certificate valid in Australia?

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