The Complete C Course with over 50 easy to follow projects built using C on Visual Studio
The easiest and most comprehensive way to learn and master C programming at your own pace. This course will not only teach you to master C language from the ground up, but it will also make you understand why we do things the way we do them in our code and what's the best way to write efficient, simple and elegant code. .
You will learn everything from programming fundamentals all the way to the most complex parts like pointers, memory management, string manipulation,File IO and much more.
The Complete C Course with over 50 easy to follow projects built using C on Visual Studio
The easiest and most comprehensive way to learn and master C programming at your own pace. This course will not only teach you to master C language from the ground up, but it will also make you understand why we do things the way we do them in our code and what's the best way to write efficient, simple and elegant code. .
You will learn everything from programming fundamentals all the way to the most complex parts like pointers, memory management, string manipulation,File IO and much more.
C is one of the most important of all programming languages. It is used to program desktop applications, compilers, tools and utilities and even hardware devices. The C language is fast and efficient – but it can be hard to learn. Unless you use this course. This course begins with a gentle introduction to C but quickly moves on to explain some of its most confusing features: everything from C's 'scoping' rules to the curious connection between arrays and memory addresses. By the end of the course you will have a deep understanding both of the C language itself and also of the underlying 'architecture' of your computer.
In this course, we'll explore the C programming language from the ground up. We'll begin with a brief section on computer basics followed by a Hello world program in C and a walk-through to understand its elements and to dissect it.
You will be introduced to the main elements of C like data types, operators, arrays, strings, pointers...etc. We will cover
I have dedicated entire sections for pointers, arrays and strings. This course has the most extensive details on how an why we need pointers and how to avid pointer related gotchas. I guarantee you will not find any other course that covers pointers in this depth with easy to understand and follow examples like this course.
There is even a full section on mastering Visual Studio included here for free so you can master using it for C/C++ and even C# as well as Visual Basic.
This course will help you learn and master C language and become a professional programmer on your own pace by watching me as I introduce you to the concepts and fundamentals of programming and writing efficient code in C with easy to follow lectures that are full of hands-on practices and coding.
During this course I will share with you the tips and tricks of the trade that I learned throughout my 20+ years of professional career as a software engineer.
I will teach you C language and programming from the ground up as I assume you have no prior programming experience. I have included sections for people who have never programmed before, but for those who are already programming, they can either watch them to refresh on some fundamentals or simply chose to skip them altogether.
If you want to become a professional software developer then search no more, you have found the right course.
Why learn C?
C has been around for over 30 years and it is not going anywhere. Chances are you're going to run into code already written in C or you may need to interface with code that was written in C whether you're programming in C++, Java, Python, PHP, Ruby, Javascript, C# or VB.NET
C Knowledge is important as it exposes you more to the hardware and you learn how memory works which helps you write more efficient and more optimized code
C makes you a better Java, Python, Ruby or even C# programmer.
C is also good for game development for performance reasons as well as OS level programming
C code is portable, so you can write cross-platform applications once you master it
Even though I chose Visual Studio on Windows to teach you C programming, the concepts and ideas you learn here are portable and can be applied to any other platform, IDE or OS with little or no effort at all.
Why Visual Studio?
I think Visual Studio is one of the best IDEs for programmers and I have dedicated several lectures especially to mastering Visual Studio and I share many tips and tricks that will help you customize it and get comfortable with it in no time.
If you are serious about becoming a professional software engineer or programmer, then this you MUST consider this course.
What you will learn:
Who should take the course?
Everyone.
This course is structured in a way that ANYONE can simply benefit from it.
If you answered YES to ANY of these questions then this course is for you.
What are the requirements?
What am I going to get from this course?
So go ahead and .
""
.
See you inside soon.
Welcome to this course and I am hoping this will help you jump start your career as a software engineer if you have never programmed before and I also hope this can be a great resource for everyone to take their skills to the next level.
Congratulations for taking the first step to enroll in this course and I cannot wait to congratulate you on finishing it as soon as your time permits it!
Best of luck!
-Mohammad.
I have been a professional Windows developer using Microsoft stack since 1995. I used to teach C/C++ as well as VB since 1997 as part-time while working full time as a programmer. I obtained experience from large software companies like Microsoft where I spent 9 years as a software engineer and learned from the smartest people in the industry. I worked for other companies including Citrix, LEAD Technologies and many more. I have a passion for learning to program and love to share my experience with other, so I hope you find my approach suitable and engaging for you!
This lecture will give you a quick overview of what we will cover throughout this course...
Please download the attached zipped file that contains source code for all the projects that we will be building during this course.
We will cover the goal of this section, topics to be discussed and the target audience.
This section is for absolute beginners, so if you have a background in computer science or you have programmed in another language, you can skip this section.
We will learn the role of CPU and its components and also learn about the role of GPU and touch base on differences between 32-bit and 64-bit processors as well as Operating Systems
In this lecture, we will learn the different types of memory, physical and virtual addressing and also discuss secondary storage (HDD & SSD)
In this lecture we will cover different types of software and the role of OS and its impact on our programs.
We will cover the definition of a programming language and the different types of languages that are important and understand difference between compiled versus interpreted languages
The goal of this lecture is for students to understand the meaning of a programming language and learn about the different types of languages and their use and how they look like...etc.
We will also see where C sits in between programming languages
In this lecture we will cover how C language was created and go over the different versions of C standards available and understand differences between them.
You will understand what versions of C are available and what standards mean and which one we will be using in our course.
Computer Basics
In this lecture, I will show you how to download visual studio 2015 even after the release of Visual Studio 2017.
NOTE: You can also download the attached bootstrap installer that I downloaded from Microsoft website for you.
In this lecture, I will walk you through the installation and configuration of Visual Studio 2015.
We will learn how to write then compile and run our first C program using command-line tools
You will learn how to write your first C program then compile it and run it using Visual C compiler on the command prompt.
In this lecture, I will show you a slightly easier and different way to quickly build and run a C program from the command line by launching the "Developer Command Prompt for VS2015" and running the compiler (CL.EXE) from the command line.
You will learn an easier and slight faster way to build and compile C programs from the command prompt.
In this lecture we will learn how to write then compile and run our first C program using Visual Studio IDE
You will learn how to write your first C program then compile it and run it from within Visual Studio IDE
NOTE: As of Visual Studio 2017 version 15.3 and higher, the steps have been changed slightly, please checkout my VS 2017 version 15.3 lecture on how to create a hello world program using that version of Visual Studio!
In this lecture, I will show you how to create a "Hello, World" program after Microsoft made some changes to Visual Studio 2017 version 15.3 and changed the user interface a bit. If you use older versions of Visual Studio, then you can skip this lecture.
In this lecture go over what we learned in this section and to reflect on what we did in the last 3-4 lectures so that we get a better understanding of it and touch base on some key concepts and iterate over some important points..
By the end of this lecture, you should feel more confident to try out a C program from scratch by yourself :)
Understanding Your First C Program
Visual Studio Integrated Development Environment (IDE) offers a set of tools that help you write and modify the code for your programs, and also detect and correct errors in your programs.
In this section we will go over:
•A quick tour of the Integrated Development Environment
•Using the menus & graphical elements of Visual Studio IDE
•Working with Projects and Solutions
You will become more familiar and more comfortable with Visual Studio IDE by the end of this section
This is a quick overview of the start page to understand what it does and how to use it.
In this lecture we will go over the file menu and learn what it does and try out some of its features like loading projects, closing a file and reopening it...etc.
In this lecture we look at some of the important items on the edit menu and learn how to use Undo/Redo as well as the clipboard operations
In this lecture we learn how to show the line numbers in the text editor to help us when we review and look at our code.
In this lecture we will go over the differences between tabs versus spaces when using white space and learn why you should be using spaces instead of tabs and also learn how to turn TAB keys into spaces from Tools | Options menu.
This is very important if you want your code to look exactly the same in all text editors.
In this lecture we will look at the Quick Find feature of Visual Studio which allows you to search text inside your code files and locate the exact match of your search string and learn the many different options it offers.
In this lecture we will look at the Find & Replace feature of Visual Studio which allows you to search text inside your code files, project or solution and replace exact matches with new strings of your choice. This is very important tool and can save you a lot of time once you start writing a lot of code.
In this lecture we will cover the debug menu and some aspects of debugging, but we won't go deep into debugging yet.
You will learn some new concepts about debugging and stepping through code by the end of this lecture
In this lecture we will go over the build menu and discuss some of its important items and see how to compile, build and clean a solution
You will learn more about building solutions and the output files generated by the end of this lecture.
In this lecture we will discuss the contents of solution files as well as project files and also understand the relationship between them. We will also build a solution containing two projects and learn some new functionality in Visual Studio specific to targeting multiple projects and the concept of startup (active) project.
You will become more familiar with solution files and project files after finishing this lecture
Understanding VS (Visual Studio) IDE
In this lecture we will go over comments and commenting out code and the different styles of comments supported by C language.
In This quick lecture we will look at the C language symbols and keywords to understand what we will be covering in this course
In this lecture, we will start the discussion on C Data Types and learn the basic types in C including char, int, long, float and double. We will also discuss signed versus unsigned and learn how to figure out the memory footprint for each type using sizeof operator.
This lecture will make you familiar with C Basic types and get us started to dig deeper into C...
In this lecture we go over the C basic types again and discuss them in more detail so you become more familiar with them.
In this lecture we will learn how to display all basic types using prtinf function. We will also discuss the difference between characters and strings in C.
In this lecture we will begin to use variables and learn how to declare, initialize and use them. We will also talk about constants and understand their use by doing a new project in C together.
In this lecture you will learn how to declare and use 'enum' or enumerated types in C/C++.
In this lecture we will learn the two variable scopes in C: global and local scopes. By the end of this lecture, you should become more familiar with declaring variables and understand their life time and visibility rules.
In this lecture, we will look at an important tip to help you avoid running into compilation issues with some C compilers when declaring and using local variables.
This applies to some older versions of Visual C compiler as well as some other non-Microsoft C compilers.
In this lecture we will learn how to create our own functions and call them (invoke) them from within main as well as other functions
Understand Basic Concepts about C and its Syntax
In this lecture we will cover arithmetic, relational and logical operators. You will understand these operators and start using them by the end of this lecture.
In This lecture we will learn about a new way to combine both arithmetic as well as assignment operators together.
Learn about the cool C/C++ incrementing and decrementing operators!
In this lecture we will learn about type casting and how to use the cast operator in C
Precedence of operators
If more than one operators are involved in an expression, C language has a predefined rule of priority for the operators. This rule of priority of operators is called operator precedence. In this lecture, we will look at the different operators and how C language defines the rules of operator precedence.
Understanding Expressions in C
In this lecture we will look at how to use if...else conditional statements in C and understand how they work. By the end of this lecture, you will be able to write code that checks and evaluates expressions to execute specific statements when the conditioni is met or if it is not met.
In this lecture, I will show you an example that uses several if...else statements and also how to nest if statements using a blood pressure reader function that takes two numbers and gives you back your result as string.
In this quick lecture we will see how we can use the C/C++ ternary operator ?: instead of if...else... clauses for cases where ternary operator is a better fit.
In this lecture, we will learn how to use switch statements instead of if...else. Also, we will learn about break keyword that is usually used with switch conditions.
In this lecture, we will learn how to use 'continue' keyword in C/C++ with loops.
Understanding Conditional Statements in C
Section Overview
In this quick lecture, we will look at the for loop syntax and dissect its parts to understand how it executes and become familiar with it.
In this lecture, we jump into Visual Studio to write a demo app that uses for loops so we can understand how to use them and practice using them in code.
In this lecture, we will step through and debug our 'for' loop code to see it in action one step at a time. The goal of this lecture is to show you how for loops work so you can understand it more and become familiar with it.
In this lecture, we will introduce you to the 'while' loop in C/C++ and to help you understand it well, we will go over some possible variations of using the while loop by trying out different scenarios together.
In this lecture, we will learn about 'do'...'while' loops in C/C++ and how they differ from both 'for' and 'while' loops.
In this lecture, we will learn how to use 'goto' keyword in C/C++
Understanding Loops and Jump Statements in C
In this lecture, we will look at how to declare and use arrays in C/C++. This is mainly a presentation on how to declare and access both single-dimension as well as 2-dimensional arrays.
In this lecture, we will see how we can declare and process a single-dimensional array in C/C++.
In this lecture, we will continue with the same project from previous lecture and try to build some generic functions out of the same code. You will learn how to pass arrays to functions the proper way and start to see how you can write more modular code in C/C++.
In this lecture we will learn how to use the compiler with the help of 'sizeof' operator to calculate the size (number of elements) inside array without having to hard-code this value!
In this short lecture, we look at an example of declaring and printing out a 2D array in C/C++
In this quick lecture, we look at how to declare and initialize multi-dimensional arrays. We also look under the debugger to see how we can inspect individual cells of the array.
In this lecture we will learn the main difference between declaring and using character arrays versus strings in C/C++
Understanding Arrays in C
Overview of the section and a quick review of memory, variables and the introduction of & operator (address of)
In this lecture we will quickly look at the use of address of operator (&) in preparation for our discussion on pointers
In this lecture, I will show you by example why we need pointers. This lecture will make you understand the meaning of passing by value and the local function variables in more details
In this lecture we will explore pointers in C/C++ and understand how to declare, initialize and use pointers.
In this lecture we will jump into Visual Studio to apply the stuff we learned in previous lecture and write some code to see pointers in action.
In this lecture, we will look at how pointers actually work in C/C++.
In this lecture, we will implement a proper swap function in C/C++ using pointers.
In this lecture, we will continue our discussion on pointers and functions. We will implement a function that can return two values at the same time, which can be done using pointers. The goal of this lecture is to make you feel more comfortable with pointers and show you how to pass more than one pointer to functions.
In this lecture, we will revisit passing parameters to functions to go over differences between passing by value and passing by reference (pointer). If you understand the differences between the two and why we need to pass by pointer, then you have mastered a key part of C/C++ by the end of this lecture.
In this lecture, we will learn how pointers and arrays are related and how we can treat array name as a pointer in some situations.
In this lecture we will learn about pointer arithmetic and how we can increment or decrement pointers in C/C++ and understand what that really means.
In this lecture, we will modify our sample from previous lecture to display memory addresses to inspect them and verify pointer arithmetic is indeed translating increments/decrements based on data type.
In this lecture, we continue with the same example as the previous lecture and try to apply the same rules to character pointers to learn how we can use pointer arithmetic with strings as well.
In this lecture, we will learn about strings and pointers and how to avoid pointer-related issues like access violation when we try to modify a string that is stored inside read-only (or write-protected) memory.
In this lecture, we will write a function called PrintVowels to learn how to process strings using pointers and practice with pointer arithmetic and contents of pointers...etc.
In this lecture, we will look at how we can use pointers to manipulate strings by implementing a function that removes all vowels from a given string.
In this lecture, we will learn how to apply pointer arithmetic to arrays and see different ways we can access array elements with the help from pointer arithmetic.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.