FreeShort Course

CS-101: Fundamentals of C

The language everything else was built on - compilation, memory, operators, branching and loops through to modular functions, with a real-life analogy, a video, and a scenario-based Compiler Quest for every one of 16 topics across 5 modules.

FreeNo fee
5 weeks12 hours
Short CourseBeginner to Intermediate
OnlineLive & instructor-led

About this course

The language everything else was built on - compilation, memory, operators, branching and loops through to modular functions, with a real-life analogy, a video, and a scenario-based Compiler Quest for every one of 16 topics across 5 modules.

This is a 6-week short course - enough depth to build real projects and a portfolio piece, without a long commitment. Learn online at your own pace. Practice the concepts with the listed assessments.

What's included

  • Self-paced lessons and practice (12 estimated hours).
  • Hands-on coding quests you solve inside the EchoLens browser compiler - nothing to install.
  • Gems, stages and a leaderboard that keep you moving instead of grade anxiety.
  • A verified certificate with a scannable QR code, ready to share on LinkedIn, when you satisfy the course requirements.
  • Completely free - no fee, just create an account and start.

What you will learn

The compilation lifecyclemain() and program entryStandard output & escape sequencesPrimitive data types & memoryVariables, initialization & constantsFormat specifiersInteractive input with scanf()Arithmetic & modulo operationsRelational & logical decisionsif / else if / else branchingCounter-controlled for loopsCondition-driven while loopsLoop controls (break & continue)Function declarations & prototypesPass-by-value & parameter passingReturn types & void functions

Course outline - level by level

16 leveles, each with hands-on quests you clear in the portal.

  • Level 1. The C Compilation Lifecycle - Real-life analogy: Think of an architect drawing a blueprint in English. A construction robot that only responds to raw electrical pulses cannot read English words - a precision translator (the Compiler) validates the blueprint syntax and translates every single instruction into binary machine code before construction starts. Computers execute instructions in machine language (binary 0s and 1s). The C compiler translates human-readable source code (.c) through 4 stages: Preprocessing (expanding headers like #include <stdio.h>), Compilation (translating C to assembly), Assembly (converting assembly to machine object code), and Linking (combining object code with system libraries into a runnable executable).
  • Level 2. Anatomy of main() and Program Entry - Real-life analogy: Think of entering an automated factory. No matter how large the facility is, operations always initiate through a single designated master control switch labeled "Gate 1: Entry Point" - the main() function is that universal entry point. Every C program must have exactly one int main() function. The int keyword indicates that the program reports an exit status integer back to the Operating System. The code block boundaries are defined by curly braces { }, each statement must terminate with a semicolon ;, and return 0; indicates standard error-free termination.
  • Level 3. Standard Output & Escape Sequences - Real-life analogy: Think of an office typewriter with carriage-return and tab levers. Typing without the levers puts all text on a single messy line - hitting the return lever moves down to a fresh line, while hitting the tab key aligns items into neat columns. The printf() function prints text to standard console output. Escape sequences prefixed by a backslash allow layout formatting: \n inserts a newline character, \t creates a tab-stop gap, and \" prints a literal double quote.
  • Level 4. Primitive Data Types & Memory Footprint - Real-life analogy: Think of specialized kitchen containers - a small spice jar for salt (1 byte for a char), a mid-sized jug for milk (4 bytes for an integer), and a large tank for water reserves (8 bytes for a high-precision double). C requires explicit data type declarations to allocate memory in RAM: int allocates 4 bytes for whole numbers (-2 billion to +2 billion), float allocates 4 bytes for 6-decimal-place numbers, double allocates 8 bytes for 15-decimal-place precision, and char allocates 1 byte for an ASCII character.
  • Level 5. Variable Declaration, Initialization & Constants - Real-life analogy: Renting a gym locker is declaration - the locker is reserved in your name, but dirty clothes from the last user might be inside (garbage value). Putting your clean gear inside is initialization. Adding a permanent master padlock is declaring it const. Declaring a variable allocates RAM but leaves whatever random leftover bits were previously stored at that address. Initializing (int count = 0;) ensures predictable behavior. The const keyword marks a variable as read-only; any subsequent reassignment causes a compiler error.
  • Level 6. Format Specifiers - Real-life analogy: Think of 3D optical filter glasses - the raw screen emits mixed light, but wearing red/cyan lenses lets your eyes decode the exact intended 3D visual. Format specifiers are the decoding lenses that tell printf how to interpret binary data. Binary data in memory needs interpretation rules: %d formats integers, %f formats floats, %.2f rounds and formats floating-point values to 2 decimal places, and %c displays single character symbols.
  • Level 7. Interactive Input with scanf() - Real-life analogy: When a courier delivers a parcel, you don't just describe the package - you must provide your exact physical street address so the parcel is dropped directly at your doorstep. The & symbol gives scanf() your variable's memory address. The scanf() function reads characters from the Standard Input (stdin) stream. Because scanf() must write incoming data directly into your variable's memory cell in RAM, it requires the memory address obtained using the address-of operator &.
  • Level 8. Arithmetic & Modulo Operations - Real-life analogy: If you divide 11 apples among 2 people, each person gets 5 whole apples (integer division 11 / 2 = 5), and 1 single apple remains in the basket (modulo remainder 11 % 2 = 1). Arithmetic in C follows standard math rules, but integer division truncates decimal fractions completely without rounding. The modulo operator % yields the integer remainder after division, making it essential for cyclic events, parity tests, and time calculations.
  • Level 9. Relational & Logical Decisions - Real-life analogy: An airport security check requires: "Do you have a passport (Condition 1) AND a boarding pass (Condition 2)?" If both are verified true, you pass through the gate - if either is missing, access is denied. C treats 0 as False and any non-zero integer as True. Relational operators (<, >, ==, !=) yield 1 or 0. Logical AND (&&) requires all conditions to be true, Logical OR (||) requires at least one to be true, and Logical NOT (!) inverts truth values.
  • Level 10. Branching with if, else if, and else - Real-life analogy: Think of a train reaching an automated track switch. If the signal is green, the switch steers onto Track 1. If yellow, it steers onto Track 2. In any other condition, it diverts to the safety siding. The if statement checks a condition. If true, its block executes and all alternate branches are bypassed. If false, control passes sequentially through each else if block. If all tests fail, the default else fallback block executes.
  • Level 11. Counter-Controlled for Loops - Real-life analogy: A running coach instructs an athlete: "Run 5 laps around the track. Start at lap 1, add 1 lap every time you cross the line, and stop after lap 5." The start, step, and stop counts are all defined upfront. When the total number of iterations is known before loop entry, a for loop consolidates loop setup: for (initialization; condition; update). The initialization runs once, the condition is evaluated before each iteration, and the update statement executes after each loop body run.
  • Level 12. Condition-Driven while Loops - Real-life analogy: You don't decide in advance to hold an umbrella for exactly 350 steps - you check the sky and keep holding it while rain continues to fall. When the rain stops, you close the umbrella. A while loop is used when the number of cycles is indeterminate and driven by runtime events or changing data values. It tests the condition before executing the body - if the condition is false initially, the loop never runs.
  • Level 13. Loop Controls (break & continue) - Real-life analogy: On a bottling line, if an empty bottle passes by, the labeler skips it and moves to the next bottle (continue). But if a glass bottle shatters on the conveyor, the operator hits the emergency stop button immediately (break). The break statement causes immediate termination of the innermost loop, transferring control to the next statement outside the loop. The continue statement skips all remaining lines in the current iteration and jumps directly to the next loop evaluation.
  • Level 14. Function Declarations & Prototypes - Real-life analogy: Think of a restaurant menu summary. Before the kitchen prepares dishes described further down in the detailed kitchen binder, the customer reads the menu title and ingredients at the front - the prototype announces what exists before use. C compilers scan files sequentially from top to bottom. If a function is called before its full definition is reached, the compiler raises an undeclared error. A function prototype placed at the top declares the function's name, return type, and parameter list in advance.
  • Level 15. Pass-by-Value & Parameter Passing - Real-life analogy: If you give a classmate a photocopy of your notes and they scribble calculations on it, the original master copy safely in your backpack remains completely clean and unchanged. C uses Pass-by-Value by default. When passing variables to functions, a separate temporary copy is created in that function's stack frame. Modifying the parameter inside the function alters only the local copy, leaving the original variable in main() intact.
  • Level 16. Return Types & Void Functions - Real-life analogy: Asking an accountant to compute net profit yields a specific financial figure back (return value). Asking an office assistant to ring the fire alarm executes an emergency routine without handing you a calculation (void function). A function's return type dictates the type of data sent back to the caller via the return statement. When a function executes actions (such as logging warnings, playing tones, or formatting screens) without computing a return value, its return type is declared as void.

How you submit: Coding quests solved in the built-in EchoLens compiler.

Who it's for

CS-101: Fundamentals of C suits learners at a beginner to intermediate level who want a practical, project-based route into CS-101. You need only a browser and an internet connection - all coding runs inside the EchoLens compiler, so there is nothing to set up.

Certificate

Pass every required assessment at its stated threshold to earn your verified certificate. Optional practice and watching videos do not determine eligibility. Anyone can scan its QR code to verify it on our site. You can add it to your CV or share it to LinkedIn in one click.

More Short Courses

Python for Data ScienceRs 12,500 · 6 weeksGenerative AI EssentialsRs 14,000 · 6 weeksData Analytics with SQL & Power BIRs 13,500 · 6 weeksIntroduction to Machine LearningRs 13,000 · 6 weeks