Sign up to track your progress
Create an account to save your progress, complete exercises, and earn achievements.
C++ Programming Fundamentals
Learn the fundamentals of C++ programming language through hands-on lessons, exercises, and quizzes.
This course is designed for complete beginners who want to learn C++ programming. You'll start with the basics and gradually build up to more complex concepts. By the end of this course, you'll have a solid foundation in C++ programming and be ready to tackle more advanced topics.
Course Curriculum
C++ Basics (18 lessons)
Fundamental concepts of C++ programming including syntax, variables, and basic operations.
Welcome to C++
Discover what C++ is, why it's powerful, and why it's worth learning in today's programming landscape.
20 minutes
Your First Program: Hello World!
Write your first C++ program that displays "Hello, World!" to the console.
25 minutes
Comments
Learn to document your code with comments and understand best practices for code documentation.
25 minutes
Basic C++ Errors
Develop the essential skill of reading and interpreting compiler error messages to debug your code effectively.
25 minutes
Statements
Learn the basic structure of statements and the different types of statements.
10 minutes
If Statements
Learn how to make decisions in your programs using if statements and conditions.
20 minutes
Whitespace and Formatting
Understand how whitespace works and how to format your code for maximum readability and maintainability.
25 minutes
C++ Naming Conventions
Learn C++ keywords and best practices for naming variables and identifiers.
25 minutes
Objects and Variables
Understand what objects and variables are, and learn the common data types in C++.
25 minutes
Data Types
Brief introduction to data types what they are and how they work.
25 minutes
Variable Assignment and Initialization
Learn the difference between assignment and initialization, and how to work with variable values safely.
25 minutes
Undefined Behavior
Understand the dangers of uninitialized variables and learn to avoid undefined behavior.
25 minutes
Literals and Operators
Learn about fixed values (literals) and basic operators for mathematical calculations.
25 minutes
Expressions
Master combining values, variables, and operators to create expressions that produce results.
25 minutes
Iostream: std::cout, std::cin, and std::endl
Learn basic input and output operations using std::cout and std::cin.
25 minutes
Beyond Basic C++ Errors
More examples of errors you may encounter based on the new topics we have covered.
40 minutes
Developing your first program
Walk through the complete process of developing a C++ program from planning to implementation.
25 minutes
C++ Basics summary
Review and test your understanding of all fundamental C++ concepts covered in this chapter.
25 minutes
References (2 resources)
Additional reference materials for this chapter
Essential C++ Terminology
Overview of fundamental C++ concepts and terminology in this chapter.
C++ Error Reference
A comprehensive reference guide for common C++ errors. Use this as a quick lookup when you encounter unfamiliar error messages.
Functions and Files (14 lessons)
Learn to organize your code using functions and multiple files, making your programs more modular and maintainable.
Function Basics
Learn the basics of creating and calling functions in C++.
25 minutes
Void Functions
Learn about functions that perform actions without returning values.
25 minutes
Functions with Return
Understand how functions can return values to the caller.
25 minutes
Parameters and Arguments
Master passing data to functions through parameters.
25 minutes
Local Scope
Understand variable scope within functions and blocks.
25 minutes
Better Programs with Functions
Learn when and why to use functions in your programs.
25 minutes
Forward Declarations
Understand function declarations and definitions.
25 minutes
Multi-File Programs
Learn to organize code across multiple source files.
25 minutes
Namespaces
Prevent naming conflicts using namespaces.
25 minutes
The Preprocessor
Understand preprocessor directives and their uses.
25 minutes
Using Header Files
Learn to create and use header files effectively.
25 minutes
Header Guards
Prevent multiple inclusion problems with header guards.
25 minutes
Program Design with Functions
Learn systematic approaches to program design.
25 minutes
Functions and Files Summary
Review and test your understanding of all function and file concepts covered in this chapter.
25 minutes
References (1 resources)
Additional reference materials for this chapter
Functions and Files Terminology
Overview of function and file concepts you'll learn in this chapter.
Debugging (12 lessons)
Introduction to debugging
Overview of debugging concepts and techniques you'll master in this chapter.
25 minutes
Syntax Errors
Learn to identify and fix different types of programming errors.
25 minutes
Early Detection
Learn preventive programming techniques.
25 minutes
Debugging Process
Understand systematic approaches to finding and fixing bugs.
25 minutes
Debugging Strategy
Develop effective debugging methodologies.
25 minutes
Basic Debugging
Learn practical techniques for debugging C++ programs.
25 minutes
Advanced Debugging
Learn practical techniques for debugging C++ programs.
25 minutes
Debugger Stepping
Master using IDE debugging tools effectively.
25 minutes
Breakpoints
Master using IDE debugging tools effectively.
25 minutes
Watch Variables
Master using IDE debugging tools effectively.
25 minutes
Call Stack
Master using IDE debugging tools effectively.
25 minutes
Debugging Summary
Learn about Chapter 3 summary and quiz in C++.
25 minutes
Data Types (14 lessons)
Introduction to data types
Overview of data type concepts you'll master in this chapter.
25 minutes
Data Types
Learn about the basic data types available in C++.
25 minutes
If Statements
Introduction to conditional execution with if statements.
25 minutes
Characters
Understand character data type and ASCII representation.
25 minutes
Type Conversion
Learn about converting between different data types.
25 minutes
Void
Understand the void type and its uses in C++.
25 minutes
Sizeof
Learn to determine the size of data types and objects.
25 minutes
Signed Integers
Understand signed integer types and their ranges.
25 minutes
Unsigned Integers
Understand the void type and its uses in C++.
25 minutes
Fixed Integers
Understand fixed-width integer types for predictable sizes.
25 minutes
Scientific Notation
Learn how scientific notation works with floating-point numbers.
25 minutes
Floats
Understand floating-point representation and precision.
25 minutes
Booleans
Learn about boolean data type and logical values.
25 minutes
Data Types Summary
Learn about Chapter 4 summary and quiz in C++.
25 minutes
Constants and Strings (11 lessons)
Introduction to constants and strings
Overview of constants and string concepts you'll master in this chapter.
25 minutes
Constants
Learn to create unchangeable named values in your programs.
25 minutes
Literals
Understand different types of literal values in C++.
25 minutes
Numeral Systems
Learn about different number bases: binary, octal, decimal, hexadecimal.
25 minutes
As-If Rule
Understand compiler optimization and the as-if rule.
25 minutes
Constant Expressions
Learn about expressions that can be evaluated at compile time.
25 minutes
Constexpr
Master compile-time constants with constexpr.
25 minutes
std::string
Learn to work with text strings using the standard library.
25 minutes
std::string_view
Learn to work with text strings using the standard library.
25 minutes
Advanced std::string_view
Learn to work with text strings using the standard library.
25 minutes
Constants Summary
Learn about Chapter 5 summary and quiz in C++.
25 minutes
Operators (10 lessons)
Introduction to operators
Overview of operator concepts you'll master in this chapter.
25 minutes
Precedence
Learn the order in which operators are evaluated.
25 minutes
Arithmetic
Master basic mathematical operations in C++.
25 minutes
Remainder
Understand modulo operations and power calculations.
25 minutes
Increment/Decrement
Learn prefix and postfix increment/decrement operators.
25 minutes
Comma Operator
Understand the comma operator and its uses.
25 minutes
Conditional Operator
Learn the ternary operator for conditional expressions.
25 minutes
Float Comparisons
Master comparison operators and floating-point comparisons.
25 minutes
Logical Operators
Understand boolean logic with AND, OR, and NOT operators.
25 minutes
Operators Summary
Learn about Chapter 6 summary and quiz in C++.
25 minutes
Control Flow (17 lessons)
Introduction to control flow
Overview of control flow concepts you'll master in this chapter.
25 minutes
Control Flow
Learn to control the execution path of your programs.
25 minutes
For Loops
Master the most common loop construct in C++.
25 minutes
Break/Continue
Control loop execution with break and continue statements.
25 minutes
Program Halts
Learn to exit programs early with halt functions.
25 minutes
Random Numbers
Generate random numbers for games and simulations.
25 minutes
Mersenne Twister
Use high-quality random number generation.
25 minutes
Global Random
Organize random number generation in larger programs.
25 minutes
If Blocks
Introduction to conditional execution with if statements.
25 minutes
If Problems
Learn about Common if statement problems in C++.
25 minutes
Constexpr If
Introduction to conditional execution with if statements.
25 minutes
Switch Basics
Master multi-way branching with switch statements.
25 minutes
Switch Fallthrough
Understand switch fallthrough behavior and variable scope.
25 minutes
Goto
Learn about goto statements and why to avoid them.
25 minutes
While Loops
Master repetitive execution with while loops.
25 minutes
Do While
Learn post-test loops with do-while statements.
25 minutes
Control Flow Summary
Learn about Chapter 8 summary and quiz in C++.
25 minutes
Error Handling (9 lessons)
Introduction to error handling
Overview of error handling concepts you'll master in this chapter.
25 minutes
Testing Code
Learn systematic approaches to testing C++ programs.
25 minutes
Code Coverage
Understand how much of your code is being tested.
25 minutes
Semantic Errors
Learn to identify and fix logic errors in C++ programs.
25 minutes
Common Errors
Learn to identify and fix logic errors in C++ programs.
25 minutes
Error Handling
Master error detection and handling strategies.
25 minutes
Input Validation
Learn to handle invalid user input safely.
25 minutes
Assertions
Use assertions for debugging and compile-time checks.
25 minutes
Error Handling Summary
Learn about Chapter 9 summary and quiz in C++.
25 minutes
User-Defined Types (19 lessons)
Introduction to enums and structs
Overview of user-defined type concepts you'll master in this chapter.
25 minutes
User Defined Types
Learn to create your own custom data types.
25 minutes
Passing Structs
Use structs as function parameters and return values.
25 minutes
Struct Misc
Additional struct features and best practices.
25 minutes
Member Access
Access struct members through pointers and references.
25 minutes
Class Templates
Create generic classes that work with different types.
25 minutes
Template Deduction
Let the compiler deduce template arguments automatically.
25 minutes
Alias Templates
Create convenient names for complex template types.
25 minutes
Unscoped Enums
Create named constants with traditional enums.
25 minutes
Enum Conversions
Understand how enums convert to integers.
25 minutes
Enum Strings
Learn about Converting an enumeration to and from a string in C++.
25 minutes
I/O Operators
Customize input/output operations for your types.
25 minutes
I/O Overloading
Customize input/output operations for your types.
25 minutes
Enum Classes
Use modern enum classes for type safety.
25 minutes
Structs
Learn about structs, members and member selection in C++.
25 minutes
Aggregate Init
Initialize structs with brace initialization.
25 minutes
Default Init
Set default values for struct members.
25 minutes
User Types Summary
Learn about Chapter 13 summary and quiz in C++.
25 minutes
Language Reference
Learn to use C++ language documentation effectively.
25 minutes
Containers (14 lessons)
Introduction to vectors
Overview of vector and container concepts you'll master in this chapter.
25 minutes
Containers and Arrays
Introduction to storing collections of data.
25 minutes
std::vector Capacity
Master dynamic arrays with the vector container.
25 minutes
std::vector in the stack
Master dynamic arrays with the vector container.
25 minutes
std::vector<bool>
Master dynamic arrays with the vector container.
25 minutes
std::vector and lists
Master dynamic arrays with the vector container.
25 minutes
std::vector Indexing Problems
Master dynamic arrays with the vector container.
25 minutes
Passing Vectors
Master dynamic arrays with the vector container.
25 minutes
Returning Vectors
Master dynamic arrays with the vector container.
25 minutes
Arrays and Loops
Iterate through container elements effectively.
25 minutes
Array Loop Problems
Learn about array loops and sign challenge solutions in C++.
25 minutes
Foreach?
Use modern C++ range-based for loops.
25 minutes
Enum Array Indexing
Access container elements by index using enums.
25 minutes
Containers Summary
Learn about Chapter 16 summary and quiz in C++.
25 minutes
Algorithms (5 lessons)
Introduction to iterators and algorithms
Overview of iterator and algorithm concepts you'll master in this chapter.
25 minutes
Selection Sort
Learn basic sorting algorithms like selection sort.
25 minutes
Iterators
Understand iterators for traversing containers.
25 minutes
STL Algorithms
Use STL algorithms for common operations.
25 minutes
Code Timing
Measure and optimize program performance.
25 minutes
I/O (10 lessons)
Introduction to input and output
Overview of input and output concepts you'll master in this chapter.
25 minutes
I/O Streams
Learn about Input and output (I/O) streams in C++.
25 minutes
Stream Basics
Learn about input and output (I/O) streams in C++.
25 minutes
istream
Read data from input streams effectively.
25 minutes
ostream
Write data to output streams with formatting.
25 minutes
stringstream
Use stringstreams for string manipulation.
25 minutes
Stream States
Handle stream errors and validate input.
25 minutes
File I/O
Read from and write to files.
25 minutes
File Basics
Read from and write to files.
25 minutes
Random Access
Access file data at arbitrary positions.
25 minutes