an introduction to computer science, artificial intelligence and programming
Union College
Winter 2008
Home> General InfoScheduleResources


Kristina Striegnitz

office: Steinmetz 233
office hours: Mon 12-1, Wed 9-10 and 1-2
email: striegnk AT the usual
phone: 518 388 6554

Where and when

Tuesdays, 9:00-10:45, Olin 102
Tuesdays, 1:55-3:45, Olin 102
Thursdays, 9:00-10:45, Olin 102


There are no prerequisites for this class.

Texts and Software

The following book will be the basis for our study of computer science and programming.

John Zelle (2004). Python Programming: An Introduction to Computer Science. Franklin Beedle & Associates.

This book will be complemented with readings on topics from artificial intelligence, which I will make available either on this web site or on the course's blackboard site.

The programming language we are going to work with is Python. Python can be downloaded from For some exercises, you may need additional python libraries, which I will make available on the resource page.

Course Structure

Technically, this course consists of two lectures and a lab every week. But since we meet in the same room for all of these, I won't make a clear distinction between lecture or lab, or rather, I will freely mix lecture style teaching with lab style exercises. So, all classes will be a micture of lectures, discussions, and in-class exercises on paper and using the computer.

Every week, you will get a sheet with assignments. The assignments will be a mixture of theoretical questions and small programming projects. In addition, we will use an online-tool called CodeLab which lets you practice basic programming.

There will be 2 exams during the term and a final exam at the end.

What you need to do

  • First of all: ask questions! During class, if I say something that you don't understand, ask me. If you realize after class that there is something you didn't understand, come see me during my office hours and ask me, or write me an email. If you are stuck with your exercises during lab, ask me. Or, if I am busy explaining something to somebody else, ask your neighbor. I do want you to work together during labs.
  • You need to come to all classes and labs. If you have a good reason for not being able to attend a class or lab, please, let me know in advance.
  • Hand in your answers to the homework assignments on time. Some assignments will be easier to do using pen and paper, while others involve writing python programs. I will specify on the assignment sheet what I would like to get from you (a piece of paper with your solution, an email with your python code, ...).
  • Another point about homework: While I do want you to work in groups during labs and for the final project, you should do your homework on your own. It's okay to discuss general solution strategies with your class mates, but then you should go and write your own answer or implement your own python code. So, it's ok to discuss homework with other people but you should never leave these discussions with anything written down.
  • Check the web site regularly. I will post lecture slides and assignments there as well as any material that you may need to do an assignment. I will also post any news items or announcements that may come up.

Evaluation and Grading

  • in-class exercises: 10%
  • CodeLab exercises: 10%
  • weekly homework assignments: 30%
  • mid-term exams: 15% each
  • final exam: 20%

© 2007 Kristina Striegnitz