Computer Science Core Syllabus

Welcome to the Computer Science portion of the Pennsylvania Governor's School for the Sciences! In this class we'll be learning about many aspects of computer science. The material we'll cover will range from freshman-level programming to advanced graduate-level algorithms. We certainly have a lot of work cut out for us!

Instructor contact

The instructor for this class is Mr Carl Burch.

The instructor tends to be around his office between 8:00 and 4:30, Monday through Friday. Feel free to stop by without appointment to see if he's available. Also feel free to schedule an appointment, particularly if you want to visit outside of regular hours.

It's unfortunate that I won't be able to meet all of you during class! Please don't hesitate to make up an excuse to visit my office some time.

We have three TA's.

Outline

The following table holds a general idea of what we'll be doing. We will deviate, however; we need not be anxious to cover all; nor, if we finish it, will there be a lack of other neat things to examine.

Session Material
1 Computer science (Ch 1)
2 Low-level programming (Ch 3)
3 Programming fundamentals (Ch 4)
4
5
6 Computational complexity (Ch 5-6)
7
8 Algorithmic methods (Ch 7-10)
9
10
11
12 Cryptography (Ch 11)
13 Databases (Ch 12)
14 Searching and game playing
15
16

Collaboration

Computer science is a highly collaborative field. Feel free---even encouraged---to work together on problems. Some homework problems may be difficult enough to require it.

To evaluate individuals' work, however, the line must be drawn at sharing answers. That is, discuss problems all you like, but once you find the answer it is inappropriate to tell somebody else. It is definitely inappropriate to share what you write on your homework. So, discuss the problem with friends who haven't found the solution yet; but, once you find it, write it down on your own.

Credit your collaborators on your homework.

With programming assignments, it's fine if you help each other with mechanics of the system---how to compile, how to download code, what an error message means in general, etc. But it is inappropriate to let somebody else fix your code.

Previous experience

You may have already studied computer science a great deal; you may barely know how to use a word processor. Either way, you should be comfortable in this class.

Students who already know quite a bit about programming may find the sections on programming boring, even frustrating (once they see how much is omitted). Please, bear with those few sessions patiently.

On the other hand, if we ever start going too fast for you to keep up, please, speak up! Say something, whether in class, through e-mail to the instructor, or through the comments section of the Web page.