
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Discover how the course structures content into three difficulty levels across chapters. Experience how each chapter blends basics, theory, practical applications, and progressively harder problems in algorithms.
Install Visual Studio to begin coding in C++ for this course. Select desktop development with C++, install, and launch Visual Studio to verify the setup.
Visual Studio downloads link: https://visualstudio.microsoft.com/downloads/
Explore a basic c++ program structure: include iostream for input and output, the main function as entry point, and using the std namespace for cout and cin.
Download the lecture archive, extract it, and double-click the Visual Studio solution file to open your C/C++ project. Press F5 to run the local Windows debugger and test the code.
Master keyboard input and output handling by printing a variable with cout and endline, and reading values from the keyboard into a variable to verify the input.
Master file input and output in C++, using the fstream library to read from file one.in and write to file two.out, with the program creating the output file.
Explore memory blocks behind code, including executable text, raw data, and global data, then illuminate stack and heap dynamics, pointers, and dynamic allocation with examples.
Learn to compute the sum of an integer's digits using div ten and mod ten, iterating with a while loop until the value becomes zero, with illustrative C++ examples.
Learn to read, write, and manipulate values in arrays and vectors using a modular C++ vector approach, including allocating memory, populating elements, printing them, and deleting memory.
Learn to read a length and its vector from keyboard, compute the sum of the elements with a for loop, initializing sum to zero, and print the final result.
Explore how binary search finds a target value in a sorted array by repeatedly halving the search range, with iterative and recursive implementations, achieving O(log n) time.
Explore matrices as two-dimensional arrays with rows and columns, learn matrix coordinates and element-wise addition and multiplication, and review initialization techniques to store and move data efficiently.
Learn to declare, input, print, and manage memory for two-dimensional matrices in C and C++, using static and dynamic allocation with a double pointer and a create matrix function.
Learn how to sum the main diagonal and the second diagonal of square matrices, using efficient row and column patterns and a single-loop approach.
Discover Lee's algorithm for maze routing using a matrix version and breadth-first search to find the optimal path amid obstacles from a start to an end point.
Character strings in C and C++ are introduced as character arrays and vectors. Learn how C uses pointers and the string library, while C++ relies on the std::string class.
Learn how to manage strings in C by declaring character arrays or pointers and allocating memory. Practice string copy, string length, and string concatenate with strcat using hello world examples.
Learn to determine if a string is a palindrome by comparing the first half with the reversed second half, using a for loop and length-1-index checks.
Learn to find the longest palindromic substring by generating all substrings and checking for palindromes, then compare lengths. This easy approach runs in O(n^3) time.
Apply dynamic programming to find the longest palindromic substring using a boolean matrix, analyze base cases of length 1 and 2, and expand using symmetry for O(n^2) time.
Explore the longest palindromic substring with Manacher's algorithm, transforming the string by inserting separators to handle odd palindromes, using a palindrome-length vector and left-right borders for linear time.
Explore singly linked lists as unidirectional data structures built from nodes with data and a next pointer, using the head to traverse until a null pointer marks end in C++.
Declare and create a basic singly linked list in C++, using struct node or typedef, with an integer value and a next pointer, allocated dynamically.
Learn to create a singly linked list by allocating memory for nodes, linking them with next pointers, and maintaining first and last nodes while implementing traversal and print functionality.
Find the middle element of a singly linked list using a slow and fast pointer in a single traversal, handling edge cases and even or odd lengths.
Implement Floyd's cycle detection in a singly linked list with a slow and a fast pointer, returning true on loop detection and false on a normal list.
Apply Floyd's algorithm to remove a loop in a singly linked list by counting loop nodes and using two pointers to locate the loop's first node, then null-terminate.
Implement Floyd's algorithm to remove a loop in a singly linked list by counting loop nodes, using two pointers, and setting the last node to null.
Explore stacks, a linear data structure with last in, first out behavior, using push and pop to access the top item. It introduces a singly linked list implementation in code.
Learn to implement a stack as a linked list, with push, pop, and print operations, manage memory to avoid leaks, and handle empty stack cases.
This lecture introduces queues as a first in, first out data structure, contrasts them with stacks, and covers adding at the rear and removing from the front using pointers.
Explore the tree data structure as a hierarchical collection of nodes connected by edges, with a root and leaves, and learn binary trees, levels, height, and null pointers.
Create a binary tree in c++ by defining nodes with left and right pointers, setting the root to seven, and linking leaves while preparing three traversal methods for later videos.
Explore preorder traversal of a binary tree, visiting root first, then left subtree, then right subtree, implemented recursively and demonstrated with sample output.
Demonstrates postorder traversal of a binary tree by visiting the left subtree, then the right subtree, and finally the root; shows output and code implementation.
Learn to extract leaf nodes from a binary tree using a preorder traversal, checking for leaves (left and right are null), printing values, and recursively processing the tree.
Recap key topics from data types, memory, trees, binary search, vectors, palindrome strings, matrices, and parentheses problems, with focus on implementation and algorithmic complexity.
Welcome to the ultimate programming journey!
Whether you're a complete beginner eager to dive into the world of coding or an experienced developer looking to refine your skills, our comprehensive masterclass, "C/C++ Programming, Fundamental Algorithms & Data Structures Masterclass" is your gateway to programming excellence.
Unlock the Power of C and C++:
In the ever-evolving landscape of software development, C and C++ remain foundational pillars. These versatile languages are the building blocks of modern technology, used in everything from system-level programming to game development and beyond. With our expert-led masterclass, you'll harness the raw power of C and C++, gaining the knowledge and confidence to create exceptional software solutions.
What You'll Learn:
The C/C++ Programming Languages Foundation
Lay the groundwork for your programming journey. Discover the core principles of C and C++, understand variables, data types, and control structures, and embark on your coding odyssey from the very beginning.
Data Structures and Memory Manipulation Techniques
Elevate your skills to the next level. Dive into advanced features, tackle data structures, and explore problem-solving techniques that will set you apart in the world of programming.
Fundamental and Advanced Algorithms
Conquer the realm of intricate algorithms and advanced C/C++ techniques. Become a master of software optimization, competitive programming, and complex problem-solving.
Why Choose Our Course?
Expert Guidance
Learn from dedicated instructors with years of industry experience. Our experts will guide you through practical examples, real-world projects and industry insights, ensuring that you not only learn but thrive in the world of programming.
Versatile Skills
Gain algorithmic thinking, problem-solving and pattern recognition skills that are universally in demand. Whether you dream of creating cutting-edge applications, optimizing critical systems, or excelling in competitive programming, our course equips you for success.
Career Opportunities
The demand for C and C++ programmers is consistently high, with lucrative career opportunities across industries. With the skills you'll acquire in this course, you'll be well-prepared to embark on a rewarding and well-compensated career journey.
Join Our Community!
By enrolling in "Mastering C and C++: From Basics to Advanced Algorithms," you're not just accessing a course; you're joining a community of passionate learners dedicated to excellence in programming.
Are you ready to unlock your full coding potential and chart your path to success? Enroll now and let's embark on this incredible journey together!