When I take a course,
I always like to know what will be covered in that course,so I know what to expect.
In this video, I'd like to go over the curriculum for this course.
The curriculum has been developed in such a way
that students with little to no programming background
can get started programming quickly in c++.
C++ is a very complex language,
probably one of the most complex programming languages used today.
That doesn't mean that learning the basics should be impossible to grasp.
In fact, all programming languages provide the same general constructs
that we use to build programs.
This is a beginning modern c++ course.
There are many, many topics in c++
that are at an intermediate or advanced level.
I won't be covering those topics in this course.
My goal in this course is to teach the basics of c++
so that you can write c++ programs that solve problems.
More importantly, this course lays the foundation necessary to go forward
and learn more advanced c++ concepts.
This foundation will also allow you to read c++
code written by other programmers.
C++ frameworks are used everywhere.
For example, if you want to program games in c++ using the unreal engine,
then you'll have the background necessary to use their frameworks.
If you want to use the popular c++ boost libraries,
you'll be able to use them and understand many of their APIs.
Okay. So let's talk about the curriculum and what you can expect in this course.
We'll begin our c++ training by going over the CodeLite IDEs interface,
and writing a c++ program using CodeLite.
As we do this, we'll understand how to compile, build and run
a c++ program. I'll also talk a bit about some errors you may encounter.
I know what you're thinking. Gee, he's already talking about errors already.
I haven't even started learning to program yet and he's talking about errors.
Is this going to be that difficult?
Don't worry. The sooner we talk about errors,
kinds of errors, why they happen and how to fix them,
the sooner errors will become normal and expected.
I've seen students get turned off from programming because they get errors.
Expect the errors, fix them and move on.
Then we'll talk about the structure of a basic c++ program.
I'll explain pound include, namespaces, comments, the main function
cin and cout.
These are the elements that nearly every c++ program will have.
Then we'll talk about variables and constants and how to use them.
You can't write a c++ program that does much of anything,
unless it has variables and constants.
We'll go over how to declare them, use them, name them and much more.
We'll also discuss c++ basic types, which allow you to use integers,
floating point numbers, characters, and more.
Now that we know what variables are, we'll group a bunch of variables together into collection
of variables called an array.
Now we'll be storing and using multiple variables,
like a bunch of test scores or temperatures for the last seven days.
These collections are called arrays and vectors,
and we'll learn how to create them and use them.
We'll also learn how to use multidimensional structures,
so we can model things like grids, boards, and spreadsheets.
Then we'll learn about strings in c++.
Strings are collections of characters. Like my name Frank,
which is F-R-A-N-K.
Strings are used extensively in c++, and we'll go over the basics in this section.
In the following section, we'll learn how to write program statements.
These statements are made up of expressions.
We'll also go over some of the c++ operators like
plus, minus, multiply, divide and so forth.
At the end of this section, you'll be able to write c++ statements
that tell the computer what to do in order.
Now we get to the real powerful stuff, control flow.
It's nice to be able to write a bunch of statements one after the other.
But to really have power, we need to be able to make decisions and repeat things more than once.
This is control flow.
This will open up the world of programming, give you so much power.
In the next section, we'll learn how to write functions.
A function lets us group a bunch of statements into a single construct.
It helps us organize our code and think more abstractly.
Following functions, we'll talk about c++ pointers and references.
You may have heard horror stories about c++ pointers. Don't worry.
I'll walk you through how and why do you use them?
And you'll see the incredible power they give you over your hardware.
Finally, now that we know the basics of procedural programming in c++,
we'll dive into object-oriented programming or OOP.
OOP is awesome
and lets you model your program in terms of real-world objects.
C++ is after all an object-oriented language
and that's how we want to use it. Once we understand the basics of OOP,
we'll learn about operator overloading,
which allows us to define how the built-in c++ operators
can be defined so that they work with our own classes.
So they feel like they're part of the standard language.
Then we'll learn about inheritance and the power that it provides.
Imagine reusing existing code by inheriting what you need from it
and just modifying the parts that you need to solve your problem.
We'll wrap up OOP with polymorphism.
Polymorphism allows your program to determine its behavior at runtime
and really lets you think in the general, so you don't have to be concerned about details.
The last several sections of the course are slightly more advanced,
but they're so important that I wanted to include them in this course.
The first is smart pointers.
We'll talk a lot about c++ pointers
since every c++ programmer really needs to understand raw pointers.
But c++ also provides smart pointers,
which make memory management much simpler and make your program safer to use.
Then we'll talk about the c++ standard template library.
C++ provides a standard c++ template library
with a rich set of containers, iterators and algorithms that are ready to use.
Why reinvent the wheel when you can use the wheels you have?
I'd go over the basic STL elements
so that you can put them together and solve complex problems.
We'll finish off the course by talking about input and output to files and exception handling.
Exception handling allows you to deal with exceptional conditions
that might occur in your program.
What if a file doesn't exist or you try an operation and it fails?
It's important to understand how to write your code
so that it's aware that something has gone wrong so you can recover from it.
Wow, that's a lot of material.
Some of these topics can be covered by an entire course dedicated just to them.
But don't worry,
we aren't going to get into every possible option
or explain every construct from a theoretical computer science perspective.
This course is practical and it's about learning beginning c++,
so that you can further explore this amazing programming language
and use it in real-world applications.
In the next videos, I’ll briefly discuss the challenge exercises
and the quizzes that are included in the core sections.