This course provides an introduction to the field of computer science using the Python programming language. Topics include iteration and recursion, basic data structures, sorting and searching, elementary analysis of algorithms, and an introduction to object-oriented programming. This course will place special emphasis on working with and making sense of data in order to connect course material with applications in other disciplines. By the end of this course we hope you have a good basic understanding of how to develop (design, code, and debug) medium-sized programs in Python, and have a basic understanding of how one might analyze programs for correctness and efficiency.

This course (or one of the other variations of CS 51) is a prerequisite for all upper level Computer Science courses.

Prerequisites: None. In this course we assume that you have no previous computer programming experience in any language. If you have had significant previous experience, please talk to the instructor, as CS 54 may be more appropriate.

Lectures

There are two sections of this class. Lectures for the morning section take place on Mondays and Wednesdays 11:00-12:15. Lectures for the afternoon section take place Mondays and Wednesdays 2:45-4:00. All lectures will take place in Edmunds 114. See the schedule for details.

Labs

There are two lab sections. One section takes place on Monday evenings 7-9:45pm in Edmunds 219/229. The other section takes place Tuesday afternoons 1:15-4pm in Edmunds 229. You may enroll in either lab section (space permitting), but please attend your assigned lab section.

Instructor

Eleanor Birrell Eleanor Birrell
eleanor.birrell@pomona.edu
Edmunds 221
Office hours: Mondays and Wednesdays 4-6pm

I am generally in my office most afternoons, so feel free to drop by with quick questions or just to say hi.
The best way to contact me is by email. I try to respond to all emails within 24 hours.

Lab Instructors

Mark Kampe Mark Kampe
mark.kampe@gmail.com
Edmunds 128
Lab: Tuesdays, 1:15-4pm
Office Hours: Tuesdays and Wednesdays, 10am-noon and Tuesdays, 4-5:30
Zilong Ye Zilong Ye
Zilong.Ye@pomona.edu
Edmunds 256
Lab: Mondays, 7-9:45pm.
Office Hours: Thursdays, 2-5pm

TAs

Jenna Brandt Jenna Brandt Mentor Hours: Tuesdays, 7-9pm in Edmunds 229
David D'Attile David D'Attile Mentor Hours: Monday lab, Wednesdays 7-9pm in Edmunds 229, Fridays 9-11am in Edmunds 227.
Ethan Horton Ethan Horton Mentor Hours: Tuesday lab, Fridays 3-5pm in Edmunds 227
Matt Ivler Matt Ivler Mentor Hours: Monday lab, Thursdays 7-9pm in Edmunds 229, Fridays 10am-noon in Edmunds 227
Ruben Pacheco-Caldera Ruben Pacheco-Caldera Mentor Hours: Monday lab, Thursdays 7-9pm in Edmunds 229
Erin Puckett Erin Puckett Mentor Hours: Tuesday lab, Fridays 2-4pm in Edmunds 227
Emily Tomz Emily Tomz Mentor Hours: Monday lab, Fridays 1-3pm in Edmunds 227

Assignments

There will be twelve assignments in CS 51P. All assignments will be due on Friday afternoon at 5pm. See the schedule for details.

Assignments will be started in the laboratory sessions. It is your responsibility to complete the assignments and turn them in on time. You get five late days that may be used at your discretion to submit assignments after the deadline with no penalty. For partner assignments, both you and your partner must spend a late day available to use one. Further extensions after you have exhausted all your late days will be granted only in exceptional circumstances.

Exams

There will be two checkpoints and one final exam in this course. See the schedule for details.

Grades

Finishing all the assignments successfully is required to pass the class. After that, grades are computed on a point basis, as follows:

Assignments: 35%
Checkpoints: 30%
Final Project: 15%
Final Exam: 20%

Academic Integrity

In general, collaboration is encouraged in this course. This means that you may discuss approaches to solving problems with anyone in this class, including faculty and TAs. As specified in the department policy, you may help, or receive help, in using systems and tools, in brainstorming debugging or testing strategies, and in working with high-level design issues. However, unless otherwise specified, you should never be looking at another student's code. Moreover, using material from any external source---web page or person or book---is forbidden. The actual solutions to the laboratory exercises and the code you submit must be your own. Except for material from the textbook or lecture, you may not copy, retype, view, or share a copy of any file. Any ideas that do not originate with you should be cited. If you have any questions about what is appropriate or inappropriate collaboration, please speak with the instructor.

Course materials provided to you, including graded papers and exam summaries, are for your use in the course. You are encouraged to use them to the fullest extent, but you are not to publish them or distribute them to other people or organizations.

There will be stringent penalties for violations of academic honesty, up to failure in the course.

Disability Accomodations

Pomona College is committed to providing equal opportunity for participation in all programs, services and activities. Requests for accommodations may be made by contacting the Disability Coordinator on your home campus. At Pomona College, that person is Associate Dean of Students Jan Collins-Eaglin. Pomona College’s policy on disability accommodations can be found at the Dean of Student’s website.

Accommodation forms must be submitted and accommodations agreed upon by the last day to add classes, or within five days of the date on which the form was signed by an appropriate dean, whichever comes later. Many accommodations will be handled through the Student Disability Resource Center in the Tranquada Student Services Center.