The Course

This course is like no other course you've taken. There are no exams. There are no homeworks. There are 4 projects, but all of the projects are open-ended: there are no ``correct'' project answers. The idea is to develop problem solving skills using techniques that you have learned during your CS training to solve the project problems. Lectures will be relatively informal, with most of the class interaction being cooperative problem solving and discussion rather than a fixed set of lectures with questions.

Some of the supplied problems may be too tough to make much progress on in the time you have. If so, you should try to find special cases of the problem that can be solved, or to simplify the problem in such a way that it still remains interesting, but may be solved.

Conversely, some of the problems may be too easy. In that case you should try generalizing the problem. To what other kinds of problem can your solution also be applied?

For those of you familiar with Bloom's taxonomy, this class emphasizes the upper levels (application, analysis, synthesis, evaluation), and assumes the lower levels (knowledge, comprehension) from your previous CS background.

All projects will be done in groups of three or four. There are four separate projects, and groups will change from project to project. You cannot be in the same group as another person more than twice. We will hopefully be able to mix up the groups sufficiently so that no pair of students is in the same group even twice.

A large proportion of your grade will come from class participation. Class attendance is mandatory. Do not sign up for this class if you think you will need to miss classes. An attendance record will be kept by the TA.

This is the kind of course in which you can invest a little or a lot, and for which your enjoyment and fulfilment will come in proportion to the amount of energy you put into the course.

Ken Ross 2024-09-09