CS1010: pass the exams, not just read the notes
Your complete guide to National University of Singapore's programming methodology course. See where the marks are, work real practice questions, and study with an AI tutor that knows CS1010.
Sia generates CS1010 practice questions, walks through getting started and functions step by step, and quizzes you on the material the exam weights most heavily.
Find what is wrong
What does this C program print?
#include <stdio.h>
int f(int n) {
if (n == 0) return 0;
return n + f(n - 1);
}
int main() {
printf("%d\n", f(4));
return 0;
}
f(4) = 4 + f(3); f(3) = 3 + f(2); f(2) = 2 + f(1); f(1) = 1 + f(0); f(0) = 0.
The base case n == 0 is reached because n decreases by one each call, so it terminates.
24 is the product, not the sum; 4 ignores the recursion.
The trap: Reading the recursive call as a loop that returns only the last value. Trace the call stack until the base case, then add on the way back up. classic slip!
One exam decides 60% of your grade. Capped at 60%. This whole page is built around that.
Overview
What CS1010 is, and where it sits
CS1010 Programming Methodology is the first programming course for NUS Computer Engineering and Information Security students and the first of a three-part sequence continued by CS2030/S and CS2040/C/S. Unusually for an introductory course, it is taught in C and places extra weight on working in UNIX-like terminal environments. This guide follows the Semester 1 AY2026/27 offering as published on the course's public site.
Five learning objectives frame the course: using tools to write, compile and run programs; adopting good style and modularity; analysing problem specifications and developing algorithmic solutions; tracing programs and applying testing and debugging; and applying computational thinking and the problem-solving life cycle. Each week has a Monday lecture, a Wednesday UNIX-skills tutorial (terminal, Vim, debugging, shell, Git, processes) and a Thursday lab where the programming exercises are set.
Assessment is 60% continuous assessment, capped from 65% available (weekly quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams), a 10% pen-and-paper midterm and a 30% pen-and-paper final. The site states that CS1010 is not graded on a bell curve and that all assessments are open book.
Always treat your own course outline and the exam timetable as authoritative.
Difficulty & time commitment
Is CS1010 hard, and how much time does it take?
CS1010 is manageable if you keep a weekly rhythm and treat the back half as the main event. The pattern is consistent: it starts gently and steepens, and the heaviest assessment is the part that separates grades.
The difficulty curve and the assessment weighting point the same way: the back half is harder and worth more. Front-loading effort there is the highest-return decision in the course.
Is this course for you
Who tends to do well, and who tends to struggle
You will likely do well if
- You attend every lab and tutorial; 10% is attendance and submissions.
- You do the weekly programming exercises on time so the practical exams hold no surprises.
- You are willing to live in a terminal for a semester.
- You like understanding what the machine does with your code.
You may struggle if
- You skip the UNIX tutorials; the practical exams are run in that environment.
- You copy solutions to the weekly exercises; the site warns the practical exam will expose it.
- You treat the 5% buffer as permission to skip a component entirely.
- You expect a Python-style introduction.
- Rewrite each lab solution from scratch a day later without looking.
- Draw the memory diagram for every pointer and array exercise.
- Practise in the lab environment, not only on your own machine.
- Use past-year papers and problem sets as timed rehearsals before each practical exam.
Syllabus
The 5 topics, topic by topic
The exam-weight marker on each topic shows where the marks concentrate. The amber topics carry the highest exam weight.
T1 · Getting started
Lab 0Making and running programs; experimentation in the terminal.
T2 · Functions and conditionals
Lab 1Writing functions and branching in C.
T3 · Abstraction and structs
Lab 2More on if-else; abstraction; structs.
T4 · Arrays and recursion
Lab 3Fixed-size arrays and recursive problem solving.
T5 · UNIX skills
Tutorial seriesTerminal, Vim, debugging, shell, Git and processes.
How it's assessed
Assessment structure
| Component | Weight | Format & timing |
|---|---|---|
| Continuous assessment (capped): weekly quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams | 60% | Weekly post-lecture quizzes (5%), lab attendance (5%), tutorial submissions (5%), weekly programming assignments (10%) and three practical exams in SoC labs (10%, 15%, 15%); 65% available, capped at 60%. Weekly; practical exams on 15 Sep, 13 Oct and 10 Nov 2026. Capped at 60%. |
| Midterm exam (pen and paper, 75 minutes) | 10% | Pen-and-paper midterm of 75 minutes; open book. Week 7 (28 Sep 2026). Open book; AI tools restricted. |
| Final exam (pen and paper, 2 hours) | 30% | Pen-and-paper final exam of two hours; open book. Examination period (25 Nov 2026). Open book; AI tools restricted. |
- Final score = min(CA total, 60%) + midterm 10% + final 30%. No bell curve: the number of As and Fs is not capped. All assessments are open book (analog materials); AI tools are restricted during practical and written exams.
- Three practical exams in SoC computer labs (10%, 15%, 15%) on 15 September, 13 October and 10 November 2026; a 75-minute pen-and-paper midterm on 28 September; and a two-hour pen-and-paper final on 25 November 2026. Format and permitted materials are on the site's practical-exam, midterm and finals pages.
This is an exam-cram course. With the exams at 100% of the grade and the continuous assessment (capped): weekly quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams alone at 60%, your result is overwhelmingly decided by how well you perform under time pressure. Capped at 60%.
Final exam timing: During the examination period. Confirm the exact date and venue on your exam timetable.
How to actually pass it
A weekly rhythm, two checklists, and the traps to avoid
The course rewards consistency over cramming, and practice over re-reading. Here is the loop that works, then what to have nailed before each exam.
The weekly loop
Before the mid-semester checklist
- Write and call functions with correct types.
- Trace nested conditionals by hand.
- Define and use a struct.
- Compile and run a program from the terminal.
Before the final heaviest topics
- Write recursive solutions and trace the call stack.
- Manipulate arrays with correct bounds.
- Debug a segmentation fault with the tools from the tutorials.
- Decompose a problem into well-named functions.
The mistakes that cost marks
Off-by-one on arrays. C does not bounds-check; the practical exam will.
One giant main(). Modularity is a stated learning objective and is graded.
Ignoring the terminal. The practical exams run on SoC hosts; fluency in the environment saves minutes.
Formula & concept sheet
The vocabulary and formulas you must own
- Compilation
- Translating C source into an executable with a compiler such as gcc.
- Function
- A named block with parameters and a return type, the unit of modularity in C.
- Struct
- A composite type grouping related fields.
- Array
- A fixed-size, contiguous sequence of elements of one type.
- Recursion
- A function that calls itself on a smaller instance until a base case.
- Pointer
- A variable holding a memory address.
- Segmentation fault
- A crash from accessing memory the program does not own.
- Shell
- The command-line interpreter used to compile, run and manage files.
- Git
- The version-control tool introduced in the tutorial series.
- Practical exam
- A timed programming test in the SoC labs.
Where it fits
Prerequisites, related courses & why it matters
No prerequisites. 4 units; offered in Semester 1 and Semester 2. First course of the CS1010 → CS2030/S → CS2040/C/S sequence for Computer Engineering and Information Security students.
Your CS1010 study toolkit
Study the course with Sia, not just read about it
Each tool already knows CS1010: your syllabus, your texts, and where the marks are. Grouped by how you study, from first contact to exam week.
FAQ
Frequently asked questions
Is CS1010 hard?
Moderate on the six-factor rubric. C and pointers are unforgiving for beginners, but the course is not curved, everything is open book, and the continuous assessment has a built-in buffer.
What is the assessment breakdown?
Continuous assessment 60% (capped; 65% available across quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams), midterm 10% and final exam 30%, as published on the course site for S1 AY2026/27.
Why C rather than Python?
The course is designed for Computer Engineering and Information Security students and aims for hardware-aware programming and comfort in UNIX environments; the site's course-design FAQ explains the choice.
Is it bell-curved?
No. The site states students receive the grade they deserve regardless of the rest of the class.
Who teaches it?
The public site does not name the coordinators; staff and assessment details are on the NUS Canvas course page.
Can I use AI tools?
For formative work, yes, within NUS policy; AI access is restricted during practical and written exams.
Study CS1010 with Sia
Work through getting started, functions, abstraction and the rest of the course with a tutor that knows it and quizzes you on the topics the assessments weight most heavily.
Start studying with Sia