C Programming and Software Engineering Fundamentals
**C Programming Fundamentals: Learn C from using Cygwin/Terminal with Clang and Gcc Compilers for Windows, Mac OSX & Linux**
Why learn C you may ask?
For such an old language, it is still one of the most powerful tool any aspiring programmer could have in their toolbox today. It opens your eyes to many lower level processes taking place in your computer.
C is what I like to call a “wild” language, it gives 100% freedom to programmers unlike many modern programming languages.
We can see the effect C has on many modern languages like Java, C++, Objective-C, C# by observing their syntax. It has paved the way for making a global standard amongst the future languages.
How Low can we go?
C is a much lower level language compared to other languages like Java i.e it gives you the freedom to perform certain operations that would normally be restricted by other programming languages. After the assembly language, C follows next.
How would this course help you?
Leave the horrifying stories you’ve heard about programming in C, this course would take you from a noob to an expert C programmer providing you with the tools you’ll need to succeed in every aspect of fundamental programming.
We break the core concepts of advanced topics in C such as pointer and memory management. We’ll also look into common errors such as segmentation faults and bus errors–Ones that are very challenging and hard to find. Using this way of teaching you’ll be up and ready to become very fluent at writing code in C.
The course is fully supported by the course instructor, you can be sure to get a quick response/feedback to all your questions.
Environment Setup, History and Usage
In this lecture, we would be installing the tools required to run our C programs for the windows operating system. Compilers such as the gcc and clang compilers.
In this lecture, we talk about the compilation tools required for the mac osx operating system such as the compilers and text editors. You can choose from a wide range of text editors but sublime text is recommended.
Brief Intoduction to Unix
In this lecture, we would go through the history of unix and why it is important for the course.
In this lecture, you would learn how to control your computer using unix commands to create, move,delete and perform other important operations needed for the course.
In this lecture, we would talk more about compilation, what we need, how we do it and why we use these tools in general.
In this lecture, we talk about algorithms, why we need them and how to use them. The goal is to help improve the student's logic building skills.
In this lecture, we talk about the diagrammatic representation of algorithms using a flowchart. This helps to build the students logic building skills.
In this lecture you'll be introduced to variables and how we use them to store data for retrieval in C programming.
Just like basic mathematics, you can perform arithmetic operations on data in C programming. In this lecture, you would learn about the various arithmetic operators we have in C.
Printf and puts can be used to print data out to the console. In this lecture, you would learn the difference between the too and why we use one more over the other
How do we create our own grouped data types? In this lecture, we would be learning how to use enums in C.
Very commonly we use boolean expressions in C and other major programming languages. In this lecture, we would be learning more about boolean types and how we use them in C programming.
One of the most important concepts in C programming. Functions/Routines help us to reduce code repetition. In this lecture, we talk about how to create functions and use them to return values
Can we write programs that can make decisions for themselves? In this lecture, we would be learning more about decision making using if and else statements in C programming.
In C programming, switch statements allows us to switch on conditions based on various cases. We can have multiple case statements but only one condition.
How do we iterate over numbered objects or automate repeated tasks? In this lecture, we would be learning how to use for loops to loop over repeated tasks.
In this lecture, we would be talking about arrays, what they are and how we use them in C programming.
In this lecture, we would be talking about multidimensional arrays (2D, 3D) and how we use them in C programming.
Based on what you've learnt so far
In this lecture, we discuss in detail what pointers are and how we use them in C programming.
In this lecture, we talk about passing into functions by reference in C programming.
In this lecture, we discuss in detail how to manipulate pointers using pointer arithmetic in C programming.
In this lecture, we expand on our knowledge of pointers by introducing the concept of pointers to other pointers in C programming.
In this C Programming lecture, we would continue to expand our knowledge on some input and output routines available to us.
Input/Output and File Processing in C Programming
In this C Programming lecture, we would continue to expand our knowledge on how to read data from a file. A file in this context could be a text file or any file you assign your C-program.
What is tokenization? and How do we tokenize data in C programming? Find out in this lecture as I take you through the steps of writing a C program to tokenize data in a file.
How do we store a group of related data? We use structs in C Programming! Find out how to use this in this lecture
User defined types
C programming: In this lecture, you will learn how to pass structures into functions! Fear not, for it is very easy!...Once you learn it.
Learn how to create arrays of structures in C Programming.
C Programming 101: Learn how to use typedef statements on struct to make calling and assigning them easier!
Data Structures, Memory Management and Dynamic Allocation
Learn how to dynamically allocate memory to objects/variables etc in C programming
Learn about pointers to structures in C programming
Learn about dynamically allocating contiguous blocks of memory to an object in C programming.
C Programming 101: In this project, we would be coding _____ from scratch. This would take you from beginner to intermediate by improving your problem solving skills.
Modularity, Separate Compilation & File Redefination
Learn about dividing your code into separate modules using the interface and implementation design rule.
Learn the importance of scope in C programming
Learn how to compile multiple C Programming source files using makefiles.
Using an integrated development environment (IDE)
In this lecture, you learn how to install an IDE, write and compile C code in it using your existing C compiler.
Congratulations on completing the C programming course for absolute beginners! Your certificate should be mailed to you on 100% completion!