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
tmate
tmate
is 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
printf
andscanf
. Read more about thislibcs1010
library 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
clang
CS1010 hides much details about the use of
clang
, the C language compiler, behind the providedMakefile
. Students wishing to learn how to compile usingclang
can learn more here..