
An overview of useful info for the course.
A video focused on the pros and cons of learning C++.
This video will focus on downloading and setting up the VisualStudio Integrated Development Environment (IDE).
NOTE: There are many IDEs out there with all having the same results as VisualStudio, so if for whatever reason you are having issues with VisualStudio, there are alternatives that will do just as well.
For the first lesson on C++, we are going to be having a look at Variables.
In this lecture, you will learn the following:
- What are Variables.
- How and why do we use them.
- Explore the different types of variables available in C++.
This video will focus on how we can capture user input from the keyboard, as well as output data to the user.
We will then combine what we have learned thus far to create our very first C++ program.
For this lecture, we will be extending our existing C++ program written in the previous lecture to include some math calculations whilst also learning how to utilize the various Build-In Operators available in C++.
As of now, our C++ program can receive user input that gets stored into variables, perform several calculations on said variables, and output the result.
To spice things up and make things less predictable, we are going to be learning and using condition statements in our existing code to output different results based on the input received by the user.
This lecture will focus on condition statements and logical conditions.
Building upon the previous lecture, this lecture will take a deeper look into conditional statements and adapt existing conditional statements of our C++ program to work more efficiently.
For our last lecture on conditional statements, we are going to have a look at an alternative to the previous condition statements explored in the previous lectures which is called the Switch statement.
We will be comparing the condition statements explored thus far and see the best usage scenarios for each one.
Let's quickly review what we have discussed in this section, along with more examples to ensure we are ready to move on to more complicated concepts.
For this lecture, we are going to be using everything that we have learned thus far to write a script to solve a given task.
Now that we covered some of the basic concepts of C++, let's have a look at core functionalities often used in C++, starting with loops and more specifically, the for loop.
Enough with looping over loops, let's have a look at something a little different. This lecture will focus on understanding what a scope/context of a code is.
C++ usually offers multiple ways to achieve a task, and the same goes for loops. In this video, we are going to have a look at another type of loop which is the while loop.
This will be the final lecture on loops, and we are going to be having a look at an alternative method of the while loop which is the do while loop.
This video will focus on understanding what are data structures, why are they so important in programming, and how to use them.
We are going to be having a look at one of the most commonly used data structures which is the array data structure.
There are many data structures available in C++, each with its usage, so learning the main data structures in C++ and how to use them is mandatory. This lecture will focus on another data structure which is called Queue.
Carrying on with exploring the various data structures available, we are going to be having a look at the stack data structure.
For the last lecture focusing on data structures, we are going to be having a look at a more versatile and flexible data structure that is called the vector.
Let's recap everything we have learned thus far before looking into some more examples and finishing off the section with some tests/assignments
Let's look into completing a programming task utilizing the material taught within section 3.
To start this section, we will be looking into what are functions, how to use them, and why it's important to utilize them often in your code.
Carrying on with learning about functions, this lecture covers additional possibilities with using functions.
This lecture will cover more ways to utilize functions and recap everything taught regarding functions.
As we are slowly getting into more complex concepts of C++, it's time to learn about structs and how to use them.
This lecture will focus on the common functionalities used within structs, as well as an alternative way of creating a struct.
This lecture will focus on applying the material taught in the previous lectures to our own examples.
C++ (Originally named C with Classes) is all about Object Oriented Programming (OOP), which is achieved through using classes. This video will be an introduction to classes and how to use them.
A common practice within C++ and the usage of classes is utilizing getter and setter functions within classes to get information contained within the class, or set information to a given value. This lecture will focus on how to use said functions.
This lecture will focus on how to use class inheritance within C++. Inheritance is a key aspect of object-oriented programming and we will be covering various examples of how it's used.
As we approach the end of section 3, we will revisit everything taught during this section and solidify the knowledge learned.
To start off section 4, we are going to be looking into cpp and header files in more detail, discussing how they are used and in which ways we should utilize them to organize the structure of our code.
Now that we had a look at header files, we are going to delve into how to use multiple files within a project, address the #include lines we have been using throughout the course, and understand the different ways we can use include in our code.
When we run our program, a compiler processes the code provided for us to create the final product that we see on our screens. This lecture will take a peek at how the compiler works and appreciate the hard work it does for us.
When writing code, you will often find yourself dealing with annoying bugs or unexpected behavior that you will need to resolve to make your code work properly, and sometimes doing so can be a challenging task. Luckily, there are some ways to make debugging less frustrating, and this lecture will focus on the most common ways to debug your code.
Carrying on with debugging techniques, we are going to be having a look at what are exceptions, how we can use them to deal with issues that our code may encounter, and more.
Let's learn ways to manipulate the flow of our code using keywords available in C++.
This lecture will focus on the keyword const, the ways we can use it, and how it can improve the quality and readability of our code.
We have been including the line "using namespace std;" in our code throughout the course, but never address why. For this lecture, we are going to be focusing on what exactly using namespace std does, and what exactly are namespaces.
A recap of everything discussed in this section.
As mentioned many times throughout the course, making code readable and easily understandable is important in the programming world. In this lecture, we are going to learn about enums and how they are used to make our data more readable.
Generating random numbers in code is a common functionality that is used for various purposes, including generating odds (think throwing dice, flipping a coin), randomizing outcomes of code, etc. We are going to be having a look at how random numbers are generated, and how we can parameterize and use them as we like in our code.
Using files enables us to store information from our code and view/reuse it later on after our programs stops running. This lecture will cover the basics of file handling, showing how to read and write on text files.
As you learn more about C++ and try to tackle harder tasks, there will be times that one-dimensional data structures will not be sufficient to store the data you need. This lecture will focus on how we can use multi-dimensional arrays to store our data.
Now that we know about multi-dimensional arrays, we need a way to use and access them. Here is where nested loops come in place. This lecture will focus on how we can use nested loops in our code.
Memory management is one of the key things that differentiate C++ from other programming languages. One of the ways to deal with memory in C++ is pointers. Pointers can be confusing and complicated for beginners thus this lecture will be an introduction to how they work and how one can use them in simple programs.
A recap of everything discussed during this section.
A C++ programming beginner course teaching you the core concepts of C++ from beginner to advanced.
No prior programming knowledge is required to join the course as it is made for complete beginners.
The course will introduce you to the fundamentals of C++ in detail and slowly build to more advanced concepts of C++.
Lectures have a straight-to-the-point approach and fast-paced style, whilst including thorough explanations of materials taught and examples to ensure you can keep up with the structure of the course.
Programming is all about practice and with that in mind, assignments, exercises, and tests are given out to students to complete and put their knowledge to the test. There is no pressure or time limit for the tests and are not included to encourage students to practice and write code themselves.
By the end of the course, students will have various small programs written with the guidance of the instructor and by themselves which they can build upon as their own.
Who is the instructor?
My name is Nate and I have been working with C++ for about a decade now.
My profession (Game developer/Game programmer) involves working closely with the C++ language to build large-scale projects for games, tools, plugins, etc. I use C++ on a daily basis and have gained a deeper understanding of how the language works, what should be used when writing code, and what software companies look for when hiring new programmers.
I have been teaching programming and game development both in person and online for the past two years.
My style of teaching is straight-to-the-point fast-paced lectures as I hate people's time, using many examples and external documentation to give students as many resources as I can to speed up their learning journey.
I make myself always available to answer questions and discuss with students.
What is included in the course?
The topics and material of lectures for the course were carefully chosen based on what's most commonly used in the industry and what skills and knowledge software companies are looking for in new programmers during the hiring stage.
The material will give students a strong fundamental knowledge of C++, exploring various concepts commonly used when using the language, and a look into more advanced usages of the language.
The course includes 45 lectures, 6 assignments, and 2 tests. Each lecture discusses a new topic that is explained in detail and with many examples. Assignments and tests are only included to ensure you get the necessary practice to be a confident programmer. They are not meant to stress you in any way, nor are they going to be graded (there is no pass/failed).
Why C++?
Efficiency: C++ excels in performance, offering efficient memory manipulation for faster, resource-optimized programs.
Control: Developers have unprecedented control over hardware, making it ideal for speed-critical applications.
Cross-Platform Flexibility: C++ facilitates seamless cross-platform development.
Universal Language: Known as a "general-purpose" language, C++ handles a wide spectrum of programming tasks.
Modularity: Supporting Object-Oriented Programming, C++ fosters modular and organized code structures.
C++ evolves with modern demands, ensuring relevance and adaptability for years to come.
Career Catalyst: C++ proficiency is a sought-after skill, unlocking diverse job opportunities and career advancement.
Real-World Applications:
Gaming Development: C++ is the backbone of the gaming industry, powering popular titles and delivering immersive experiences.
Web Browsers: Many browsers, including Chrome and Firefox, rely on C++ for their core functionalities.
Embedded Systems: C++ is a key player in embedded systems, driving the functionality of devices like smart appliances and IoT devices.
System Software: Operating systems and system-level software often leverage C++ for its efficiency and control.