This course is not really about C
C is the language you will type. Problem solving is the actual subject — how to break a mess of a problem into steps a machine can follow, before you write a single line.
After this lesson
You should be able to
- Explain why an algorithm comes before code, not after.
- Describe what each of the five units adds to what you already know.
- Recognise which unit to return to when a specific kind of problem shows up later.
You already know the hard part
Think about the last time you followed a recipe you had never cooked before. You did not start throwing ingredients into a pan. You read the whole recipe once, understood the order — onions before tomatoes, low flame before high — and only then picked up the knife. That order-first, act-second habit is the entire subject of this course. The recipe is called an algorithm, and C is just the language you write it down in so a machine can follow it exactly, with none of your common sense filling the gaps.
A computer will do exactly what you tell it, in exactly that order, and nothing you did not say. That is both the whole difficulty and the whole appeal. Once you can turn a problem into an exact, ordered set of steps, C is simply the tool that carries out your plan — and getting good at C without getting good at the planning just means your mistakes compile.
The five units, as one story
Unit 1 gives you the basic moves — deciding (if) and repeating (while, for) — the two things every algorithm is built from, no matter how complicated it eventually gets. Unit 2 teaches you to break a big problem into named, reusable pieces called functions, the same way a big WhatsApp group project gets split into who does what, instead of one person doing everything. Unit 3 moves from single values to collections — arrays and strings — because almost no real problem involves just one number.
Unit 4 teaches recursion — a function calling itself, the way a folder can contain folders that contain folders — plus structures, for when one variable needs to hold several related pieces of data together, like a student's roll number, name, and marks as one unit instead of three separate variables. Unit 5 closes the loop: keeping data after your program exits (files), and searching and sorting it efficiently once you have a lot of it. Each unit is a real prerequisite for the next — this is not five unrelated topics, it is one skill built in layers.
What "solving" a problem actually means here
Every problem in this course, and every real one you will meet later, goes through the same four moves: understand exactly what is being asked, plan the steps in plain language or a diagram before touching code, write the C that carries out that plan, and test it against cases you chose specifically to catch mistakes — not just the one obvious case that always works.
You will see this same four-step shape in every practice exercise across all five units. It is worth more than any single syntax rule in this course, because syntax you can look up in seconds — the habit of planning before coding is what actually separates a working program from a frustrating afternoon.
Try it yourself
Pick something you already do without thinking — making tea, recharging your phone, or getting ready for college. Write it as a numbered list of exact steps, precise enough that someone who has never done it could follow it with zero guessing.
Need a hint?
Try handing your written steps to a friend and have them follow it literally. Wherever they get stuck or do the wrong thing, that is a missing or ambiguous step — exactly what a compiler would also get stuck on.
Check the worked solution
A good version of "making tea" is not "boil water, add tea, drink" — it is precise about quantity, order, and timing: how much water, when the tea powder goes in, how long it boils, when milk and sugar are added. That precision, uncomfortable as it feels to write out, is exactly what an algorithm is. You just did the hardest part of programming without writing a single line of C.
Quick check
Why does this course insist on planning an algorithm before writing any C code?
Why this lesson exists
Syllabus mapping
To learn the fundamentals of computers. · To understand the various steps in program development. · To learn the syntax and semantics of the C programming language. · To learn the usage of structured programming approaches in solving problems.
Maps to course outcomes CO1, CO2.