NUS CS1010 Handbook for AY23/24 Semester 1
Important General Information About CS1010
Teaching Team
Class Schedule
Preliminaries
- 
1. Programming What is a program? What is programming? What is CS1010 about? 
- 
2. Computational Problems What is a computational problem? Express a step-by-step solution to a computational problem with a flowchart. 
- 
3. Functions Write functions that solve simpler sub-problems and then combine the functions to solve higher-level and more complex problems. 
- 
4. Types Each variable has a type that tell the machine how to turn a bit sequence into a meaningful value. 
Basic C
Control Statements
- 
8. Conditional Statements 
- 
9. Logical Expressions 
- 
10. Assertions 
- 
11. Loops 
- 
12. Invariant 
Arrays, Pointers, Memory Management
Algorithms
Intermediate C
CS1010 PE
- 
CS1010 Programming Environment We will be using a programming environment for CS1010 labs and practical exams. 
- 
Linking GitHub to CS1010 PE We use GitHub Classroom for our labs. Here is how to link your GitHub account to your PE accounts. 
- 
Using tmatetmateis a tool that is useful for sharing terminal with others.
Vim
Unix
C
- 
C in CS1010 C is a programming language with some nuances that get in the way of learning programming for beginners. CS1010 bans and discourages some of these features. 
- 
CS1010 I/O Library One of the ways CS1010 simplify C programming for beginners is to provide a library for robust reading and writing of common types without resorting to printfandscanf. Read more about thislibcs1010library here.
- 
C Style Guide Read more about the expected coding style that CS1010 has to follow 
- 
C Documentation Guide Read more about the expected documentation format that CS1010 has to follow 
- 
Compiling with clangCS1010 hides much details about the use of clang, the C language compiler, behind the providedMakefile. Students wishing to learn how to compile usingclangcan learn more here..