An introduction to computational thinking and computer programming. We assume no prior background in programming and we begin with a basic framework for problem solving technique. We start from basics of representation of data and move to a more abstract types. We emphasize general patterns and abstraction as well as apply methods of object-oriented programming for clarity and reusability of software. Examples to be drawn from the four pillars of SUTD society.

Class Time:

Three sessions per week (S1, S2, S3):

  • S1: 1.5 hour
  • S2: 1.5 hour
  • S3: 2.0 hour

Refer to Class Calendar for more detail.


How to Think Like a Computer Scientists, Interactive edition


Wentworth, Elkner, Downey, and Meyers, How to think like a computer scientist: Learning with Python 3, 3rd Edition


Yue Zhang, An Introduction to Python and Computer Programming, Springer, 2015

Y. Daniel Liang, Introduction to Programming Using Python, 2013

Charles Dierbach, Introduction to Computer Science Using Python: A Computational Problem-Solving Focus, 2013

The Digital World, 2013 Notes