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.

35 lessons 40 hours

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