|
Go Back
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.
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 designing abstract 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. Whereas in Computer Engineering, people work to engineer hardware and software systems by applying these techniques. Obviously the distinction is blurred under many circumstances.
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.
|