The Essentials

Course Details:CS 111 (Intro to CS), Winter 2015, Carleton College.
Meetings:4a (MW 12:30pm–1:40pm, F 1:10pm–2:10pm) in CMC 102.
Instructor:Jadrian Miles; CMC 327, x4976, jadrian
Office Hours:M 2pm–3pm; W 11am–12pm; Th 10:30am–11:30am; F 9:30am–10:30am
Prefect:Sef van Kan, vankans
Grader:Jamaica Lammi, lammij
Textbook:Python Programming in Context by Bradley Miller and David Ranum (1st ed., 2009)

Course Goals & Content

The primary goal of this class is to get you to love computer science! I want you to come away understanding how empowering and fun it can be to think about and design algorithms. Even if you don't choose to be a CS major, this class will teach you some very useful skills, both procedural (how to program a computer) and conceptual (how to break down solving a problem into simple steps), that you can apply to other areas of your life.

In terms of content, in this class you will learn basic principles of computer science, and get practical experience with them by writing programs. Along the way, you'll also learn how to write programs in our language of choice: Python.

My intention is that you should be able to do the following by the end of this course:

Course Structure

For explicit details about what's assigned when, please see the Schedule.

Course Requirements

Who (and How) to Ask for Help

If you need help with an assignment, you can consult the book, post to Piazza, consult with other students, consult with a teddy bear (really! It works!), search online, talk to the prefect, ask a lab assistant (in CMC 102 or 306, evenings and weekends), or come to me. We'll talk some in class about good strategies for searching for answers online, and how best to ask people for help.

If you'd like help from me, please come see me! In particular, many questions are easier to answer as a back-and-forth discussion in person. I also try to answer questions promptly on Piazza. Generally I don't answer questions late in the evening or on weekends.

If you have a question or concern about grading, please talk to me first rather than going to the grader.

In this class, as with all classes at Carleton, there are a number of college-wide resources that can be of help: the library, the Write Place, the department's online resources. Feel free to talk to the lab assistants in the CS labs on the 3rd floor of the CMC in the evenings; they are often CS majors and may be able to help. The Math Skills Center may be able to help you with some aspects of the course. Finally, the college has a tutoring program available too.


Your grade will be computed as follows:

Component% of Overall Grade
Participation & Exercises15%
Regular Projects30%
Final Project25%

Using the above weights, a total of 90% and up will earn you some level of A, 80% and up at least some level of B, 70% and up at least some level of C, 60% and up at least some level of D.

Late Policy

Given the important role they serve in the day-to-day structure of our class, no late reading exercises will be accepted; that is, an exercise submitted after the due time (15 minutes before the start of class) will automatically be counted as a 0.

Projects turned in between 0 and 12 hours late will be penalized by 25 percentage points; between 12 and 36 hours, the penalty is 50 percentage points. Any project turned in more than 36 hours late will be counted as a 0. As I mentioned above, it is usually best to submit incomplete work on time than to submit complete work late. The number-one piece of advice that prior students have written to share with you is this: projects always take longer than you expect. Make sure that you start early. If you do start right away, and work consistently, you should have no problem meeting the deadlines. If you start feeling behind in class, come talk to me.

This scheme is designed to eliminate the distinction between “legitimate” and “illegitimate” late submissions. Unless something truly extraordinary happens, there will be no extensions given; in extraordinary circumstances, talk to me well in advance. If you turn something in late, no explanation is necessary or desired.

Working Together

Learning and coding are both collaborative arts, and in this class you will do a lot of the work in pairs, which I will assign. All reading exercises (and quizzes) are individual assignments. For all the projects and in-class activities this term, however, we will be using a technique called pair programming: you and your partner work side-by-side. Both partners actively collaborate in generating ideas and thinking through problems. When it comes time to write code, you still work side-by-side at a single machine. At any given time, one person is typing and the other is observing, making suggestions and pointing out bugs. You should switch roles frequently, and make sure to keep a 50/50 balance of who serves what role.

The work that you create with your partner is a joint effort and you will both receive the same grade. It is your responsibility to contribute fully to the final product, and to let your partner contribute fully too.

Any work you turn in must be your own work (or the work of you and your partner together). You are free to consult with any of the resources mentioned above, but you are required to credit any assistance you receive, in writing, in what you turn in. You should be prepared to explain any part of anything you submit, without the assistance of your partner. It is your responsibility to make sure that you fully understand the work that you create in your team.

Collaboration and Plagiarism

There are two kinds of working together: Collaboration and Plagiarism. The former is encouraged; the latter is forbidden. But when you're starting out, it can be hard to tell the difference between them. The two essential distinctions have to do with transformation and attribution — the artifact (writing or code) that you submit must be entirely your own work (every last word of it), and if any ideas embodied in your work were provided or inspired by someone or something other than yourself (or your team), you must cite this source.

Plagiarism is the process of (intentionally or unintentionally) presenting the work of someone else in such a way that a reader might assume it was your own. Here are some examples — note that this list is non-exhaustive:

If you have any uncertainty about a particular instance of working together, make sure to check with me first.

Academic Honesty Policy

I am obligated by Carleton policy to report to the Dean of Students any suspected plagiarism or violations of the College's academic integrity policy. The Dean, in turn, brings it to the Academic Standing Committee. The academic penalty for a finding of responsibility can range from a grade of zero in the specific assignment to an F for the course. Please familiarize yourself, if you haven't already, with the Dean of the College's detailed guide to academic integrity.

* With few exceptions, “in advance” means “before the beginning of the term”. I am willing to be flexible about attendance in truly exceptional cases involving serious illnesses, serious injuries, or other unforeseeable, truly disruptive circumstances. Job interviews, extended vacations, political protests, etc. don't count, even as much as I support all those things.