General course overview.
Topics
For the inexperienced...
For the experienced...
You should also read the Learning resources overview.
Our goal is to understand the scope, techniques, and contributions of the field of computer science.
Table 1: Tentative schedule of topic coverage
Session Material 1 Prologue 2 : 3 Programming 4 : 5 : 6 : 7 : 8 Recursion 9 : 10 Internet 11 : 12 Algorithms 13 : 14 : 15 Cryptography 16 TBA / Quiz 17 Evaluation / Epilogue
This is a survey course; we will move fairly rapidly through a series of topics. (Table 1 gives an anticipated schedule.) The course is structured around four major areas, of which you should have a fair understanding by the end of PGSS.
The CS core is 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 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.
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 still 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.
For the experienced...