Skip to main content

Undergraduate Program

The Art of Programming

Course: CSC  161
Term: Spring 2010-2011

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 CSC 162, CSC171, or CSC 172. This course has no prerequisites.


Python Programming: An Introduction to Computer Science 2nd Edition, 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
Meliora 203
Midterm exam 02/23 in class
Midterm exam 04/06 in class
Final exam 05/06 12:30 pm


Amit Singhal <>
Office hours: Mondays/Wednesdays before and after class – by appointment ONLY
Phone: (585)477-6711

Teaching Assistant

Jansen Orfan <>


  • Algorithms, computers, & computing
  • Expressions, assignments, loops & branches
  • Numerical computing
  • Computing with text
  • Graphics
  • Functions
  • Recursion
  • Principles of good program design & testing
  • Object oriented programming


First labs meet Tuesday January 18
MW 3:25-4:40 Gavett 244
MW 6:15-7:30 Harkness 114
TR 2:00-3:15 Gavett 244
TR 3:25-4:40 Gavett 244

Lab attendance is NOT required. However, the labs are there for you to get assistance with programing assignments and you are encouraged to go to the lab if you have not completed the assignment for that week. Grad TA office hours are NOT TO BE USED for programming assignment help.

You may go to a lab other than the one you are signed up for IF there is space available. The labs have limited computing resources and students signed up for a particular lab section will get preference when using lab resources at that time.


  • 10% - Pop quizzes (Attendance/Participation)
    • Graded for attendance only!
    • Help the instructor and TAs understand what material the class is having trouble with
  • 40% - Midterms (10% each) and final exam (20%)
  • 50% - Weekly programming and writing exercises
  • Lots of opportunities to earn extra credit
    • Weekly assignments
    • Optional programming project worth up to 20% extra credit

Computing Resources

  • Labs for this course are in Gavett 244 and Harkness 115. You may also use any other public PC's or your own computer.
  • To store your files between sessions, you can mail them to yourself using the university email system, or copy them to your own USB flash drive. It is good idea to save multiple copies of your work in progress until it is complete. A 2GB USB flash drive costs less than $10 at any drug store and will have plenty of space for all of your files for the semester.
  • For more information, see the Computing Help page.


  • Assignments are turned in using Blackboard. 20% penalty for assignments 1 to 7 days late. No credit for assignments more than 7 days late. NO EXCEPTIONS WILL BE MADE TO THIS POLICY UNLESS APPROVED IN ADVANCE.
  • Students are encouraged to discuss course material with each other on the Blackboard discussion board.
  • Academic honesty: Any instance of suspected plagiarism or other forms of dishonesty will be reported to the College Board on Academic Honesty in accord with University policy. When using electronic turn in of assignments, it is the student's responsibility to ensure that the correct file is uploaded. Neither the instructor nor TAs will attempt to judge claims that work copied from others was accidentally submitted.
  • Students with disabilities are encouraged to request appropriate accommodations for tests, lectures, and assignments. Please see university policies on student accommodations and discuss your needs with the instructor.
  • Students who are having difficulty with course material are encouraged to talk to the instructor, TA's, workshop leaders, and/or the staff in Learning Assistance Services.
  • The instructor and TA's love to hear from students outside of class. Whether you are loving the course or hating it, please come by our office hours, and share your concerns, complaints, suggestions, and questions!