CS 101 - Introduction to Computing

Spring 2018

Instructors Professor A Briggs, MBH 640B, briggs@middlebury.edu; Professor J Grant, MBH 636, jgrant@middlebury.edu; and Ruben Gilbert, MBH 505, rgilbert@middlebury.edu
Course website go.middlebury.edu/cs101 or go/cs101
Lectures TR 8:00-9:15 [section A], TR 9:30-10:45 [section B], MBH 104
Labs R 1:30-2:20 [section W], F 10:10-11:00 [section X], F 11:15-12:05 [section Y], F 1:45-2:35 [section Z], MBH 505
Discussion forum piazza.com/middlebury/spring2018/cs101/home
In-class polling Socrative
Textbooks Think Python (local copy) Primary, CS for All
Tutors go/cstutors

Office hours
Professor Briggs, MBH 640B: Monday 10-11:30, Wednesday 8:30-10, and by appointment
Professor Grant, MBH 636: Monday 2-3:30, Wednesday 1-2:30, and by appointment
Ruben Gilbert, MBH 505: Mon/Tues 1:30pm-5pm, Wed 1:30pm-2:30pm, Thurs 12pm-1:30pm, and by appointment
Peer tutors, MBH 505: Sun/Mon/Tue/Wed/Thu 7-9pm

About the class

This is an introductory computer science class and no prior experience is expected or required. It is one of several entry points into the CS major. We will do a lot of programming, and you will come out of the course knowing a fair amount of Python, but this is an introduction to computer science, not a “learn to program in Python” class. There is a lot of Python that we will not cover. Topics that we will cover include:


Assignments 40%
Labs and participation 5%
Midterm 25%
Final 30%

Weekly homework and labs

Assignments will typically go out on Wednesdays and be due the following Wednesday before midnight. Late homework will be penalized 10% if one day late; no homework will be accepted after 24 hours without a conversation with us first.

There will be weekly labs on Fridays, during which you can work on your homework assignment with assistance from course staff. Part of the time may be used for interactive lectures.


You are expected to attend class and lab. We cover a lot of material each day and don’t regurgitate the book(s). We'll post examples from class and any other media we use, but do not expect to be able to simulate the class by reading the materials posted online.

Getting help

We’ll use Piazza for our class discussions outside of class. Rather than emailing questions to us or the tutors, we encourage you to post the questions on Piazza. This will allow other students to answer questions and to benefit from the answers you receive. This system will only work if you use it, so please do so. One caveat: many of the programs we will write will actually be quite short (don’t let this fool you into thinking they will be easy to write) - please do not post entire programs/function/classes on Piazza except in private messages to course staff.

Honor code and collaboration

Short version Help each other, but do not share code.

Long version In computer science, we build on the work of developers before us. Most of us learned to code by copying code and finding ways to tweak it to do what we want. Almost no computer programs are built without building on the work of others, either in the form of algorithms, libraries, or even just short snippets of code.

On the other hand, there are questions of intellectual property and academic integrity. These are considerably murkier waters than you may face, for example, writing a history paper, or doing a problem set in math. With code, you can “accomplish” spectacular things by copying the right chunks of code without ever knowing how it works.

We encourage you to help classmates to debug misbehaving code. We encourage you to post questions (and answers!) on Piazza. But you need to do so in a way that respects other people’s work and in a way that contributes to your intellectual development rather than hindering it (or trying to mask your lack of it). This is not a race to get a good grade. The grade is at best a carrot along the way of doing the work required to become better educated. As such, don’t just go looking for code that you can turn in to satisfy an assignment.

Do not work collaboratively unless indicated by the assignment. You can help one another, but we do not want to see identical assignments that differ only in small ways. If someone does show you code (as an explanation or asking for debugging help), do not copy it. Retain ideas, and go away and write your own version later. Attribute any ideas, etc, that you pick up (this goes for classmates, books, online resources, etc). Be explicit. Indicate where you got the idea, approach, technique, etc. Explain what your contribution was. Make sure that your contribution demonstrates that you understand what was not your work alone. Finally, if you have any doubts, just ask us first.

Accommodations for disabilities

Students who have Letters of Accommodation in this class are encouraged to contact us as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. For those without Letters of Accommodation, assistance is available to eligible students through Student Accessibility Services. Please contact Jodi Litchfield or Courtney Cioffredi, the ADA Coordinators, for more information: Courtney Cioffredi can be reached at ccioffredi@middlebury.edu or 802-443-2169 and Jodi Litchfield can be reached at litchfie@middlebury.edu or 802-443-5936. All discussions will remain confidential.