This course is designed to introduce students to the craft of computer programming. The goal is for students to get a sense of how to make computers (as stupid mechanisms) do things that we would like them to do, and at the same time to see how computers (as intelligent machines) can do things that even surprises the very people who program them. Except for basic computer skills such as keyboarding, the course does not presuppose any prior knowledge of computers or of programming on student’s part. This course is a pre-requisite for more advanced programming courses in the B.Sc. programme.