Syllabus

Logistics

Instructors Bill Jannen, Iris Howley
Technical Support Lida Doret
Webpage & Email https://www.cs.williams.edu/~cs134, cs134staff@williams.edu
Lectures MWF 9:00-9:50am
MWF 10:00-10:50am
MWF 11:00-11:50am
Labs Mon 1:00-2:30pm, Mon 2:30-4:00pm
Tues 2:30-4:00pm
Classroom Schow 030A (Lectures), TCL 216/217A (Labs)
Python Resources Optional: Allen Downey’s Think Python, 2ed, an online reference book.
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:

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

Programming Assignments and Pre-labs

Each week students will be assigned a lab project. Most lab assignments will be posted every Friday. Lab submissions are due:

Pre-labs are short “paper and pencil” assignments that are meant to organize your thinking about important lab concepts before you arrive, and they are due at the start of the lab meeting itself. Pre-labs are graded pass/fail and together make up 5 out of the 30 percentage points allocated to lab assignments.

Labs will be graded on a letter scale (A–F). An assessment-sheet will be distributed with the lab each week that includes specific details about assignment expectations.

Homework

Each week students will be assigned homework. Homework assignments will be posted every Wednesday and are due on Monday at 10pm. Homework will be used to test comprehension on important course concepts and help students prepare for the exams. We will drop your lowest homework score from your final grade.

Late Policy

Students are expected to turn in all assignments by the due date to receive full credit. For up to two individual lab assignments, students may request a 12-hour extension. These extensions are meant to accomodate (potentially) unexpected happenings that come up throughout the semester, including atheltic competitions, illness, and other life events. A reason does not need to be given, but extensions must be requested before the assignment’s original deadline.

There are other life events that fall outside of the scope of a 12-hour extension. The instructors will try to be reasonable and work with you to develop a plan that is appropriate for your unique circumstances. Please contact your instructors as soon as possible if you are facing challenges.

Exams

The midterm exam will be on the evening of Thursday, October 17. The final exam will be scheduled by the registrar’s office to occur during the final exam period. The exams will be closed book, closed notes, and will test 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 completing the weekly lab and homework assignments, students are responsible for reading supporting material and investigating approved online resources (documentation, tutorials) as necessary.

Community

We embrace diversity. We welcome all students and we 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. Unless otherwise indicated, labs are expected to be the work of the individual student, designed and coded by them alone. Help interpreting error messages is allowed, but, if you are taking photos of someone else’s screen, or if you are telling someone else what to type, it is likely the work is no longer the work of an individual student. The following are all considered violations of the Honor Code: (a) giving your solution to other students, (b) submitting another person’s solution as your own, or (c) using another person’s solution as the starting point for your solution.

One of the major goals of this course is to learn how to build programs. Therefore, you should never use artificial intelligence tools (like ChatGPT or GitHub Copilot) to assist you with labs or other assignments. Any use of generative AI technology is considered a violation of the Honor Code.

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 CSCI 134 course.

Accommodations

If formal accommodations need to be made to meet your specific learning or physical abilities, you should contact your instructors as soon as possible to discuss appropriate accommodations. You should also contact the Office of Accessible Education. We will work together to ensure this class is accessible and inclusive.

Personal 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 reach out to the Dean’s Office (x4171).

Public Health

To keep our classroom and lab environments as healthy as possible, use common-sense measures such as wearing a mask if you have even minor cold-like symptoms. If you have a fever or feel ill, please do not come to class or lab and inform the course staff of your absence. 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 as you recover from your illness.

Lab Grading

Programming labs will be graded on the following scale:

Grade Description
A A flawless submission that meets all the requirements and gets the job done in a particularly elegant way.
A- A submission that satisfies almost all the requirements—a job well done.
B+ Submission meets the major requirements for the assignment with a few minor issues.
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.

Getting Help

The course staff and TAs will hold weekly help hours for all students. To get the most up-to-date help hour schedule, add the CSCI 134 Calendar to your Google Calendar.

  1. Staff Help Hours: The course staff will hold weekly help hours for all students in the CS common room:

  2. TA Help Hours: CSCI 134 TAs hold weekly help hours in TCL 217A/216. See CSCI 134 Calendar.

  3. Tutoring: Free tutoring is available for any student enrolled in this course through the office of Content Tutoring. You are welcome to schedule an individual tutoring session or visit the Math and Science Resource Center (the MSRC) for help. The MSRC is for drop-in tutoring where you can ask tutors a quick question, collaborate with people in your class, or just get some work done among others. One note: tutors for this class will only be available in the MSRC on particular weeknights. To find the MSRC schedule or make an appointment with an individual tutor, please visit Accudemia.

Acknowledgements

Many individuals, including Jeannie Albrecht, Duane Bailey, Rohit Bhattacharya, Lida Doret, Molly Feldman, Stephen Freund, Mark Hopkins, Iris Howley, Kelly Shaw, Shikha Singh, Bill Jannen, and Brent Heeringa have contributed to the materials for this course.