Syllabus

Course website:

http://www.cs.williams.edu/~cs134/

Instructors:

Jeannie Albrecht, Rohit Bhattacharya, Steve Freund

Technical Support:

Lida Doret

Lectures:

MWF 9:00-9:50am (Rohit), MWF 10:00-10:50am (Jeannie), Schow 030A

Labs:

Mon 1:10-2:25pm (Rohit & Steve), Mon 2:35-3:50pm (Steve)
Tues 1:10-2:25pm (Jeannie & Steve), Tues 2:35-3:50pm (Steve), TCL 216/217A

Python Resources:

Allen Downey’s Think Python, 2ed, an online textbook.
Python documentation: https://www.python.org/doc/.


Course Description

We are surrounded by information. This course introduces fundamental computational concepts for representing and manipulating data. Using the programming language Python, this course explores effective ways to organize and transform information in order to solve problems. Students will learn to design algorithms to search, sort, and manipulate data in application areas like text and image processing, scientific computing, and databases. Programming topics covered include procedural, object-oriented, and functional programming, control structures, structural self-reference, arrays, lists, streams, dictionaries, and data abstraction. This course is appropriate for all students who want to create software and learn computational techniques for manipulating and analyzing data.

Organization

We will meet three times each week for lecture, and once a week for lab. During lecture hours we will learn new concepts and problem solving strategies. During the 90-minute lab section, we will gain hands-on experience with the concepts through programming assignments.

Grading

Final grades will be determined according to the following:

  • Programming assignments (labs): 40%

  • Homework: 10%

  • Midterm exam: 25%

  • Final exam: 25%

Each of these items are explained in detail in the following sections.

Programming Assignments

Each week students will be assigned a lab project. Labs will be posted every Friday. They are due:

  • Wednesday at 11pm for the Monday lab groups.

  • Thursday at 11pm for the Tuesday lab groups.

Labs will be graded on a letter scale (A-F). A gradesheet will be distributed with the lab each week that includes specific details about expectations and grading.

Homework

Each week students will be assigned homework on Glow. Homework assignments will be posted every Wednesday and due on Monday. Homework will be used to test comprehension on important course concepts and help students prepare for the exams.

Late Policy

Students are expected to turn in all assignments by the due date to receive full credit. Please contact your instructors as soon as possible if you cannot meet a deadline.

Exams

The midterm exam will be on the evening of Thursday, March 17. The final will be scheduled during the final exam period. The exams will be closed book, closed notes, and will stress conceptual understanding of the material. Details regarding the specific format of the exams will be discussed in class.

Workload Expectations

Attendance is required in both lecture and lab. In general, beyond the 4 hours we spend together during our class and lab meetings, students should expect to spend (on average) approximately 10 hours per week on work related to class. Aside from the weekly lab and homework assignments, students are responsible for reading supporting material (Think Python) and investigating online resources (documentation, tutorials) as necessary.

Community

We embrace diversity. We welcome all students and expect everyone to contribute and support a respectful and welcoming environment. If you have concerns, please share them with us or the college administration.

Honor Code

For programming assignments in computer science courses, the honor code is interpreted in very specific ways. Labs are expected to be the work of the individual student unless otherwise designated, designed and coded by them alone. Help locating errors and interpreting error messages is allowed, but a student may only receive help in correcting errors of syntax; help in correcting errors of logic is strictly forbidden. In general, if you are taking photos of someone else’s screen, looking at someone else’s screen, or telling someone else what to type, it is likely your work is no longer the work of an individual student. **Assistance in the design or coding of program logic will be considered a violation of the Honor Code

Also, to protect your work, please dispose of printouts and copies of your work carefully. Avoid leaving your programs on hard disks in labs and other public storage areas.

If you do not understand how the Honor Code applies to a particular assignment, consult your instructor. Students should be aware of the Computer Ethics outlined in the Student Handbook. Violations (including uninvited access to private information and malicious tampering with or theft of computer equipment or software) are subject to disciplinary action.

The College and Department also have computer usage policies that apply to courses that make use of computers. Read more about these policies here.

Intellectual Property

As per College policy, no part of this course may be reproduced and/or distributed. In particular, no videos recorded as part of this class may be shared with anyone external to the CS134 course.

Accommodations

If formal accommodations need to be made to meet your specific learning or physical abilities, you should contact your instructors as possible to discuss appropriate accommodations. You should also contact the Director of Accessible Education, Dr. G. L. Wallace (x4672) or the Dean’s office (x4171). We will work together to ensure this class is accessible and inclusive.

Mental Health

If you are experiencing mental or physical health challenges that are significantly affecting your academic work, you are encouraged to contact your instructor and/or speak with Dean’s Office staff (x4171).

Public Health

In an attempt to keep our classroom and lab environments as healthy as possible, students and staff will be required to wear a mask at all times in the classroom and lab. If you feel ill, please do not come to class or lab and let us know if you are unable to attend class due to COVID restrictions. We will work with you to make sure you can make up any missed work, and to develop a plan that allows you to continue making progress in the course during your time in isolation/quarantine.

Lab Grading

Programming labs will be graded on the following scale:

Grade

Description

A+

An absolutely fantastic submission of the sort that will only come along a few times during the semester.

A

A submission that exceeds our standard expectations for the assignment. The program must reflect additional work beyond the requirements or get the job done in a particularly elegant way.

A-

A submission that satisfies all the requirements for the assignment—a job well done.

B+

Submission meets the requirements for the assignment, possibly with a few small problems.

B

A submission that has problems serious enough to fall short of the requirements for the assignment.

C

A submission that has extremely serious problems, but nonetheless shows some effort & understanding.

D

A submission that shows little effort and does not represent passing work.

Acknowledgement

Many individuals, including Jeannie Albrecht, Duane Bailey, Rohit Bhattacharya, Lida Doret, Molly Feldman, Stephen Freund, Kelly Shaw, and Shikha Singh, have contributed to the materials for CSCI 134.