Competitive ProgrammingRecorded

Learn C Programming

Start from what a program really is, then variables, decisions and loops, on to arrays, pointers and memory.

Lessons: English + Bangla

৳1,999

Learn C Programming

This course includes

  • 116 text lessons
  • Lifetime access
  • Access on mobile

Curriculum

Course content

18 modules · 144 lessons

What Programming Really Is
Why Learn C When AI Can Write Code
The Story of C: From a Back Room at Bell Labs to Your Phone
Compiler, Interpreter, and What Happens When You Press Run
Where C Runs Today: Six Systems You Already Use
Structured and Object Oriented: Two Ways to Organise a Program
Module Test: Before You Write a Single Line
Your First C Program, Line by Line
Syntax and Semantics: Two Different Kinds of Wrong
The Symbol Dictionary: Every Sign in C and What It Says
The Complete ASCII Table, All 128 Rows
Comments, Whitespace and Code a Human Can Read
Compile and Run It Yourself: the Playground and a Local Toolchain
Problems: First Programs
Module Test: Meet C
Variables: Named Boxes in Memory
Integer Types, Their Ranges, and Overflow
Floating Point: float, double, and Why 0.1 Is Not 0.1
char, bool, and the Types That Are Really Numbers
sizeof and limits.h: Asking the Machine Instead of Guessing
Problems: Variables and Types
Module Test: Variables and Data Types
Constants and Literals: Values With a Name
const and volatile: Promises You Make to the Compiler
printf: Format Specifiers, Width and Precision
scanf: Reading Input Without Losing Your Mind
When Input Goes Wrong: Checking What You Read
Problems: Reading and Printing
Module Test: Constants, Input and Output
Arithmetic, Integer Division and the Modulo Trap
Relational and Logical Operators, and Short Circuit
Assignment Shortcuts, ++ and --
Bitwise Operators: Working One Bit at a Time
Precedence and Associativity: When to Reach for Brackets
Type Conversion: Promotion, Casting and Silent Loss
Problems: Expressions That Bite
Module Test: Operators
if, else if, else: Choosing a Path
Nested Conditions and the Dangling else
switch, case and Fall Through
The Ternary Operator, and Conditions Worth Naming
Under the Hood: How a Branch Becomes a Jump
Problems: Decisions
Module Test: Decisions
while: the Idea of Repetition
for: Init, Condition, Update, Traced
do while: the Loop That Runs at Least Once
break, continue, and the goto You Will Not Use
Nested Loops, Grids and Patterns
Thinking in Loops: Sums, Digits, Primes
Bug Gallery: Off by One, Infinite, and the Missing Brace
Problems: Loops
Module Test: Loops
Functions: Giving a Piece of Work a Name
Parameters, Return Values and Prototypes
Pass by Value: What a Function Really Gets
Scope: Where a Name Lives
Storage Classes: auto, static, extern, register
The Interview Angle: Side Effects, Pure Functions and Testability
Problems: Functions
Module Test: Functions
Recursion: a Function That Calls Itself
The Call Stack, Frame by Frame
Recursion Patterns: Factorial, Fibonacci, Digits
Recursion or a Loop: Choosing Honestly
Under the Hood: Stack Frames, Tail Calls and Stack Overflow
Problems: Recursion
Module Test: Recursion
Arrays: Many Boxes, One Name
Traversal Patterns: Sum, Maximum, Count
Searching and Frequency Counting
Two Dimensional Arrays and the Grid
Passing an Array to a Function
Bug Gallery: Out of Bounds and the Silent Write
Problems: Arrays
Project: A Marks Report From Raw Numbers
Module Test: Arrays
Characters, ASCII and the char Type in Practice
Strings: an Array That Ends in a Zero
Reading Strings Safely: fgets, and Why gets Was Removed
string.h: strlen, strcpy, strcmp, strcat
String Problems: Palindromes, Words, Case
Under the Hood: Where a String Literal Actually Lives
Problems: Strings
Project: A Word Counter That Handles Real Text
Module Test: Strings
Memory and Addresses: Every Box Has a Number
Pointers: a Variable That Holds an Address
Pointers and Arrays: the Same Thing, Almost
Pass by Reference: Letting a Function Change Your Variable
Pointer Arithmetic, and const in Three Places
Function Pointers: Passing Behaviour Around
Bug Gallery: NULL, Dangling and the Wild Pointer
Problems: Pointers
Project: Swap, Sort and Search With Pointers Only
Module Test: Pointers
struct: Grouping Fields That Belong Together
Arrays of Structs, and Structs in Functions
Pointers to Structs and the Arrow Operator
typedef, Nested Structs and Organising a Program
union and enum: When Each One Fits
Under the Hood: Padding, Alignment and sizeof Surprises
Problems: Structures
Project: A Library Catalogue in Memory
Module Test: Structures
Files: Making Data Outlive the Program
Reading and Writing Text Files
fprintf, fscanf and Formatted File Input and Output
Binary Files, fread and fwrite
EOF, Errors, and Closing What You Opened
The Interview Angle: Buffering, Flushing and the Output That Vanished
Problems: Files
Project: A Log File Reader That Reports
Module Test: Files
Why Dynamic Memory: Sizes You Do Not Know Yet
malloc, calloc, realloc and free
Growing an Array While the Program Runs
Structs on the Heap, and a Linked List to Finish
Leaks, Double Free, and the Tools That Find Them
Under the Hood: What malloc Actually Asks the Operating System
Problems: Dynamic Memory
Project: A Contact List That Grows on Demand
Module Test: Dynamic Memory
The Preprocessor: What Happens Before the Compiler
Macros: define, Function Macros and Their Traps
Header Files: Declarations, Guards and What Belongs Where
Multi File Builds: Compiling, Linking and a First Makefile
Static and Shared Libraries, and Linking Someone Else's Code
Problems: Building a Program From Parts
Project: Split One File Into a Real Project
Module Test: The Preprocessor and Builds
Undefined Behaviour: the Rules You Did Not Know You Were Breaking
Debugging: printf, gdb, Sanitizers and a Method
Reading Real C: a Walk Through Code From SQLite
C99 to C23: What Changed, and What You Can Use Today
Style, Warnings and Writing C That Others Trust
Problems: Find the Bug
Project: Repair a Program That Only Looks Correct
Module Test: Real World C
How to Work Like an Engineer: Plan, Build, Test, Repeat
Where to Go After C
Project One: A Text Statistics Tool
Project Two: A Contact Book That Saves to a File
Project Three: A Tiny Expression Interpreter

Practice

Where the practice actually happens

Watching lessons is the easy part. These two decide whether you are still solving problems in month three.

Progsity Playground running a C program in the browser, with the code editor on the left and the output panel on the right showing Hello, World! and an Accepted verdict.
Try it yourself

Progsity Playground

Run C and C++ straight in the browser, editor on one side, output and standard input on the other. Nothing to install, so trying an idea never waits on a working compiler.

The Achievements page showing level and XP progress, current and best streak, and the badge collection.
A ninety-day activity calendar where darker squares mean more XP earned that day, above the weekly leaderboard.

XP, streaks, badges and a weekly leaderboard

Every lesson, quiz and solved problem earns XP, which raises your level and unlocks badges, sixteen of them, from First Steps to a hundred-day streak. Each week you also see where you stand against the rest of your batch.

Enroll

Ready to start learning?

Learn C Programming

৳1,999৳2,99933% off