CSC 111: Intro. to Computer Science through Programming (Spring 2011)

Judith Cardell & 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 (which we will sample in the course), graphics (the 3D modeling software blender is written in Python), and scientific computing (the Matlab/Mathematica open-source alternative Sage is 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. We will not assume any prior exposure to programming.


Zelle

Class Times: Lectures: Tu, Th 9:00-10:20AM; Labs: Th 1:00-2:50 (Sec.1), Th 3:00-4:50 (Sec.2)

Location: Lectures: McC103; Labs: Ford Hall 241 (both sections)

Textbook: (Required) Python Programming: An Introduction to Computer Science [Paperback], by John M. Zelle, 2004, ISBN-13: 978-1887902991. Amazon link. Please note: There is a later edition that uses Python 3. That is not compatible with Python 2.6+, the version we are using. So make sure you get the 1st edition. Smith's Greycourt Bookshop has used books from previous semesters (as well as new copies of the book).

Instructors' Office Hours: See the links on our web pages: Judith Cardell , Joseph O'Rourke

Tutors / Teaching Assistants & Hours: FordHall 241.

Name Email
Julia Burns jburns@smith.edu
Judy Liang yliang@smith.edu
Kristina Fedorenko kfedoren@smith.edu
Faith Unterseher funterse@smith.edu
Millie Walsh mwalsh@smith.edu
Lindsey Gregor lgregor@smith.edu
Alex Cheng acheng@smith.edu
(Available by Appointment)
Day, Time Who
Sunday, 7:00-9:00PM Julia Burns
Monday, 2:30-5:00PM Alex Cheng
Monday, 7:00-9:00PM Millie Walsh
Lindsey Gregor
Tuesday, 7:00-9:00PM Judy Liang
Kristina Fodorenko
Wednesday, 2:00-5:00PM (but not 20Apr) Alex Cheng
Wednesday , 7:00-9:00PM Kristina Fodorenko
Thursday , 7:00-9:00PM Faith Unterseher

 

Grading:

Items
Percentage
Assignments
60%
Mid-term
15%
Final exam
20%
Class participation
5%

(See also Grading Numerology and Late Policy.)

Labs: There is a weekly two-hour lab on Thursday afternoon, in two sections, both meeting in FordHall 241. The lab assignments generally lead into the homework assignments due a week later. You never need turn anything in as a result of the lab. The instructor will be assisted by Tutor Julia Burns in the labs.

Assignments: There will be weekly assignments, which generally require you to write one or more programs and submit those for evaluation. The assignments will be uniformly due on Wednesday evenings at midnight. (That deadline is selected so you aren't tempted to stay up all night.) In general the assignments are extensions of the lab from the previous Thursday. Assignments will be submitted via Moodle. Late assignments are accepted up to one-week late, but with grades determined by our Late Policy.

Exams: There will be two exams: an in-class Mid-Term exam on Th 10 Mar, and a Take-Home Final Exam, made available on the last class Th 28 Apr and due the last day of the exam period, Fri 6 May.

Collaboration: Collaboration in the labs and on homework assignments is encouraged. Several studies have concluded that "pair programming" enhances the learning of both participants. Only on the two exams is collaboration forbidden. We only ask that the submission include the names of the collaborators!

Web Pages: The Assignments, Labs, and class Notes are all web-access restricted. They can be accessed with name=111, pass=111.

Python on your laptop: Python is free, and easy to install on any platform. You are welcome to install it on your laptop. Just visit http://www.python.org/download/ and download Version 2.7.1 for your platform. Two warnings: Do not download Version 3.1.3! Version 3 is incompatible with Version 2, and we have decided to stick with Version 2. Also, there are known bugs in the 64-bit version of 2.7.1 for MacOS, so download the 32-bit version regardless of the capabilities of your machine.