
Ali brings 26+ years of programming experience to this C programming course, teaching C, C++, data structures, algorithms, and web programming online, with roles in project management and software architecture.
Why should C language be used and prioritized over other programming languages?
Choose Gini as the lightweight, cross-platform ide for this course. It integrates any compiler or interpreter and is easy to install and upgrade.
Learn why C is a case-sensitive language and how identifiers must match exact capitalization to compile, with examples showing errors when keywords or variables use different cases.
Master the minimal C program by implementing a main function that returns an integer and includes stdio.h. Learn to print text with printf and understand function brackets and curly braces.
Learn how to read user input in C with scanf and display results with printf. Use the ampersand to pass an address to scanf and learn %d and %c.
Learn how to use single line and multi-line comments in C, including // and /* ... */, to document code and guide future developers, and the compiler ignores them.
Discover how variables and identifiers store user input in memory for processing. Follow naming rules: start with a letter or underscore, avoid spaces and keywords, and note the data types.
Explore C data types from characters to integers and floating point numbers, and learn how signed, unsigned, and size varies across 8, 16, 32, and 64 bit systems.
Master arithmetic operations in C using the assignment operator and arithmetic operators—addition, subtraction, multiplication, division, and modulus—and apply the pmdas order of operations to complex expressions.
Assign constant values to arrays, define or omit size, and learn index-based initialization with zero-initialization of unspecified elements, plus computing size with sizeof.
Explore the scope of constants in c, showing a constant defined as 105 remains accessible for calculations like area and pi, and how defining it inside a function affects visibility.
Explore the enum data type in C, showing how named constants map to indices, how assigning values updates subsequent ones, and how typedef creates a reusable day-of-week type.
Explore typecasting in C by converting integers to floating point values, using explicit casts and appropriate printf format specifiers to preserve decimals.
Explore how if-else chains drive decision making in C by comparing user input with relational operators, learning when to use braces for multiple statements and how equals versus assignment work.
Learn how to implement nested if else statements by building a small shop program that handles meat and fruit options, including beef, lamb, and invalid option handling.
Explore switch-case in C as a readable alternative to if-else, using constant case labels, demonstrating fall-through behavior, break, default, and nested switches with a speed example.
Explore how loops enable iteration in C by executing a block of code repeatedly based on a condition, including for, while, and do-while variants.
Learn how the for loop in c uses initialization, condition, and increment to drive iteration, producing a two times table and an asterisk pyramid.
Learn to convert a for loop into a while loop by moving initialization before the loop, placing the condition in while, and updating inside the body for the same result.
Explore common c string and io functions, including string copy and concatenation with strcpy, get s and put s, and string comparisons with strcmp and strcmp i.
Format and store a message in a string using printf-style formatting; create a buffer, format age and height with %d, include a newline, and write to the string with sprintf.
Learn to print quotes, backslashes, and the percent sign in C using escape sequences, including escaping double quotes and doubling percent signs.
Explain how functions that return a value work, return an integer like a square, print results, and warn that missing a return yields garbage; note debugging and file-writing examples.
Learn how functions in C take arguments or parameters, declare them, and return values, with examples of summing two integers and passing any number of arguments or user defined types.
Master recursive functions in C by understanding the base case and inductive steps. See factorial and printing in reverse order to illustrate progression toward termination and avoiding infinite recursion.
Explain macros and their implementation using define and ifdef, show header guards and header files, and highlight predefined macros like __FILE__ and __DATE__.
Explore writing and reading binary data in C by saving a struct to a binary file, inspecting its 108-byte size, and differentiating binary from text files.
Learn how to read binary records in C using fread, verify the number of bytes read with size_t, and print data like name, age, and rating while handling errors.
Determine the end of file when reading by processing one character at a time and breaking on the EOF constant from stdio; explain why post-read EOF checks are preferred.
Is prior programming experience required? Short answer is "NO", because this course is designed for absolute beginners; but, if you already have programming experience, you would be able to learn C within [probably] couple of days.
What you learn and earn from this C Course?
You would be able to code (pretty much any kind of software application), i.e. general, complex, a database driven, web, GUI application, as well as complex algorithmic stuff after finishing the course.
You will have completed understanding on C language and it's capabilities
You will learn to code Web Applications in pure C
You will learn to code Windows GUI Application in pure C
You will also learn concepts and implementation of Object Oriented Programming in C
You will learn Data Structures and Algorithms
You will be learning from (five) Student Projects that are included in this course (specifically coded / tailored for this course)
You will learn SOC - Separation of Concerns
You will learn Modular programming approach
You will learn real-life application development, linking external stuff, and completing your application in shorter time.
Outline overview:
Basic Programming concepts, Variables, Constants, Type-casting
Data Types, all kind of Operators (arithmetic / relational / logical etc.) , Basic input / output / Unicode Character set
Arrays, VLAs, Matrices, Structures, Unions , bit-fields
Decision Making (if-else, switch, ternary), Nested decisions / statements
Loops (for, while, do-while), Nested Loops
File IO (reading writing appending - Binary / Text data)
Functions (Basic, with/without parameters, Variadic, Pass by ref/value, Recursion), Scope of variables / constants. Advance use of "const"
Pre-processor / Macros - in depth study
Pointers in details, Pointer Arithmetic, Function Pointers
Storage Classes
Data Structure & Algorithms - Linked Lists (doubly / singly / circular), Stacks, Queues, Trees, Graphs & Hash-Tables, Sorting algorithms etc.)
Creating & Working with Shared / Static Libraries .SO / .DLL / .A / .LIB (Implicit and explicit linking of shared libraries)
Bitwise operations / Bit manipulation in detail
You will also learn about CGI & Web programming - HTTP (get / post) , SQL, HTML, etc
GUI Programming to build fully functional Windows Applications
Object Oriented Programming using C
Along with Additional topics you can find in last chapter (which will gradually be updated with new topics)
5 - Student database projects are included in this course, and are demonstrated in form of video lectures