CSC 111
Intro to Computer Science through Programming
(Fall 2016)

Joseph O'Rourke

Last Updated: 

Syllabus Link

As the title indicates, this course introduces the field of Computer Science through programming.

We use Python, a general-purpose high-level programming language which is known for being readable (due to its simple syntax) and at the same time powerful. Python is especially useful for Web applications (DropBox and Reddit are written in Python), graphics, games, and scientific computing (the Matlab/Mathematica open-source alternative Sage was originally written in Python). Python is free and runs on all platforms (it comes with MacOS; it can be easily installed under Windows).

There are no prerequisites for this course. I will not assume any prior exposure to programming.

My goals for student learning are three-fold:

  1. To become a good, basic programmer, familiar with the concepts of modular design, program documentation, testing/debugging, object-oriented programming.
  2. To learn the basics of how computers work: memory, the CPU (central processing unit), machine language, files, etc.
  3. To understand how programming fits within computer science more broadly, through its variety of applications.

Class Times & Locations:

Enrollment Limits: 60 each lecture section, 30 each lab section. The course is now closed.

Lab Instructor: David Marshall <>. Learning Assistant: Farida Sabry <>

Office Hours: FordHall 256, Mon & Tues afternoons: Office Hours & Calendar, or by appointment

TAs: [not yet available]

Textbook: (Required) Python Programming: An Introduction to Computer Science 2nd Edition [Paperback], by John M. Zelle, 2004, ISBN-13:860-1200643879. Amazon link. Please note: There is an earlier edition that uses Python2. You want the latest, 2nd edition, which uses Python3. Smith's Greycourt Bookshop has used books from previous semesters (as well as new copies of the book).

Download Python3 & IDLE: Latest versions: MacOS: 3.5.2; Windows: 3.5.2.

Labs & Assignments & Quizzes: All Notes, Labs, and Assignments are linked from the Syllabus web page. The Quiz links will take you to Moodle. All students registered for the class are enrolled in the Moodle course.

Piazza: Piazza link, and for account activation. We will use Piazza for discussions.

Grading: There will be weekly quizzes and (nearly) weekly assigments. There are weekly labs. There will be an in-class midterm and a take-home final.

Type Details
In-class, lab attendance, office hours, Piazza

Grading Numerology: How I use letter grades and numerical grades. See this link.

Collaboration/Pair Programming: