COMP 200: Elements of Computer Science
Spring 2013

A person well-trained in computer science knows how to deal with algorithms: how to construct them, manipulate them, understand them, analyze them. This knowledge prepares him for much more than writing good computer programs; it is a general-purpose mental tool which will be a definite aid to his understanding of other subjects, whether they be chemistry, linguistics, or music, etc. The reason for this may be understood in the following way: It has often been said that a person does not really understand something until he can teach it to a computer, i.e., express it as an algorithm.

Donald Knuth

What is COMP 200?

This course is an introduction to computer science and computer programming aimed at non-majors, especially social science and humanities students.

One emphasis is "Computational Thinking" — how to articulate problem-solving. Simply put, we want to understand the problem we are attempting to solve, and think about how to solve it.

Another emphasis is the pragmatic aspect of writing correct code. We will introduce programming in Python. No prior programming experience is expected. We will practice testing and debugging our code with many examples. Most examples will come from tasks related to social science and humanities.

Hands-on Class

The best way to learn programming is very hands-on. Just do it!

To that end, most class time will be devoted to hands-on programming tasks with lots of staff and peer support. Most of the traditional “lecture” content will be in readings, exercises, and videos that you are expected to use outside of class.

Python programming tool: CodeSkulptor