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.
There are two sections of this class. Lectures take place on Mondays and Wednesdays at 1:15-2:30pm and 2:45-4pm. Lectures will take place in Seaver Commons 102. See the schedule for details.
There are two lab sections. One section takes place on Wednesday evenings 7-9:50pm in Edmunds 219/229. The other section takes place Thursday evenings 7-9:50pm in Edmunds 219/229. You may enroll in either lab section (space permitting), but please attend your assigned lab section.
Eleanor Birrell eleanor.birrell@pomona.edu Edmunds 221 |
Office hours: 8-10pm Mondays and
1:30-3pm Tuesdays.
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 or slack. I try to respond to all messages within 24 hours. |
|
Thomas Yeh Thomas.Yeh@pomona.edu Edmunds 128 |
Office Hours: Wednesdays 9:30-10:30am (Edmunds 128) and Thursdays 10am-noon (Zoom) | |
Zilong Ye Zilong.Ye@pomona.edu Edmunds 256 |
Office Hours: Thursdays 1-2:30pm (Zoom) |
Ebenezer Semere | Mentor Hours: Saturdays 2-4pm + Thursday lab | |
Elly Rokeach | Mentor Hours: Sunday 2-4pm + Wednesday lab | |
Jan Charatan | Mentor Hours: Mondays 8-10pm + Wednesday lab | |
Kaito Robson | Mentor Hours: Tuesdays 6:30-8:30pm + Thursday lab | |
Michele Tang | Mentor Hours: Mondays 4-6pm + Wednesday lab | |
Robin Shen | Mentor Hours: Sundays 2-4pm + Thursday lab | |
Tonya Chivandire | Mentor Hours: Fridays 1-3pm + Wednesday lab | |
Unity Tambellini-Smith | Mentor Hours: Sundays 8-10pm + Thursday lab |
There will be ten assignments in CS 51P. All assignments will be
due on Tuesday evening at 11:59pm PT. 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.
There will be two checkpoints and one final exam in this course. Checkpoints will take place in class on October 10 and November 21. The final exam will take place on December 13 from 7-10pm. See the schedule for details.
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%
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.
All students are welcome in this class, and all of the course staff are committed to providing equal opportunity for all students. If you have concerns about anything that is preventing you from fully participanting in the class, please talk to us so that we can address it. Requests for formal accommodations may be made by contacting the Disability Coordinator on your home campus; all accomodations will be honored.