Skip to content


Here is a collection of readings related to CS2030 or otherwise.

On UNIX, Vim, and Emacs

On Programming Practices


  • Why extends is evil by Allen Holub. "Good designers write most of their code in terms of interfaces, not concrete base classes."

  • Goodbye, Object Oriented Programming by Charles Scalfani. "One day, my code works and the next day it stops working. Here’s the kicker. I didn’t change my code. "

  • Why getters and setters methods are evil, by Allen Holub. "Though getter/setter methods are commonplace in Java, they are not particularly object oriented (OO). In fact, they can damage your code's maintainability. Moreover, the presence of numerous getter and setter methods is a red flag that the program isn't necessarily well designed from an OO perspective."

  • Getters/Setters. Evil. Period, by Yegor Bygayenko. "The gist of the following text is this: getters and setters is a terrible practice and those who use it can't be excused."

  • Tell, Don't Ask by Thoughtbot Inc. "Good OOP is about telling objects what you want done, not querying an object and acting on its behalf. Data and operations that depend on that data belong in the same object."

  • Tell, Don't Ask by The Pragmatic Bookshelf. "Procedural code gets information then makes decisions. Object-oriented code tells objects to do things."

For 1st Year Students

  • Notes to Computer Science Freshmen, From the Future: Early into the AY12/13 academic year, Prof Tay Yong Chiang organized a supper for Computer Science freshmen at Tembusu College. The bunch of seniors who were gathered there put together a document for NUS computing freshmen. This is that document.

  • How Not to Go About a Programming Assignment, by Agustin Cernuda del Rio: Computer programming students invariably fall into more than one bad habit. It can be extremely difficult to eradicate them (and many lecturers and professional programmers keep succumbing to them time and again)..

  • Best Teacher I Ever Had, by David Owen: Mr. Whitson taught sixth-grade science. On the first day of class, he gave us a lecture about a creature called the cattywampus, ..

  • Academic Honesty: All students share the responsibility for upholding the academic standards and reputation of the University. Academic honesty is a prerequisite condition in the pursuit and acquisition of knowledge..