The Essentials

Course Details:CS 111 (Intro to CS), Spring 2014, Carleton College.
Meetings:2a (MW 9:50am–11:00am, F 9:40am–10:40am) in CMC 102.
Instructor:Jadrian Miles; CMC 320, x5173, jadrian
Office Hours:M 8:15am–9:15am; W 2pm–3pm; Th 10am–12pm; F 12pm–1pm
Prefect:Katja Collier, collierk
Grader:Casey Goodge, goodgec
Textbook:Python Programming: An Introduction to Computer Science by John Zelle (1st ed., 2004)
HW Hand-in:

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 write 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 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. In particular, you will learn:

Course Requirements

Who (and How) to Ask for Help

If you need help with an assignment, you can consult with other students, consult the book, search online, talk to the prefect, ask a lab assistant, post to Piazza, 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! I am unlikely to answer detailed questions about bugs via email, as it's much easier and more fun for me to do so in person. My office hours are posted at the top of the page; please either stop by then or email me several hours in advance to arrange to meet. I am rarely available on Tuesdays and weekends, as I reserve those for research and other work. I try to respond to email promptly, but I can't promise any faster turnaround than the afternoon of our next class meeting after you email me.

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 & Quizzes10%
Final Project14%

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.

Homework will be submitted via Moodle. Homework turned in between 0 and 12 hours late will be penalized by 25 percentage points. Anything turned in more than 12 hours late will be counted as a 0.

You will have the opportunity to resubmit up to three assignments throughout the term, after you get feedback on them. There will be a separate due date for resubmission. Your resubmitted work will be graded, and the final grade for the assignment will be the average of the grades on the original submission and the resubmission.

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. If you turn something in late, no explanation is necessary or desired.

Working Together

Learning and coding are both collaborative arts, and you are encouraged to work together with your classmates.

For some programming assignments, you will be assigned a partner to work with. You and your partner should engage in the pair programming model: Both of you should be sitting at a single machine, side by side. One student should be “driving” (that is, using the keyboard and mouse) and the other should be following along, providing ideas, looking for bugs. Make sure that each partner gets a relatively equal chance to drive.

There will also be individual assignments that you will complete on your own. You are permitted to collaborate with others in the class for ideas and to help solve problems, but the solution should be your own.

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, 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:

We'll talk about these in more detail during class, but 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.