CSC 111
Intro to Computer Science through Programming
(Spring 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: Lectures: MWF 11:00-12:10; Four Lab sections: T,R 1:00-2:50, T,R 3:00-4:50

Location: Lectures: Stoddard Auditorium G2; Labs: T,R 1:00-2:50--Ford Hall 241 + T,R 3:00-4:50--Ford Hall 342

Lab Instructor: David Marshall <dmarshall@smith.edu>

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

TAs: TA hours posted

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: www.python.org. Latest versions: MacOS: 3.5.1; Windows: 3.4.4.

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
Percentage
Homeworks
10
40%
Quizzes
9
10%
Labs
10
10%
Midterm
In-class
10%
Final
Takehome
20%
Participation
In-class, lab attendance, office hours, Piazza
10%
   
100%

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

Collaboration/Pair Programming: