COMP 130: Elements of Algorithms & Computation
Fall 2016

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 130?

This course, formerly numbered COMP 200, is an introduction to computer science and computer programming. It is meant for both majors and non-majors, and no prior experience is expected. The course is basically the same as the better-known COMP 140, except that most of the example problems come from the liberal arts.

One emphasis is "Computational Thinking" — how to approach problem-solving. Simply put, we want to understand the problem we are attempting to solve, and think about how to solve it. This thoughtful process contrasts with the common "strategy" of immediately writing some code and tweaking it until it seems to work.

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.

Hands-on Class

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

To that end, class time will be devoted to hands-on problem-solving and programming tasks, completed in groups, with lots of staff support. The traditional “lecture” content will be in videos and quizzes that you are expected to complete outside of class. The in-class examples reinforce the video content and serve as practice for the homework assignments.

Python programming tool: CodeSkulptor