CS2030/S Programming Methodology Overview

January 15, 2021

P.S. The following information on CS2030/S Programming Methodology II is based on past experience and subject to changes. The purpose is to provide a rough idea of what is to come for prospective students so that one can prepare early if possible.

In the recent run of the module, “A module about abstractions” is Prof Henry’s description for CS2030. Having the opportunity to be a lab tutor for this module, I think it is a very fair way to describe it.

Components Remarks
Weekly labs (5%) - Need not complete the solution during lab
- Useful for checking concepts taught in lectures
- May need to refer to Java API for unfamiliar syntax
- It is perfectly normal to not be able to complete the labs or find them difficult during the lab sessions. This is partly because of unfamiliarity with Java APIs that are invovled(e.g. use of Generics, Optionals, Streams)

Individual project (10%) - Two part projects that require you to write small to medium scale program
- Release during read week 1 & 2 (Or release incrementally throughout the semester)
- Difficulty lies in managing code complexity and adhering to design principles
- Strongly advised to start early and anticipate some serious work required to complete them on time

Practical assessment #1 in week 7 (15%) - 90 minutes levelized coding exercise
- Similar to lab exercises but test all topics

Practical assessment #2 in week 12 (20%) - Similar to Practical 1, except in terms of difficulty

In-lecture quiz (5%) - Meant to test your understanding

Class participation and peer learning activities (5%) - Participate in posting/answering questions on Github issues
- Add notes on Github Wiki

Final exam (40%) - Structured questions that might invovle writing of small Java programs to implement OOP design or other topics covered
- Format similar to PYPs but not really predictable as this depends on the setter

Updated as of: 28/4/2021

Profile picture

Written by Liu Yongliang who lives in Singapore. Also on Dev.to, LinkedIn, GitHub

© Copyright 2022 Liu Yongliang