NUS · CS1010 · Programming Methodology

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.

4 credit points Level 1 undergrad Offered Semester 1 / Semester 2 ~100% exams School of Computing

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.

Spot the bug

Find what is wrong

Multiple choice · the fix is revealed after you answer

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;
    }
The fix

f(4) = 4 + f(3); f(3) = 3 + f(2); f(2) = 2 + f(1); f(1) = 1 + f(0); f(0) = 0.

Unwinding: f(1) = 1, f(2) = 3, f(3) = 6, f(4) = 10.
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!

your whole grade
Where your grade comes from Exams 100%

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.

How it differs from its first-year siblings. The continuous assessment offers 65 marks but counts 60, and the course is not curved. The site is explicit that you do not need full marks on every component; the three practical exams in the labs are where the C skills are actually tested.

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.

Difficulty
2.7 / 5
Moderate. Gentle early, demanding back half. Hard to fail with steady work; a top grade takes consistent practice.
Exam load
100%
The exams decide most of the grade. The heaviest single component is 60%.
Weekly time
~10 hrs
Around 10 hours per week including class, across lectures, study and assessment.
Tools, functions, conditionalssteady
Abstraction, structs, arrays, recursionsteep
Practical exams and written examssteep

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.
do this ↘
What top students do differently
  • 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.

1

T1 · Getting started

Lab 0

Making and running programs; experimentation in the terminal.

2

T2 · Functions and conditionals

Lab 1

Writing functions and branching in C.

High exam weightQuiz me on functions →
3

T3 · Abstraction and structs

Lab 2

More on if-else; abstraction; structs.

4

T4 · Arrays and recursion

Lab 3

Fixed-size arrays and recursive problem solving.

High exam weightQuiz me on arrays →
5

T5 · UNIX skills

Tutorial series

Terminal, Vim, debugging, shell, Git and processes.

How it's assessed

Assessment structure

ComponentWeightFormat & timing
Continuous assessment (capped): weekly quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams60%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.
Continuous assessment (capped): weekly quizzes, lab attendance, tutorial submissions, programming assignments and three practical exams60%
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%.
Midterm exam (pen and paper, 75 minutes)10%
Pen-and-paper midterm of 75 minutes; open book.
Final exam (pen and paper, 2 hours)30%
Pen-and-paper final exam of two hours; open book.
  • 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.
read this! If you read nothing else

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

Monday
Lecture; do the post-lecture quiz the same day.
Wednesday
Tutorial on UNIX skills; submit the tutorial work.
Thursday
Lab; start the programming assignment released that morning.
Weekend
Finish and test the assignment before the deadline.

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

01

Off-by-one on arrays. C does not bounds-check; the practical exam will.

02

One giant main(). Modularity is a stated learning objective and is graded.

03

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.

Why it matters beyond the grade. C and the UNIX terminal are the working environment of embedded, systems and security roles, which is why the course keeps them rather than a scripting language.

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