This is a collection of C++ lessons and projects for the iCode black belt course.
In order to use these exercises, the following requirements must be met:
- CMake >= 3.15
- C++ compiler supporting C++17 or newer
It is strongly recommended that these lessons be completed using a Linux environment, either natively installed or WSL, but it is not mandatory.
Lesson 1 - Introduction
Lesson 2 - Keywords and Identifiers
Lesson 3 - Data Types, Variables and Functions
Lesson 4 - Control Statements and Operators
Project - Is it prime?
Lesson 1 - Return Types and Parameters
Lesson 2 - Default Arguments and Recursion
Lesson 3 - Basic Template Functions
Lesson 4 - Lambda Expressions and Function Objects
Project - Calculator
Lesson 1 - Console IO and Formatting
Lesson 2 - Command Line Arguments
Lesson 3 - File Streams
Lesson 4 - Signal Handling
Project - TBD
Lesson 1 - Arrays and Pointers
Lesson 2 - Strings
Lesson 3 - Structs, Unions, and Enums
Lesson 4 - Classes
Project - TBD
Lesson 1 - Methods and Variables
Lesson 2 - Abstraction and Encapsulation
Lesson 3 - Virtual Methods
Lesson 4 - Inheritance and Polymorphism
Project - TBD
Lesson 1 - Namespaces and Headers
Lesson 2 - Templates and Generics
Lesson 3 - Preprocessor Directives
Lesson 4 - Threads and Callback Functions
Project - TBD
Lesson 1 - Arrays, Vectors, and Lists
Lesson 2 - Stacks and Queues
Lesson 3 - Sets and Maps
Lesson 4 - Iterators and Algorithms
Project - TBD
Lesson 1 - Managed Pointers
Lesson 2 - Exceptions
Lesson 3 - Chrono Library
Lesson 4 - Random Numbers and Algorithms
Project - TBD