Get Aquainted
About Me

Thoughts For Food
Papers
Portfolio
Resume/C.V
Teaching
Coursework

Lower Learning
An Intro to CS

In Lieu of Boredom
Poetry
Crazy Clips
Interesting Toons
Game Glitches
Freestyling
Music Recording



A Gentle Introduction to Computer Science

This is a set of introductory problem sets I put together for a high school student while I was interning (more like, trying to figure out what my concentration in CS should be) at NTU's Robot Perception and Learning Lab.

For those who didn't know, computer science is not the same as electrical engineering or computer engineering. Computer Science deals with abstract computational models and the probabilities involved whereas Electrical/Computer Engineering deal with the technicality of apply scientific knowledge to the real world.

If you're still wondering what the real difference is.

"Computer science is no more about computers than astronomy is about telescopes." - Edsger Dijkstra

In Computer Science, we learn about and work on computational techniques (more specifically, Algorithms and Data Structures) that can be performed on a good variety of computing machines - from a pencil and a piece of paper to DNA computers.

So yeah, here's a set of three practices to help you get a glimpse of what computer science is.

Basic Data Structures and the Hand-Shaking Problem
Since Computer Science deals with abstract computational methods, the understanding of discrete mathematics is just as important as grasping programming concepts. The first problem asks you to implement two basic data structures: Linked List and Binary Search Tree and compare the performance of the two; the second problem asks you to solve a abstract mathematical problem, which gives you the flavor of algorithmic thinking (a little, not too much).

Heaps, Cardinality and Pigeon-Holes
Heaps (primarily used to implement priority queues) is a slightly more difficult data structure to implement - but it is very useful in solving computer science problems. The two theoretical problems are rather straight-forward.

Maze Problem and Graph Theory
This problem set asks you to find a path in a maze by using Depth-First Search; there's also a little interesting graph theory problem at the end. A plain text representation of the maze can be downloaded here: Maze File.

Since I've already down the work to assemble these problem sets (more like...spent five minutes on google), might as well make them available for people who'd like a little practice.