Introduction to Computer Science
Union College
Spring 2009

Catalog Description

Introduction to the field of computer science with the theme of computer games. Introduces students to algorithms, basic data structures, and programming techniques. Computer game development is used as an example application area and students implement their own games throughout the course. Includes a laboratory.

When and where

MWF 11:45AM-12:50PM in Olin 102
TH 09:00AM-10:45AM in Olin 102

How to get in touch with me

email: striegnk AT the usual
office phone: 518 388 6554
office: Steinmetz 233
office hours: Mo 2-3, Tue 9-10:30, Fr 1-2

If there is something you didn't quite get in class, or if you are stuck on a homework problem, please come to see me. I like it when students come to my office hours! There are computers in the CS resource room, down the hall from my office, which are set up exactly like the computers in the lab. So, if necessary, we can look at your code using these computers. Feel free to also drop by outside of office hours - if I am there and my door is open and I am not talking to somebody else, it's ok to come in.

Textbook and software

Starting Out with Python by Tony Gaddis, Addison-Wesley, 2009.
Amazon. Also available as an online book from CourseSmart.

Check the "Resources" page for more books as well as links to the Python online documentation.

We are going to use Python and the pygame library for the practical programming component of this class.

We will also use CodeLab, which is an online tool for practicing basic programming skills. More information on how to register for CodeLab etc. will be given in class.

Ground Rules

Attendance. This class will be taught in a "studio style"; that is, we are in a room with computers and I will mix lecture and hands-on exercises freely. It is, therefore, important that you attend class. (Reading can only make up for what you missed in a limited way.) After the third absence, your final grade will be reduced by 1/3 letter grade (for example, from a B to a B- or an A- to a B+).

Participation. My goal is that each one of you understands everything I am trying to teach. However, I can only achieve this goal, if you help me. Most importantly, that means: ASK LOTS OF QUESTIONS! I need to know where things are still unclear.

Getting help. The material in this class is growing very incrementally with each class building on the previous classes. (This is especially true for the first few weeks.) It is, therefore, important that you don't fall behind. For example, if you realize that there was something in class that you didn't quite understand, come to see me immediately. Or if you are struggling with a homework assignment, come to see me before the homework is due.

Another place where you can get help is the CS helpdesk. The CS helpdesk are upper level students who will be available on certain evenings of the week in Olin 102 to answer questions about class material or help with homework problems.

Study Groups and Homework Assignments. I do think that study groups are a great idea and, based on my own experience, very, very valuable. I encourage you all to form study groups of 2 or 3 people and meet regularly.

However, you also need to make sure that you are not relying on other people and resources too much and that you are learning how to solve the problems I give you on your own. Therefore, most homework should be done individually. (I will indicate for which homework assignments it is ok to work with a partner or in a group.)

It is always ok to talk about general solution strategies, but you should not write code together. It is ok and encouraged to discuss homework assignments with other students, but you should not leave these discussions with anything written down. You need to understand the solution well enough so that you can (re-)create it on your own. Similarly, do not look at other people's code. Especially, you should not look at somebody else's code and then go and write the same thing (just changing the variable names is still the same thing).

Quizzes and Exams. As I said above, the material in this class grows very incrementally. To make sure that everybody understands the basics, we will have 20 minute quizzes on each Monday of weeks 2, 3, 4, and 5. (Think of these quizzes as a mid-term exam in installments.) The second midterm exam will be a "normal" exam in the beginning of week 8, and there will also be a final exam on Tuesday, June 9, 2009 8:30 - 10:30 A.M.

Evaluation

participation10 %
CodeLab, homework assignments,
final project, lab and in-class assignments
40%
quizzes15 %
midterm exam15 %
final exam20 %

Special Arrangements

If you need special accomodations because of a disability or other reasons, please come to see me as soon as possible so that we can find a solution. You may have to get proper documentation from the Dean of Student' office. All such discussions will remain confidential.

by Kristina Striegnitz