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
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.