Scope: local vs global variables and lifetime implications
Classes/objects: headers, constructors/destructors, private data via public methods
Pointers & memory: addresses (&), pass-by-reference, pointers to class objects
Arrays: 1D/2D arrays, computations, and passing arrays to functions
OOP relationships: composition, friend functions/classes, member init lists
Inheritance & polymorphism: virtual/pure virtual funcs, abstract classes, ctor/dtor order
Templates: function and class templates with multiple data types
File I/O: create/open files, verify open success, handle error messages/codes
About the free online course
Learning to program can feel overwhelming when you are not sure where to start. C++ is a powerful first language because it teaches you how code really works, from basic instructions and data types to the way memory is handled behind the scenes. In this free online course, you will develop a strong foundation that helps you understand programming concepts that transfer to many other languages and technical careers.
You will begin by writing and running simple programs, understanding why the main function matters, and getting comfortable defining variables and performing arithmetic. From there, you will learn to make decisions with conditional logic and build clearer programs by organizing your work into functions and using parameters effectively. As your confidence grows, you will shift from small snippets to thinking in structures: how to reuse logic, how to avoid repeating yourself, and how to design code that stays readable as it expands.
A key step in becoming job-ready is understanding how programs manage complexity, and this is where C++ shines. You will explore object-oriented programming with classes, objects, constructors, and access control, learning how to model real-world ideas in code. You will also practice building program flow with loops and switch statements, while picking up clean habits such as choosing the right operators and managing variable scope without surprises.
To move from beginner to confident developer, you will tackle the topics that often separate surface-level familiarity from true understanding: arrays, multidimensional data, pointers, references, and how memory addresses influence behavior and performance. You will also see how features like overloading, default parameters, constant correctness, and recursion can make your solutions more expressive and robust.
Finally, you will connect core skills to larger software patterns by working with inheritance, polymorphism, and virtual functions, as well as templates for writing flexible, reusable code. You will also learn practical fundamentals of file handling and validation, building toward hands-on outcomes that feel like real programming rather than isolated exercises. By the end, you will have the confidence to read and write C++ programs, understand common compiler errors, and keep progressing into more advanced projects and learning paths.
Course content
Video class: Learn C++ as your first Programming Language - C++ Programming Tutorial #1 (PC / Mac 2015)11m
Exercise: What is the role of the main function in a C++ program?
Video class: Defining Variables - C++ Programming Tutorial #2 (PC / Mac 2015)05m
Exercise: Which option below will define an integer-type variable in the memory?
Video class: Making our first calculator - C++ Programming Tutorial #3 (PC / Mac 2015)07m
Exercise: What is the function of the 'main' function in a C++ program?
Video class: Variable Repetition - C++ Programming Tutorial #4 (PC / Mac 2015)02m
Exercise: What happens when a variable is redefined in C++?
Video class: Arithmatic Operations - C++ Programming Tutorial #5 (PC / Mac 2015)05m
Exercise: How does C plus plus handle decimal places in an integer variable?
Video class: if Statement - C++ Programming Tutorial #6 (PC / Mac 2015)06m
Exercise: What does the double equal sign (==) represent in programming?
Video class: if-ception Nested Statements - C++ Programming Tutorial #7 (PC / Mac 2015)04m
Exercise: What happens if the outer if statement is false, but the inner if statement is true?
Video class: Functions - C++ Programming Tutorial #8 (PC / Mac 2015)06m
Exercise: How do you properly prototype a function in C++?
Video class: Parameters - C++ Programming Tutorial #9 (PC / Mac 2015)04m
Exercise: What is a key purpose of using parameters in functions in C++?
Video class: Classes - C++ Programming Tutorial #10 (PC / Mac 2015)08m
Exercise: What is the purpose of header files in C++?
Video class: Objects and Constructors - C++ Programming Tutorial #11 (PC / Mac 2015)05m
Exercise: How do Constructors and objects relate in a class structure?
Video class: Private Class Variables - C++ Programming Tutorial #12 (PC / Mac 2015)11m
Exercise: How do public functions in a class help in accessing private variables?
Video class: if else statement - C++ Programming Tutorial #13 (PC / Mac 2015)03m
Exercise: How does an if-else statement function in programming?
Video class: while loop - C++ Programming Tutorial #14 (PC / Mac 2015)03m
Exercise: How does changing the position of incrementing 'X' affect a while loop's output?
Video class: While Loop Calculator - C++ Programming Tutorial #15 (PC / Mac 2015)06m
Exercise: What is a key condition for a while loop to continue running?
Video class: Increment Notation - C++ Programming Tutorial #16 (PC / Mac 2015)02m
Exercise: What is the correct use of incrementation in C++?
Video class: Assignment Operators - C++ Programming Tutorial #17 (PC / Mac 2015)03m
Exercise: What happens when you use a plus sign before the assignment operator?
Video class: for loops - C++ Programming Tutorial #18 (PC / Mac 2015)03m
Exercise: What does the incrementation value in a 'for' loop determine?
Video class: do while loops - C++ Programming Tutorial #19 (PC / Mac 2015)04m
Exercise: What is the defining feature of a do-while loop?
Video class: Review of all Loops - C++ Programming Tutorial #20 (PC / Mac 2015)07m
Exercise: Which loop guarantees at least one iteration regardless of the condition?
Video class: Switch - C++ Programming Tutorial #21 (PC / Mac 2015)06m
Video class: and Logical Operator - C++ Programming Tutorial #22 (PC / Mac 2015)03m
Video class: 'or' Logical Operator - C++ Programming Tutorial #23 (PC / Mac 2015)03m
Video class: Default Parameters - C++ Programming Tutorial #24 (PC / Mac 2015)05m
Video class: Local and Global Variables - C++ Programming Tutorial #25 (PC / Mac 2015)06m
Video class: Function Overloading - C++ Programming Tutorial #26 (PC / Mac 2015)05m
Video class: Introduction to Arrays - C++ Programming Tutorial #27 (PC / Mac 2015)02m
Video class: Calculations with Arrays - C++ Programming Tutorial #28 (PC / Mac 2015)05m
Video class: Arrays as Parameters - C++ Programming Tutorial #29 (PC / Mac 2015)07m
Video class: Multidimensional Arrays - C++ Programming Tutorial #30 (PC / Mac 2015)07m
Video class: Pointers and Memory Addresses - C++ Programming Tutorial #31 (PC / Mac 2015)03m
Exercise: What is the memory address operator in C plus plus ?
Video class: Passing by Reference - C++ Programming Tutorial #32 (PC / Mac 2015)04m
Video class: Access Classes using Pointers - C++ Programming Tutorial #33 (PC / Mac 2015)05m
Video class: Destructors - C++ Programming Tutorial #34 (PC / Mac 2015)06m
Video class: Constant Variables - C++ Programming Tutorial #35 (PC / Mac 2015)01m
Video class: Recursion - C++ Programming Tutorial #36 (PC / Mac 2015)05m
Video class: Constant Objects and Functions - C++ Programming Tutorial #37 (PC / Mac 2015)05m
Video class: Member Initialization List - C++ Programming Tutorial #38 (PC / Mac 2015)06m
Video class: Composition - C++ Programming Tutorial #39 (PC / Mac 2015)15m
Video class: Friend Functions - C++ Programming Tutorial #40 (PC / Mac 2015)05m
Video class: Friend Classes - C++ Programming Tutorial #41 (PC / Mac 2015)04m
Video class: Inheritance - C++ Programming Tutorial #42 Part 1 (PC / Mac 2015)03m
Exercise: What is inheritance in C plus plus ?
Video class: Inheritance of Constructors/Destructors - C++ Programming Tutorial #42 Part 2 (PC / Mac 2015)06m
Video class: Polymorphism - C++ Programming Tutorial #43 (PC / Mac 2015)09m
Video class: Virtual Functions - C++ Programming Tutorial #44 (PC / Mac 2015)05m
Video class: Pure Virtual Functions and Abstract Classes - C++ Programming Tutorial #45 (PC / Mac 2015)03m
Video class: Function Template - C++ Programming Tutorial #46 (PC / Mac 2015)04m
Video class: Multiple Data-Type Function Templates - C++ Programming Tutorial #47 (PC / Mac 2015)04m
Video class: Class Templates - C++ Programming Tutorial #48 (PC / Mac 2015)08m
Video class: Multiple Class Templates - C++ Programming Tutorial #49 (PC / Mac 2015)06m
Video class: Creating Error Messages/Codes - C++ Programming Tutorial #50 (PC / Mac 2015)06m
Video class: Creating Files - C++ Programming Tutorial #51 (PC / Mac 2015)05m
Exercise: Which libraries below can be used to create files?
Video class: File Open Verification - C++ Programming Tutorial #52 (PC / Mac 2015)03m
Video class: Video Game Character Creation - C++ Programming Tutorial #53 (PC / Mac 2015)14m
Course comments: C++ as your first Programming Language
Gagan dehariya
awesome
shaily mishra
very good level of teaching skills
Murtaza Haider
man i just love this guy. he is putting so much effort into teaching us. looking forward to learn more and get command on c . appreciate you sir