
Develop four core skills: C++ syntax mastery, problem solving with computational challenges, six project-building exercises of varying scope, and object-oriented design through principles and patterns.
Practice and homework drive skill development in C++ 17, and this lecture guides you through tackling hard problems, reviewing concise solutions, and persisting through failures to progress.
Begin coding your first program in C++ by building a simple calculator, learn syntax rules, use the compiler, and print output with cout while including iostream and cmath.
Install CodeBlocks on Windows by downloading the mingw binary release for your system (64-bit or 32-bit), then add the MinGW bin directory to your system path and restart if needed.
Install Eclipse on Linux using the Eclipse installer or Fedora package, choose C++ and CDT, and troubleshoot with Google and StackOverFlow when errors occur.
Master printing in c++ by tracing the code cycle from writing and compiling to running, identify compiler and run-time errors, and format output with cout, endl, and \n.
Explore printing in C++ with cout, return concepts, and comments; examine integers, strings, and division behavior, plus overflow, and practice code tracing to predict output.
Explore common C++ errors, including missing semicolons and wrong extraction operators, undefined main and cout outside braces, and runtime issues like division by zero and integer overflow or underflow.
practice three basic c++ 17 programs: arithmetic on two numbers, student data with an exam average, and summing eight integers by even and odd positions while testing edge cases.
Trace the Fibonacci sequence output and learn how to swap two variables using a temporary holder in C++ as part of homework 2.
Tackle three hard C++ 17 exercises: swap three numbers, pick a formula based on a sign indicator, and compute the sum from one to n with an efficient formula.
Explore binary and unary operators in C++, examine arithmetic operators, expressions, operands, and the not operator, and learn how precedence and unary minus shape evaluation with examples like x+2*y.
Learn how division works in C++: integer division truncates fractions, while doubles preserve them. See casting to int, dividing by 10 to remove digits, and the ascii ranges for characters.
Practice modulus and division: detect even numbers with %2, divide by two, and use %10; read to sum last three digits or print fourth from the right (zero if missing).
Explore division and modulus techniques in c++17 to check evenness with modulo two, handle negatives, and sum the last three digits using repeated modulo ten and division by ten.
Explore division and modulus by building a program that prints 100 if even, 7 if odd, and convert days to years, months, and days using fixed 360-day years.
Learn how if statements drive C++ program flow, executing code when conditions are true, using braces for complex logic, and recognize local scope and mistakes like assignment instead of comparison.
Practice selection by building a simple calculator that reads two numbers and an operation, uses if-else for +, -, *, /, and explores minimum finding with a temporary answer variable.
Explore how to find the maximum less than 100 while handling potential negative values, improve initialization with a valid starting point, and count numbers using booleans and conditional logic.
Learn to find the maximum of ten values using two variables by reading the first number as the initial result and updating it with each input.
Explore while loops in C++ to perform repetitive tasks, using initialization, condition, and incrementation, and control flow with break and continue, including infinite loops and summing.
Develop proficiency with while loops by listing multiples of 3 up to x, computing powers by repeated multiplication, counting digits with division, and handling edge cases in nested loops.
Master four while-loop challenges: print a diamond pattern, identify numbers divisible by eight or by four and three, and list n multiples of 3 not 4 with test-case minima.
Master for loops by solving A, B, C, D, E with A+B=C+D for numbers 1–200. Reduce to three loops and implement a prime check with negatives and 1 as non-prime.
Explore computing the maximum, first maximum, and second maximum in an array of distinct numbers, and implement a single-loop approach for the maximum pair sum.
Learn to reverse a 1D array in place by swapping symmetric elements. Implement a frequency array to find the most frequent number efficiently, avoiding nested loops.
Master the four critical skills using C++ 17 by solving problems with efficient array handling, palindrome checks via half-array traversal, and optimized smallest-pair strategies, contrasting brute force with smarter approaches.
Master six medium c++ 17 challenges: find smallest three in an array, last occurrences for queries, most frequent value, digit frequency, preserve order of uniques, sorting using 500 max-value hint.
Apply a shift trick to handle negative numbers, building a frequency matrix to find the most frequent value. Compute digit frequencies by iterating numbers and extracting digits with mod ten.
Leverage the count sort approach to sort numbers up to five hundred by counting frequencies with a frequency array, then print each value according to its count.
Explore a simulation approach to the Josephus problem using a marking array, zero-based indexing, and modulo cycling to remove every k-th person, with dynamic remaining_alive handling.
Practice char arrays by interleaving two strings, print remaining chars without new allocations, compute lowercase frequencies with a frequency array, and build a map for encoding and decoding.
Solve the subsequence problem by iterating the big string and matching against the small string, incrementing on a match until the subsequence is found.
Learn to compare two strings lexicographically in C++17 by iterating characters, tracking a smaller flag, handling prefix cases, and printing the smaller string.
Demonstrates adding two numbers by iterating from the string end, handling carries and digits from right to left. Explains simple carry logic and efficiency limits for large inputs.
Develop a menu-driven employee management mini project in C++17, using parallel arrays for name, age, and salary, with lazy deletion, range filtering, and update operations.
Practice 1 covers reading matrices, locating the maximum value's last occurrence in 2d arrays, comparing 1d and 2d max, and computing diagonal sums, last-row/last-column sums, plus swapping columns.
Tackle four medium to hard C++17 challenges: count primes in submatrices, identify mountains, simulate a wrapping robot, and convert between 3D and 1D arrays.
Almost all other courses focus on knowledge. In this course, we focus on 4 critical skills.
Overall:
The course covers basic to advanced modern C++ syntax. Beginners in C++ will learn a lot!
The course helps you master the 4 most important skills for a programmer
Programming skills
Problem-solving skills: rarely covered by other courses
Project building skills: partially covered by other courses
Design skills: rarely covered by other courses
7+ times practice & homework compare to other courses + 6 projects
Special Teaching style: iterative, easy, and short
This is an English Course only. 1/3 Course now has Manual English subtitles. Remaining under-progress.
Content
Basic to advanced modern C++.
Fundamentals: Variables, Loops, Control Flow, Functions, Recursive Functions, Arrays
Advanced Topics: Pointers, STL, Templates, Headers, and Includes, Exception Handling, Compilation Process, Debugging
Object-Oriented Programming (OOP): Classes, Objects, Inheritance, Polymorphism, Operator Overloading
Modern Topics in C++11/C++14/C++17:
Move Semantics, Perfect Forwarding, Variadic Template, Folding expressions, Smart Pointers, Lambda Expressions, Wrappers (Optional, Variant, Any), Uniform initialization, noexcept, Structured Binding, Nested namespaces, misc.
OOP: Member initializer, Defaulted and Deleted Functions, Delegating constructors, Inheriting Constructors
STL: Forward list, Initializer list, Array, Unordered containers
Design: Several principles and patterns are embedded in the homework & projects
A huge set of Quizzes, Practice, Homework, and Projects
2 styles of homework: Algorithmic (problem-solving) and applications
Several software design concerns are embedded in the homework.
So you are getting introduced to Software Engineering & Design Patterns
Several quizzes to master the concepts
Clarification: The core intentions of this course to provide very strong introduction to C++. Specifically up to the 6th project. After the last project, the course introduces some further modern C++ syntax (no quizzes/homework in this part). If you are new to C++, there is no course that competes with this one. But, if you are expert or target working with C++ in the market, you will need to good deeper after this course. A useful reference is "C++17 - The Complete Guide" book. Not that, this course provides some C++17 coverage but not all of it. However, the course provides pretty good coverage for C++11/14. Please consider the table of content if you are not new to C++ to satisfy your expectations.
Building Skills: Practice, Homework, and Projects
One unique feature in this course is my education strategy:
Explain, Administrate & Challenge
Each video smoothly explains a simple concept(s)
Typically followed by easy to medium practice to administrate the concept
Then typically followed by an easy-medium-hard set of homework questions to challenge you
Extensive homework from easy to medium to hard to help to build the skills.
Most of the practice/homework questions are unique in this course
Programming questions are mainly from my competitive programming experience
OOP questions are mostly invented to achieve several goals:
Mastering the OOP concepts
Enforcing a lot of design heuristics & OOD
Preparing you for design principles and patterns
Small-to-large set of projects to build up project building and design skills
Solutions to all of them.
By the end of the journey
Solid understanding of programming concepts using C++
Mastering the target 4 skills
With the administered problem-solving skills
You can start competitive programming smoothly in Div2-A/B Codeforces
Smooth start in Data Structure course
Smooth start in Algorithms course
With the administered project-building and design skills
Smooth start in Software Engineering course
Later, smooth start in one of the technology tracks in frontend or backend
More career options such as games or embedded development.
Don't miss such a unique learning experience!!