C Programming
The mother of modern programming languages. Master memory and fundamentals.
"Consistent learning today,
better opportunities tomorrow."
Course Curriculum
Origins of the language, the anatomy of a C program, and how source code becomes a running program.
Dennis Ritchie at Bell Labs (1972), procedural middle-level architecture, key features and pillars.
Fixed skeleton: preprocessor directives, global declarations, main() entry point, blocks, and statements.
The 4-stage pipeline: Preprocessor, Compiler, Assembler, and Linker turning .c into an executable.
Comprehensive quiz testing all topics in Module 1: Introduction to C.
The building blocks C uses to represent and manipulate values in memory.
The 32 reserved keywords, identifier naming rules, and case sensitivity in standard C.
Primary, Derived, and User-defined data types; typical sizes in bytes and value ranges.
Named storage locations, declaration, initialization, const keyword, and #define constants.
Arithmetic, relational, logical, assignment, bitwise, and ternary operators with precedence rules.
Comprehensive quiz testing all topics in Module 2: Data Types, Variables & Operators.
Reading data from the user and displaying results using C's standard I/O library.
Formatted output to console, formatted input from keyboard, and the & address-of operator.
Format specifier mapping: %d, %i, %f, %lf, %c, %s, %u, %x, and %p pointer addresses.
Single-character streams, and why fgets() prevents buffer overflow compared to unsafe gets().
Comprehensive quiz testing all topics in Module 3: Input and Output.
Directing the order in which statements execute — decisions and repetition.
Conditional branching with if, else-if chains, and multi-way branching with switch-case.
for loop iteration, while pre-test loops, and do-while post-test execution flow.
Exiting loops with break, skipping iterations with continue, and unconditional goto jumps.
Comprehensive quiz testing all topics in Module 4: Control Flow.
Breaking a program into reusable, named blocks of logic — including how they call each other and themselves.
Grouping statements under a name, prototypes, bodies, return types, and call stack frames.
Strict call-by-value copy semantics versus simulating call by reference using pointer addresses.
Self-calling functions, base cases, recursion stack frames, and unwinding multiplication.
Controlling variable scope, lifetime across function calls, file linkage, and register hints.
Comprehensive quiz testing all topics in Module 5: Functions.
Storing and organizing multiple values of the same type under one name.
Contiguous memory blocks, zero-based indexing, base address arithmetic, and O(1) element access.
2D table models, row-major storage in RAM, cache performance, and matrix address formulas.
Passing arrays to functions, pointer decay to the first element, and passing array length.
Comprehensive quiz testing all topics in Module 6: Arrays.
Variables that store memory addresses — C's most powerful and distinctive feature.
Address-of operator &, dereference operator *, and manipulating variables via pointers.
Scaling address offsets by sizeof(type) bytes rather than single raw bytes.
Equivalence of arr[i] and *(arr + i); why indexing is pointer arithmetic in disguise.
Passing pointers to modify caller data and avoiding dangerous dangling pointers.
Double pointers (int **pp), generic void* pointers, and NULL pointer validation.
Comprehensive quiz testing all topics in Module 7: Pointers.
How C represents text as arrays of characters, and the standard functions used to manipulate them.
Null-terminated character arrays; why 'Hello' occupies 6 bytes in memory.
Standard string toolkit: strlen, strcpy, strcat, strcmp, and strchr functions.
Comprehensive quiz testing all topics in Module 8: Strings.
Grouping different data types together to model real-world records.
Bundling multiple types into records, separate member memory, and compiler padding bytes.
Shared memory locations, total size as largest member, and memory-saving data overlays.
Named integer constants with enum and type aliasing with typedef.
Hierarchical data representation and bulk record storage using arrays of structs.
Comprehensive quiz testing all topics in Module 9: Structures, Unions & Enumerations.
Allocating and releasing memory at runtime instead of relying only on fixed, compile-time sizes.
The 4 memory segments: Stack (downward), Heap (upward), BSS/Data, and Text (code).
Dynamic allocation APIs, memory leaks, and avoiding dangerous dangling pointers.
Comprehensive quiz testing all topics in Module 10: Dynamic Memory Management.
Reading from and writing to files on disk, so data can persist beyond a single program run.
File stream pointer FILE* fp, modes (r, w, a, r+), buffer flushing, and fclose().
Formatted text I/O with fprintf/fscanf, line I/O with fgets, and raw binary I/O with fread/fwrite.
Comprehensive quiz testing all topics in Module 11: File Handling.
Compile-time text substitution, indirect calls through function pointers, and low-level bit manipulation.
Pre-compilation text substitution, #include, #define macros, and conditional header guards.
Storing function addresses, callbacks, dispatch tables, and runtime behavior selection.
Bitwise operators (&, |, ^, ~, <<, >>) and exact-bit struct packing for protocols and embedded code.
Comprehensive quiz testing all topics in Module 12: Preprocessor & Advanced Topics.