Syllabus

General course overview.

For the inexperienced...
For the experienced...

You should also read the Learning resources overview.

Welcome, dear student, to PGSS! And, welcome to the

2008 PGSS computer science core!
In this course, we'll tour through computer science, surveying some of its wide breadth to gain an understanding of the nature of the study of computing. We have three major stops: [this is tentative] We will briefly foray into other topics too - including game playing and cryptography. It'll be a breathtaking tour, an exciting journey!

Computing is an important and fascinating field of human inquiry. This is your opportunity to learn something about it. Enjoy!

For the inexperienced...

The CS core may be particularly frustrating because a wide experience gap separates the students. Many students have never attempted to understand computing before; a few have several computer science courses behind them. No matter what, the beginners will be frustrated, and the experienced students will be bored. Expect some frustration.

But don't be daunted: You are in the majority! The material is all targeted at you.

We will move very quickly. I encourage beginners especially to ask questions when they don't feel they completely understand the topic. It's tempting to think that maybe if you sit back you will begin to understand later... but this doesn't work. Ask!

The assignments will have multiple levels and will indicate what the beginner should do. As an overachieving student, you may find it hard not to go to the highest level; nonetheless, I recommend that beginners avoid this.

Experience shows that some students grasp programming quickly while others do not. This is naturally frustrating for those among the latter. If programming doesn't seem to be clicking for you, I advise you to stick with it nonetheless - you will be a better person for the struggle, and the effort will pay off when you try again in a few years.

For the experienced...

Everybody should find the CS core interesting and challenging! Unfortunately it is not possible within PGSS to have multiple sections of the CS core. But I believe students who have already studied computer science intensively can still learn a lot - at least if they allow themselves.

This class employs three strategies for teaching experienced students without neglecting those who have not seen much computer science before.

  1. The assignments have multiple levels to which they may be completed. While the lower levels are acceptable - nay, encouraged - for beginners, experienced programmers should find the more advanced levels more interesting.
  2. We will get programming behind us as quickly as possible, so that we can discuss material experienced students are less likely to have seen.
  3. During the programming lectures (Sessions 2-8), students who already know how to program have the option of pursuing self-paced study. You can read more about this under Self-paced track in the menu.