This site is from a past semester! The current version will be here when the new semester starts.

Using this WebsiteWeekly Schedule

Module Expectations

Here are some important expectations of the module from you.

Prior Knowledge: Java and OOP

This module requires you to write Java code almost every week, starting from the very first week. If your Java skills are rusty, do brush up your Java programming skills.

In particular, you may want to have a look at the new Java features such as streams, lambdas, Optionals, that may not have been covered in previous Java modules.

CS2103 students: This module assumes a reasonable prior knowledge of Java and OOP because most students taking this module have taken two Java modules before. If you are totally new to Java, you may be better off switching to CS2113 (Software Engineering & Object-Oriented Programming) instead.


As 70% of this module is based on CA (see grade breakdown), it can appear to be heavy. However, it is not expected that you will spend more time on this module than its .

  • Note that the module contains more things than a typical students can do, in order to provide enough things for even the strongest students to learn as much as they wish to.
  • This means it is perfectly OK if you don't have time to learn everything the module offers. Control your workload based on time you spend for the module in a week e.g., 1-1.5 days per week.
  • We have provided a topic levels to guide you when prioritizing which things to do.

Topic Levels

We use a topic levels system to indicate the progression of module components. Start with things that are rated level-1 and progress to topics at higher levels. Things rated level-4 are optional.

Levels for lesson topics (and textbook sections):

  • Level-1 topics are essential to keep up with the module. We recommend you to learn these topics if you want to pass the module (i.e. up to a C grade).
  • Level-2 topics can get you up to a B+.
  • Level-3 topics can get you up to an A.
  • Level-4 topics : OPTIONAL can push you beyond the limits of the module, and help you get into a level above those who merely limit themselves to the topics of the module. They are not .
  • Topics marked with two icons e.g., : , : , : are relevant topics you are expected to have learned in prerequisite modules. They are given for reference, but are examinable. The number of indicates the progression of prerequisite topics, similar to the topic levels system above i.e., level-1 prerequisite topics are the most basic and the most important. level-4 pre-requisite topics can be ignored without affecting CAP.

Topic levels for other things e.g., admin info sections:

  • The module uses a similar topic levels system to indicate the importance of other info in this website. i.e., information rated as level-1 are the most essential. Info rated level-4 are non-essential and can be ignored without affecting your ability to follow the module.

Rewards for exceeding expectations

This module deliberately avoids giving extra credit for exceeding the expected bars, in order to keep the workload manageable (of course, doing more will have their own rewards in terms of learning).

If you are a strong programmer wishing to push yourself beyond the expectations set by the module, you can consider applying for CS2103R, to earn an extra 1MC of graded credit.

Using this WebsiteWeekly Schedule