Skip to content


Email Communication

  • Please use only your official NUS email for communication with the teaching staffs -- either the one with or

  • Please use email only for private matters. Prefix your email subject with [CS2030].

  • Please use Piazza for other matters related to the module. If you email us privately and we feel that your questions/answers are useful to the rest of the class, we will publish it on Piazza, with anonymization when appropriate.

Lab Sessions

  • We do take attendance during the lab sessions, but it does not affect your grades if you do not attend the lab sessions as long as you still need to submit the graded lab exercises.

  • You should stick to your allocated time slot for labs. If there is a strong reason for your to attend another lab session, please inform your lab instructors.

Late Submissions

  • All graded exercise must be submitted on time. If you need an extension, please ask for one and provide a justification for approval. Only academic reasons can be considered (e.g., representing NUS for a sports event is OK, going for vacation is not)

  • For late submission, there is a 1% penalty (of the assessment grade) for every 5-minute after the deadline, capped at 80%. For example, if a homework is deserved 40 marks, and it is submitted 100 minutes after the deadline, the student will get 32 marks instead (20% penalty). If it is submitted 10 hours after the deadline, the student will get 8 marks (as it has hit the cap of 80% penalty).

Discussions and Plagiarism

  • We encourage discussions among students for lab assignments, but each student should be responsible for writing his/her own code and should give credits to others when appropriate.

  • NUS and School of Computing have a high standard on academic honesty and take any violation seriously. In the context of computing modules, source code plagiarism -- copying code from another source and attributing it as one's own code -- is a serious violation. Please read the page Preventing Plagiarism from the school's website to familiarize yourself with the policy.

  • I adopt a "no mercy" policy when it comes to disciplinary action on plagiarism. Both parties, the student who copied, and the student who allowed others to copy, will be penalized equally.

Lecture Video

  • Screencast will be recorded and posted online 2-3 days after the lecture. This will be done on a 'best effort' basis and screencast will not be guaranteed to be available.

  • Posting of screencast is meant to help students who attended the lecture to recap the content, or to help those who are not able to attend the lecture due to unexpected circumstances. It does not mean that you should skip lecture.

Model Solutions and Slides

  • Slides will be posted after the class. Note that slides are used as a visual aid to assist me during lecture. It is not meant as summary of lectures nor a replacement of lecture notes.

  • In a module like CS2030, there is often not a single correct answer. Hence, there is no model solution for this module. Sample solutions may be posted (both good and bad ones) for discussion. I strongly encourage students to discuss your solution with me, instead of just comparing your solution with the sample solution.


  • Students will received the grades they deserved irrespective of how the other students in the class performed (i.e., no bell curve)

Open Book Assessment

  • All assessment, including graded labs, midterm test, and final assessment, are open book assessment -- you can bring in your notes or other analog reference materials. Java documentation will be made available during labs. Relevant Java APIs will be provided during midterm tests and final assessments.

  • There is nothing to memorize for this class.