Introduction to Computer Programming

Thursday, September 21: Drawing Tuesday, September 19: Quiz Thursday, September 14: Review Tuesday, September 12: Repetition Thursday, September 7: Decisions Tuesday, September 5: Math Thursday, August 31: Introduction
Course overview

Programming is the art of making a computer do what you want. It is both challenging and rewarding, and it requires both technical precision and creative design. In this course, you will begin to learn to create programs, which is a skill that may be useful far beyond our classroom.

We will be working in Python, a modern language that many people find easy and enjoyable to learn. By the end of the course, you will know how to write a wide range of Python programs, ranging from practical utilities to games.


This course assumes no background beyond high-school math and a basic familiarity with computers. In particular, it is intended for students who have not done any programming.


We will be using a free online text for this course. Reading is likely to improve your understanding of concepts from class, and will sometimes teach you additional details.

Office hours

My office hours this semester are 2-4pm Mon/Wed/Fri. If you have other commitments during those times, we can make other arrangements.


If your learning or participation in this course may be affected by a disability or any other factor, please talk to me early in the semester so that we can arrange appropriate accommodations. I will do my best to ensure that everyone can learn effectively.


Being in class is crucial for your learning in this course. Absences will leave holes in your understanding of course concepts. If you must miss a class, you are expected to work to get caught up before the next class.

Computer labs

The lab computers are essential to the active style of this course. During class, please refrain from using them for anything other than programming. Your student ID will unlock all three computer labs along this hallway whenever the building is open.

Graded work

Your final grade will be a weighted average of exams (40%), homework (40%), quizzes (10%), and a final project (10%). This table shows how averages translate to the 4-point scale. Please note that I do set a high bar for a 4.0 and this course does not have extra credit.

Academic integrity

It is important to me that you conduct your work in this course with academic integrity. That means abiding by the specific policies outlined below, as well as the general guidelines in the Student Handbook. It is my responsibility to report violations of these policies to the Dean.


Programs will be assigned approximately weekly. The first few will be quite small, but they will become more complex as the semester progresses.


There will be two midterm exams with written problems that ask you to interpret and produce small chunks of code. They will take place in class on October 10 and November 30.


There will be two quizzes to give you practice for the exams. They will take place in class on September 19 and November 2.


During the last few weeks of the semester, you (and perhaps a partner) will implement a Python program of your own design as a final project.


Things you might find useful:

We will use Sakai for homework submission and grade tracking.