Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
C++ Learning Path: From Basics to Advanced Projects
Rating: 3.6 out of 5(9 ratings)
34 students

C++ Learning Path: From Basics to Advanced Projects

Unlock the full potential of C++, covering everything from beginner fundamentals to advanced projects.
Last updated 11/2024
English
English [Auto],

What you'll learn

  • Core concepts of C++ programming, including syntax, variables, data types, and control flow.
  • Advanced topics like dynamic memory management, object-oriented programming, and polymorphism.
  • Practical skills in using C++ for graphics and data visualization.
  • Hands-on experience with projects that enhance your problem-solving and coding capabilities.
  • Techniques for writing efficient, well-structured, and maintainable code in C++.

Course content

6 sections118 lectures29h 47m total length
  • Introduction To The Course2:18

    Explore C++ for beginners, from setting up development environments and writing hello world to mastering variables, operators, control flow, arrays, pointers, references, and advanced topics like namespaces and casting.

  • The Absolute Basics1:55

    Learn basics: set up environment and explore c and c++. Declare and initialize variables, use operators, and build a hello world program that reads a and b and computes expressions.

  • Programming Languages22:12

    Explore the evolution of programming languages from machine code to high level languages. Compare machine language, assembly language, and high level languages, and learn how compilers and interpreters translate code.

  • Setting Up The Coding Environment9:42

    Install an integrated development environment (IDE) with a code editor, compiler, and linker; explore free options like Visual Studio Community 2017, Visual Studio Code, and Code Blocks.

  • About C And C13:21

    Trace the history of C and C++, from 1972's C by Dennis Ritchie at Bell Labs to modern C++ with object‑oriented features and game engine applications.

  • Hello World13:24

    Create a new Visual Studio 2017 console project and write a hello world program in C++ using iostream and cout, then build and run to see the executable.

  • Hello World Behind The Scenes14:33

    Explore how a simple hello world is compiled and linked, from editing in the code editor to producing the hello world executable, via object files and the linker.

  • Build Configuration13:25

    Understand build configurations in Visual Studio, including debug and release for x86, their impact on debugging, optimization, and output folders, and how to disable compiler extensions for pure C++ standards.

  • Compiler Warnings11:17

    Learn how the cpp compiler reports errors and warnings. It shows line numbers and descriptive messages, and you can adjust warning levels and treat warnings as errors with preprocessor directives.

  • Basic Data Handling23:28

    Master basic data handling in C++ by exploring variables, memory, and data types such as int, float, and double. Understand instantiation, runtime vs compile-time, and simple examples like hello world.

  • Multiple Types of Variable Assignments14:07

    Explore the different ways to assign variables in modern C++, including copy initialization, direct initialization, and uniform initialization, and understand when to use each.

  • Cout C in End l19:14

    Explore the iostream library in C++, using cout for output and cin for input. Learn insertion and extraction operators, and print with std::endl or backslash n, while initializing variables.

  • Variable Initialization Guidelines6:46

    Follow variable initialization guidelines in C++ by examining uninitialized local variables, undefined behavior, and why uniform initialization prevents garbage values and unpredictable results.

  • Variable Naming Convention15:32

    Learn modern C++17 variable naming conventions: avoid reserved keywords, follow identifier rules, choose camel case or underscores, and write readable, concise names.

  • Operators19:08

    Explore unary, binary, and ternary operators in C++, identify operands and operators, and examine literals, string literals, and basic operator concepts with practical examples.

  • Expressions in CPP8:06

    Explore how expressions in C++ combine literals, variables, and operators to yield a single value for initialization, and print results using std::cout.

  • Introduction to Basic Functions in C plus plus1:06

    Explore the syntax, declaration, and use of functions in c plus plus, including value-returning and void forms. Understand parameters, arguments, and local variable scope to effectively use functions.

  • Writing Our First Simple Program20:22

    Write your first simple C++ program that reads two integers a and b, initializes them, and computes and prints (a+b)^2, (a-b)^2, a^3+b^3, and a^3-b^3 using cout and cin.

  • Functions In C plus plus27:31

    Define and reuse user defined functions in C++, declare and implement them outside main, and understand function calls, the caller, and return types like void and int.

  • Functions Returning Values6:43

    Convert a void add numbers function into a value-returning function in C++, returning int and letting main print the result with std::cout.

  • Function Parameters and Arguments27:33

    Explore function parameters and arguments in C++, learn how return values can be passed as arguments, and understand the order of evaluation for modular coding.

  • Lifetime and Scope of A Variable21:18

    Explore the lifetime and scope of local variables, from their birth inside a c++ function to destruction at the end of the block, and how compile-time and runtime govern visibility.

  • Uses of A Function and Guidelines for Usage11:55

    Discover how functions improve organization, readability, and reusability, reduce complexity with modular, self-contained units, and apply guidelines like turning repeated statements into functions and one-task design.

  • Intro to Code File and Codes Formatting1:18

    Explore code file organization and formatting in c++, including whitespaces, forward declarations, multi-file cpp projects, the std namespace, preprocessor directives, header files, and include guards.

  • White Space In C29:00

    Explain how whitespace is ignored by the C++ compiler, with string literals as an exception, and outline common formatting styles, indentation practices, and Visual Studio auto-formatting.

  • Forward Declarations23:36

    Learn how forward declarations and function prototypes guarantee the compiler knows about functions before use, avoiding identifier not found errors and distinguishing declarations from definitions under the one definition rule.

  • Multiple Code Files14:39

    Learn how to manage multiple cpp files in a Visual Studio project, organize source and header folders, and use forward declarations to connect main.cpp with other cpp files.

  • Identifier Names7:21

    Explore how identifier names cause collisions in C++ and how the linker detects duplicate functions, with examples of cross-file definitions and the role of local scope.

  • The Std Namespace10:21

    Explore the std namespace and how C++ uses a dedicated namespace to avoid naming conflicts, with examples of std::cout and std::cin, plus the trade-offs of using the using directive.

  • Preprocessor Directives36:05

    Discover how the C++ preprocessor transforms code before compilation. Learn hash include, macros, object-like and function-like macros, and conditional compilation with ifdef, ifndef, and if0.

  • Header Files38:32

    Understand header files, including dot h and the separation of declarations in headers from definitions in cpp. Explore include semantics, the one-definition rule, and best header practices.

  • Preprocessor Directives For Header Files20:42

    Learn how header guards and include guards prevent duplicates when header files are included, addressing the one-definition rule, using #ifndef / #define / #endif, or #pragma once.

  • Simple Program Using Header Files18:05

    Learn to structure a C++ project with header files for binomial square and cube, driven by main.cpp, that takes two inputs and prints results using a print output module.

  • Intro to Variables and Constants1:37

    Explore integers, their types, and floating point variables for precision in C++. Understand scientific notation, the character data type, and constants with const and const expr for symbolic constants.

  • More on Integers39:52

    Explore C++ integers, their five basic types, signed versus unsigned, and how memory size affects range. Learn overflow behavior, integer division, and the size of operator returning size_t.

  • Float Variables45:12

    Explore floating point variables in C++, including float, double, and long double sizes and precision, scientific notation, rounding errors, and NaN and Inf handling.

  • Char Datatype44:46

    Learn how the C++ char datatype maps to ASCII, print and input characters, cast between char and int with static_cast, and explore escape sequences and different character types including Unicode.

  • Constants31:31

    Learn how const and constexpr define compile-time and runtime constants, replace macros with symbolic constants, and apply Newton's second law to a force calculation.

  • Intro to Program Logic Flow1:02

    Master program logic in C++ by using if, else if, and else to control flow, then explore loops (while, do while, for) and switch case statements.

  • If Else Statements9:07

    Demonstrates how if else statements drive the flow of logic in C++ by evaluating conditions, executing blocks, and using else if and else for multiple conditions.

  • Loops27:56

    Explore c++ loops, including while, do while, and for loops, with range-based for loops and practical examples like countdowns and user input, highlighting syntax, conditions, increments, and avoiding infinite loops.

  • Switch Case Statements7:37

    Explore the switch case statement as a compact alternative to if and else for fixed values. See how case, default, and break control flow with practical examples, including enumeration usage.

  • Arrays35:42

    Explore arrays in C++, from declaring and initializing zero-indexed arrays to accessing elements, working with multi-dimensional arrays, looping over them, and passing arrays to functions by address.

  • Pointer Part 110:59

    Learn how the address (ampersand) and dereferencing operators work, declare and initialize pointers, and explore their relationships with arrays, const, and pointers to pointers, including memory addresses and pointer arithmetic.

  • Pointer Part 211:18

    Explore pointers in C and C++ as a memory access tool. Use the address-of and dereference operators to access or modify the value stored at a pointer's address.

  • Pointer Part 311:04

    Explore how int, char, and double pointers store addresses, dereference to modify variables, and how pointers relate to arrays in C++, with practical examples of pointer declarations and assignments.

  • Pointer Part 47:31

    Compare arrays and pointers in c++. Declare an int array and an array pointer, then dereference and modify elements using the offset operator to access specific indices.

  • Pointer Part 55:33

    Master pointer basics by using the address of and dereferencing to access array elements, perform pointer arithmetic with array pointers, and understand valid pointer initialization and assignments.

  • Pointer Part 627:00

    Explore pointer arithmetic and constant access in C++. Learn how strings relate to pointers, and how to use pointers to pointers and pointers to functions.

Requirements

  • No prior programming experience is required, but familiarity with basic programming concepts is helpful.
  • A computer (Windows, Mac, or Linux) with an internet connection.

Description

Course Introduction

This course is designed to take you on a complete journey through the world of C++, starting from the absolute basics and progressing through to advanced topics and hands-on projects. Whether you're new to programming or looking to deepen your C++ knowledge, this course is structured to equip you with the skills and confidence to tackle real-world coding challenges. You'll explore C++ fundamentals, master intermediate and advanced concepts, and gain practical experience by building exciting projects like graphical applications and data visualizations.

Section-wise Breakdown

Section 1: Beginners C++ - C++ Fundamentals

In the first section, we start with the basics of C++ programming. You'll learn about the origins of C++ and the foundational principles of programming languages. We’ll guide you through setting up your coding environment, writing your first "Hello, World!" program, and understanding what's happening behind the scenes. You'll then explore data types, variables, and essential operators, along with best practices for naming conventions and code formatting. By the end of this section, you'll be comfortable writing basic C++ programs, using control flow statements like loops and conditionals, and working with arrays and pointers.

Section 2: Intermediate to Advanced C++

Building on the fundamentals, this section delves into more complex concepts. You'll learn about enumerations, type aliases, and data structures like structs and vectors. We’ll explore dynamic memory allocation, understand the differences between stack and heap memory, and dive into object-oriented programming (OOP) with classes, constructors, and inheritance. Advanced topics like polymorphism, recursion, and function overloading will also be covered. This section is designed to solidify your understanding of C++ and prepare you for more advanced applications.

Section 3: C++ Project #1 - Graphics: Creating A Scenery

Put your skills to the test with a fun and engaging project. In this section, you'll use the C++ graphics library to create a detailed scenery. You'll learn to draw mountains, plot sun rays, and build structures like houses, trees, and ponds. This project emphasizes the use of loops, functions, and conditional statements to create visually appealing graphical outputs, helping you develop a solid understanding of C++ graphics programming.

Section 4: C++ Project #2 - Pandemic Statistics Graph Plotting

This section focuses on data visualization using C++. You'll build a program to plot population statistics of different countries on a graph. From setting up the graphics environment to mapping data on a chart, you’ll gain hands-on experience in handling real-world data. This project covers accepting user inputs, drawing axes, and creating data plots, which are valuable skills for data analysis and visualization.

Section 5: C++ Project #3 - Creating Sales Charts With Data Entry

Learn to represent data graphically by creating sales charts. You'll work on building bar charts and pie charts from scratch using C++. This section covers everything from data entry to rendering colorful charts, enhancing your ability to visualize data effectively. By the end of this project, you'll have a complete understanding of how to use C++ for data-driven applications.

Section 6: C++ Project #4 - Organogram and Flowchart Application

In the final section, you'll dive into a project that involves creating a complex organogram using inheritance and advanced class concepts. You'll develop a program that structures an organizational chart, complete with base and derived classes, and visualize it using flowcharts. This project will test your knowledge of OOP, inheritance, and class hierarchies, bringing all the concepts you've learned throughout the course into one comprehensive application.

Course Conclusion

By the end of this course, you will have a solid foundation in C++ programming, ranging from fundamental concepts to advanced techniques. With hands-on experience in graphical projects and data visualization, you'll be well-prepared to tackle real-world programming challenges. Whether you're aiming for a career in software development or looking to enhance your coding skills, this course offers everything you need to succeed in C++.

Who this course is for:

  • Beginners who are new to programming and want to learn C++ from scratch.
  • Intermediate programmers looking to strengthen their C++ skills and explore advanced concepts.
  • Anyone interested in applying C++ for graphics programming, data visualization, and real-world projects.
  • Students, professionals, and hobbyists who want to build a strong foundation in C++ for academic or career growth.