OK, so just in case that first little introduction wasn't enough to convince you to take the course.
I wanted to go over another little slide show that talks a little bit more in detail about what the
course has to offer.
So once again, we don't assume anything discourse can be useful for someone who has no programming
experience at all, never written a line of code in their life or for experienced developers who do
know how to write code.
They do know about object oriented programming and even some data structures and algorithms.
But maybe they forget some important concepts that they want to brush up on for an interview that could
be anything like dynamic programming, certain tree traversal algorithms, graph traversal algorithms,
or maybe proving time complexity talking about Big O space complexity, things like that.
So it's really for anyone.
We also try not to leave anything out, so we don't only want to just have a course about writing code.
We also don't want to just talk about data structures and algorithms.
We want you to know what's going on behind the scenes.
So because of this, we talk about things like the compiler.
We talk about multiple debugger options.
So if you want to use a command line based debugger like GDB, we'll go over that.
We'll also go over an I.D., I.D. debugger like seamless debugger.
We will go over the binary and hexadecimal and even octal number systems so we can give you a solid
computer science base before you start programming.
And then we'll talk about some text editors, Mercedes as well.
So if you don't want to use some big, high gloss idea, you do not have to.
You can use a basic text editor like sublime text or voice code or atom, whatever you prefer.
And we'll even mention some things like maybe them or Emacs that you can use in the command line.
We'll talk about the command line fundamentals as well, so we'll open up bash and talk about navigating
the terminal and stuff like that, changing directories and, of course, compiling C++ code because
this course will be taught primarily in C++, and then we'll talk about computer memory layout as well.
It's not going to be a course completely on operating systems or anything like that, not talking about
page tables and all that good stuff.
But we will talk about Stacks.
You know, the call stack and the heap and stuff like that, and just virtual memory in general as well.
So we're often going to try to explain things in layman's terms.
So are there technical jargon is important for precisely explaining many concepts and we will go over
that as well.
We're going to first try and explain everything in a non-technical way in order to help it not go over
certain students heads.
So students who might not have a technical background can better understand the concept.
So like that first slide?
We don't really assume anything about your technical background, so we're going to try and explain
it in as much detail as possible and try not to use any terminology that you might not know unless we've
already introduced that.
So that is the goal.
So a high level overview of the course, we're going to start out with some fundamental things, so
that was like that binary and hex stuff that I was talking about to make a solid base for the programming
portion.
After that, the course has two main sections.
They're both taught using the C++ language, and that is a programming section and a data structures
and algorithms section.
So to break those two sections down, the programming section starts out with the fundamentals.
So we're talking like just primitive data types, functions, arrays, strings.
Then we'll get into just adding it all together with loops and things to and have some procedural program
at that point.
And then we'll talk about the object oriented programming paradigm.
So that will be like once we introduce classes, template instructs, things like that.
We'll go over polymorphism inheritance and encapsulation in the second section.
It's all of our data structures and our rhythms.
So we start off with some basic things like and lists, and then we go over an introduction to pick
own notation so you can at least just have a means to do a kind of informal analysis of the algorithms
that you go over in the rest of the course.
And then we will get into all of the essential data structures and algorithms.
So Tres Stacks Cuz keeps graphs traversing these graphs and trees.
And then after that, we will get into a more formal algorithm analysis.
So we'll be doing things like recurrence, relations and summations to more formally proven time complexity.
And then also capping it off with some algorithmic design strategies.
So this is where we get into a what's considered to be a little more difficult topic in algorithms and
interviews, which is dynamic programming.
And we will talk about that versus the greedy method and things like that.
So why do we use C++ might be thinking, well, you know, I want to be a web developer, I want to
use JavaScript and Python, and maybe I won't use Java or C sharp stuff like that.
And all these languages are great, but C++ is a really useful language for teaching important computer
science topics.
So although many do consider it to be a fairly high level language, it also allows for a slightly lower
level programming experience, if desired.
Remember, it is based off the sea language, so we can actually do some slightly lower level stuff
too, and start getting to think more about, you know, computer memory and managing it like that and
using pointers and things like that.
So it's very useful.
It's also not necessarily a purely object oriented programming language like Java, but we can, of
course, still do object oriented programming C++.
So it's really a great kind of jack of all trades language for learning, computer science and programming
topics because you can have a more fine grained level control or C++.
It is often used for a lot of engineering applications that require a lot of precision and speed.
So things like in the aerospace sector and industrial control systems, devices, things like that,
but it's not limited to that.
You know, some people might say, OK, well, yeah, it also is used in like game engines and things
like that, which is true.
That's a big part of C++, but it's also useful.
It has a very broad range of applications.
You can really use it for a ton of stuff, and it's a great language to use to transition to other languages.
Once you understand C++, I guarantee you can go ahead and pick up other languages very easily, like
Python if you want to pick that up, JavaScript.
You know, C-sharp Java.
All those will be very much like a lot easier to do than starting out with C++.
You will be able to transition quite easily.
And so if you're thinking, Hey, I just want to be a web developer, I don't necessarily need to use
any of this.
It still is a great course because everyone that programs should know about these important programming
concepts and doing it in C++ will give you a lot of skill as a programmer.
And of course, regardless of all that, data structures and algorithms are going to be helpful on their
own for all sorts of programming things, especially if you're going to do interviews with like phone
companies or any larger companies that really require a lot of like typing and whiteboarding of hard
problems in their interviews.
You know where you would need to practice Lee Code and hacker rank and stuff like that.
You know, data structures now rhythms.
That's what that's all about.
So how should you take this course?
You can take it with whatever paste you would like, but it is good if you don't let too much time elapse
between the lectures and coding practice to make sure that you are really maintaining and absorbing
all this knowledge.
Programming takes a lot of practice and dedication.
There's a ton of information to know and to learn about this.
In fact, you could just keep learning your entire life, and I feel like you wouldn't even touch the
tip of the iceberg with a lot of programming stuff.
So it may seem daunting at first, and if you encounter a wall, just remember that, you know, we
believe everyone is capable if they have the drive to succeed.
So if you are struggling, it doesn't mean that you don't belong here.
It doesn't mean that you're not a technical person or that you are not going to be a good program.
You just need to keep practicing and with practice, you'll get perfect, just like many other topics.
So if you have a drive to succeed in this course, then it will be a great course for you and you will
be able to use it and you'll be able to feel confident in job interviews and get whatever you're really
trying to get out of this course.
So just keep that in mind.
So with that, that's really all I have to say.
So hopefully, if you are on the fence, this helped you decide whether you want to take the course.
If so, then I will see you in the upcoming lectures.