Module Information
This course is a follow up to CS1010. It explores two modern programming paradigms, object-oriented programming and functional programming. Through a series of integrated assignments, students will learn to develop medium-scale software programs in the order of thousands of lines of code and tens of classes using object oriented design principles and advanced programming constructs available in the two paradigms. Topics include objects and classes, composition, association, inheritance, interface, polymorphism, abstract classes, dynamic binding, lambda expression, effect-free programming, first class functions, closures, continuations, monad, etc.
~ NUSMods
Pre-requisites
- CS1010 / equivalent
Schedule
- Lecture: 2 hours
- Recitation: 1 hour
- Lab: 2 hours
My CS2030 experience
Before I dive into my ratings for this module, let me describe my experience while taking this module. I took CS2030 during the special term after taking my CS1010X course from iBlocs.
The special semester lasted for 6 weeks, with 2x the normal workload from every week. However, the content that we had to cover was a slightly cut down version of the full CS2030 (based on comparing notes with my friends who had to take the full version)
How I feel about my journey
During my CS2030 course, I initially felt very crammed as I had to go from 0 java experience to coding in java within the 1st 2 weeks. The fast pace of the course really helped as the time to wait in between sessions were very short. I was able to recall most of the content which has been taught from the previous session.
This empowered me to build on the knowledge that I have learnt from the previous weeks. Pre-reading some of the lecture notes really helped me to understand the content that the professor was going through. I’ve also made some life long friends along the way (From the same batch of CS1010X students who have decided to take CS2030)
1 thing to note is that 1 of my school camps has clashed with the lesson slots and I skipped the lesson for the camp. This required me to do some catch up for the lessons that I missed.
As the timeline is quite tight, I did not have much time to do the catch up.
Verdict
Please consider taking this course if any of the following applies to you
- You want to graduate school early
- You want to learn the contents of CS2030 better
- You do not have a lot of activities planned during the special term period.
For those who have plans to skip > 1 lesson, please do not take this as it may be hard to catch up on the content given the short timeline.
Useful Links
Papers
- CS2030 Midterms Practice Assessment AY1819
- CS2030 1718 Special Term
- CS2030 1718 Sem1
- CS2030 1718 Sem2
- CS2030 1819 Sem1
- CS2030 1819 Sem2
- CS2030 1819 S4 Final Assessment
- CS2030 1819 Make up exam