Skip to content
SOLUTECHInnovation & Solutions

C/C++

Systems-level programming, memory and performance.

  • Self-paced
  • 8–10 weeks
  • 25+ hrs
  • Credential included

Curriculum

6 subjects · 15 chapters · 60 topics

  1. 01

    C Fundamentals

    1.1 Getting started

    • Compilation, linking and the toolchain
    • main, headers and the preprocessor
    • Variables, types and constants
    • Input and output with printf/scanf

    1.2 Control flow

    • if, switch and the ternary operator
    • for, while and do-while
    • break, continue and goto
    • Operators and precedence

    1.3 Functions and scope

    • Declaration versus definition
    • Parameters by value
    • Recursion
    • Storage classes and linkage
  2. 02

    Memory in C

    2.1 Pointers

    • Addresses and dereferencing
    • Pointer arithmetic
    • Pointers to pointers
    • Common pointer mistakes

    2.2 Arrays and strings

    • Arrays and their decay to pointers
    • Multidimensional arrays
    • C strings and string.h
    • Buffer overflows and how to avoid them

    2.3 Dynamic memory

    • malloc, calloc, realloc, free
    • Memory leaks and dangling pointers
    • Stack versus heap
    • Debugging with valgrind
  3. 03

    Structuring a C Program

    3.1 User-defined types

    • struct and typedef
    • union and enum
    • Bit fields
    • Padding and alignment

    3.2 Files and modules

    • File I/O
    • Splitting a program across files
    • Header guards
    • Makefiles
  4. 04

    Moving to C++

    4.1 C++ basics

    • References versus pointers
    • Function overloading and default arguments
    • namespaces
    • new and delete

    4.2 Classes and objects

    • Members, access specifiers and this
    • Constructors and destructors
    • Copy constructor and assignment
    • const correctness

    4.3 Object-oriented design

    • Inheritance and composition
    • Virtual functions and polymorphism
    • Abstract classes and interfaces
    • The rule of three, five and zero
  5. 05

    Modern C++

    5.1 Templates and the STL

    • Function and class templates
    • Vectors, maps, sets and strings
    • Iterators and algorithms
    • Lambdas

    5.2 Modern features

    • auto, range-for and nullptr
    • Smart pointers: unique_ptr, shared_ptr
    • Move semantics
    • Exceptions and RAII
  6. 06

    Practice

    6.1 Problem solving

    • Complexity of your own code
    • Common algorithm patterns
    • Reading and fixing someone else's code
    • Debugging with gdb

    6.2 Project

    • Designing a small system in C++
    • Writing it module by module
    • Testing and profiling
    • Presenting the result

Other programmes