FreeShort Course

CS-101: Fundamentals of C

The language everything else was built on - compiling, memory, pointers, structs and file I/O, building a MiniBank CLI across 4 modules.

FreeNo fee
4 weeks10 hours
Short CourseBeginner to Intermediate
OnlineLive & instructor-led

About this course

The language everything else was built on - compiling, memory, pointers, structs and file I/O, building a MiniBank CLI across 4 modules.

This is a 6-week short course - enough depth to build real projects and a portfolio piece, without a long commitment. It runs online in the August 2026 cohort (starting 1 August 2026) and is taught the EchoLens way: you learn by doing real, gradeable work rather than just watching lectures.

What's included

  • Live, instructor-led online sessions across 4 weeks (10 hours total).
  • 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 finish.
  • Completely free - no fee, just create an account and start.

What you will learn

printf, main & program structureVariables & data typesOperators & scanfif / else-if / switchLoops (for, while, do-while)Functions & pass-by-valueArrays & stringsPointersDynamic memory (malloc/free)Structs & file handling

Course outline - level by level

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

  • Level 1. printf, main & Program Structure - Every C program starts running from main(). printf() prints text to the screen - this is how your program 'talks' to the user. #include <stdio.h> int main() { printf("MiniBank ready.\n"); return 0; }
  • Level 2. Variables & Data Types (int, float, char) - A variable is a labeled box in memory that holds a value. int holds whole numbers, float holds decimals, char holds a single letter. You must declare the type before using it. #include <stdio.h> int main() { int accountNo = 1; float balance = 100.0; char initial = 'A'; printf("Balance: %f\n", balance); return 0; }
  • Level 3. Operators & scanf (Getting Input) - Operators do math (+ - * / %). scanf() reads what the user types and stores it in a variable using its address (&). The % operator gives the remainder of a division. #include <stdio.h> int main() { float balance; scanf("%f", &balance); printf("Balance: %.2f\n", balance); return 0; }
  • Level 4. if / else-if / switch - These let your program choose different paths. if runs code only when a condition is true; else-if adds more choices; switch is a clean way to pick between many fixed options (like menu numbers). #include <stdio.h> int main() { int choice = 1; switch (choice) { case 1: printf("Deposit\n"); break; default: printf("Invalid\n"); } return 0; }
  • Level 5. Loops (for, while, do-while) - A loop repeats code. for is best when you know how many times; while repeats as long as a condition holds; do-while always runs at least once (perfect for menus that must show once before checking exit). #include <stdio.h> int main() { int choice; do { printf("1) Deposit 2) Exit\n"); scanf("%d", &choice); } while (choice != 2); return 0; }
  • Level 6. Functions, Scope & Pass-By-Value - A function is a named block of code you can reuse. It can take inputs (parameters) and give back a result (return). In C, arguments are passed BY VALUE - the function gets a copy, so changing it inside doesn't affect the original. #include <stdio.h> float deposit(float balance, float amount) { return balance + amount; } int main() { float bal = 100; bal = deposit(bal, 50); printf("%.2f\n", bal); return 0; }
  • Level 7. Arrays & Strings - An array stores many values of the same type under one name, accessed by index starting at 0. A string in C is just an array of chars ending in a hidden \0 marker. #include <stdio.h> int main() { float balances[5] = {100, 200, 300, 400, 500}; printf("%.2f\n", balances[0]); return 0; }
  • Level 8. Pointers (& and *) - A pointer is a variable that stores the ADDRESS of another variable, not its value. & gives you an address; * follows an address to reach the value. This is how C lets functions change the original data. This is the Memory Radar hero lesson. #include <stdio.h> void deposit(float *balance, float amount) { *balance += amount; } int main() { float bal = 100; deposit(&bal, 50); printf("%.2f\n", bal); return 0; }
  • Level 9. Dynamic Memory (malloc / free) - Sometimes you don't know how many items you'll need until the program runs. malloc() asks the operating system for memory at runtime; free() gives it back so it isn't wasted (a leak). #include <stdlib.h> int main() { int n = 3; int *accounts = malloc(n * sizeof(int)); free(accounts); return 0; }
  • Level 10. Structures (struct) & File Handling - A struct bundles related data into one type - e.g. an Account with a name, number and balance together. File handling (FILE*, fprintf, fscanf) lets you save that data to disk so it survives after the program closes. #include <stdio.h> struct Account { char name[30]; int number; float balance; }; int main() { struct Account acc = {"Alice", 1, 100.0}; printf("%s: %.2f\n", acc.name, acc.balance); return 0; }

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

Finish every stage and EchoLens issues a verified certificate carrying a QR code anyone can scan to confirm 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