Structure and Interpretation of Computer Programs

About the Course

We can understand some computer programs in the way we solve basic math equations: by performing one simple algebraic step after another, until we reach an answer. This course introduces you to programming in this way, following the classic textbook Structure and Interpretation of Computer Programs, JavaScript edition (SICP JS). It starts from first principles, looking at functions that you know from mathematics, but before long, you will program interesting graphic and audio patterns using Source Academy, a website built for SICP JS. Video processing serves as the example domain for imperative programs. In the project, you get to develop your own programming language or module, within Source Academy. The course offers entertaining and thought-provoking insights into the essence of computation, programming, and programming languages. 

CLICK FOR MORE INFORMATION

About the Lecturer

Sanka Rasnayaka

Department of Computer Science, School of Computing, NUS

Dr Sanka is a Lecturer at the Department of Computer Science. He recieved his Doctor of Philosophy degree in Computer Science from the National University of Singapore. Prior to which he recieved his Bachelor of Science in Computer Science and Engineering degree from the University of Moratuwa, Sri Lanka. His current research interests are in the application of computer vision and machine learning for real world use cases. His work has led to many publications in the domains of biometrics, continuous authentication, privacy and human perceptions. His teaching philosophy is to facilitating self-learning by guiding the students thinking toward the final learning outcome, rather than explaining to them how to get there. During his tenure as Lecturer at NUS he has been involved in teaching fundamental modules in programming, mathematics and Software Engineering.

Past Projects