CSC 161
The Art of Programming


The formulation and solution of problems using computers is increasingly important in all of the sciences and humanities. This course introduces core concepts and techniques of programming using the language Python. Lab required. This course is the recommended first course for the B.A. in Computer Science, as well as for non-CS majors. It may be followed by either CSC 162, CSC171, or CSC 172. This course has no prerequisites.



Python Programming: An Introduction to Computer Science, by John Zelle.

Supplemental books (purchase not required):

Python for Software Design: How to Think Like a Computer Scientist, by Allen Downey. Free online version, hardcopy on library reserve.

Python Programming in Context, by Bradley Miller & David Ranum. On library reserve.

Class Schedule

Monday & Wednesday 4:50-6:05pm

Dewey 1101

No class 9/7, 10/5, 11/25

Midterm exam 10/21 in class

Final exam 12/17 8:30-10:30am


Prof. Henry Kautz <>

Office hours: Tuesdays 10:00-11:30am and by appointment, CSB 709

Teaching Assistants

Matt Post <>

Office hours: Mondays 2:00-3:30pm in CSB 724

Yi Chu <>

Office hours: Wednesday 11:00-12:30pm in 627


Sample Programming Exercises


All workshops are in Hylan 307

First workshops meet Sunday Sept 13

Sunday: 3:30-5:30 5:40-7:40 7:50-9:50

Monday: 6:15-8:15 8:25-10:25

Tuesday: 4:50-6:50 7:00-9:00

Workshop Leaders

Orego Brad <>
Melnick Sara <>
Anselmi Michael <>
Gorenstein Aaron <>

Greg Wilbur <>
Hopkins Ben (super leader) <>

Workshop Leader Training

For workshop leaders, course instructor, and course TAs only

Fridays 3:30-5:00pm in CSB 601

On Friday Sept. 4, 4:15-5:00pm (after Activity Fair)

Lab Teaching Assistants

First labs meet Thursday Sept 3

TR 12:30-1:45 Bari Muhammad Firdau <> & Daniel Bartkowski <>

TR 2:00-3:15 Darly Paredes <> & Sun Min <>
TR 4:50-6:05 Andrew Wood <> & Wyatt Anderson< e.wyatt.anderson@rochester.eduu>
TR 6:15-7:30 Mike Seid <> & Tyler Kieft <>


Computing Resources