Summary: This page explains course activities, policies, and procedures.


Learning activities

This class meets four times per week on Monday, Tuesday, Wednesday, and Friday from 8:00 to 8:50 a.m.

Computer science 151 is taught in a collaborative workshop style. Some days we will spend the class period working through problems or concepts; even then, my teaching style tends to be more interactive than a typical lecture. Most days, you'll work on laboratory problems at the computer with other students in the class. We will start and/or end many days with a short discussion. Participation is key.

Because our time in class is limited, you should come prepared to each class. What does it mean to be prepared? First, check the schedule for today's class meeting to find out what we will be working on.  Second, if there is a reading listed for today's class meeting, read it before class. Third, come to class on time, with paper and a writing instrument, ready to be an active participant.

The evening after class, you should complete the lab exercise so you can gain its full benefit. You will be expected to turn in some lab write-ups, and you may be quizzed about about laboratory exercises as well. These are discussed in more detail below.

You will also have the opportunity to exercise your creativity in an open-ended project and demonstrate your learning in three take-home midterm exams (plus an optional final exam).


There is no textbook for this course; however, there is a series of online readings. The readings are short, but important. You are expected to do the reading before class.

To maximize time for hands-on exercises, I plan to minimize the time I spend lecturing.  I will often start class by asking, "Are there any questions before we begin?" If there are no questions from students, I may ask the class a question instead to make sure you are ready to do the lab. So, you should come to class prepared to ask and answer questions about the reading.

To get the most out of the readings, try the SQ3R method:

Skim the material, especially the introduction, summary, and headings, to get the big picture and an idea of what is important.
Formulate questions that you expect the reading to answer.
Read thoroughly, with particular attention to how the questions are answered.
Check that you can answer the questions, in your own words, from memory.
Go back over the whole, focusing on parts for which you can't answer the questions. Also note any questions you have that the reading doesn't answer or that you are still confused about, so that you can ask these questions in class.


Because much of our work in this course involves collaboration and discussion, you will be evaluated on your participation.

Participating in class involves

Students who regularly meet these criteria can expect to earn 90 points (an A-) for their participation grade. I will reward students who regularly provide significant insights or guide discussion in productive ways with a higher participation score. Students who fail to participate regularly or who participate in counterproductive ways (e.g., by dominating the conversation or making inappropriate comments) can expect to earn a lower score.

You may have one unexcused absence without affecting your participation grade (see the attendance policy below).

Lab write-ups

Completing lab exercises is important to your learning. Carefully writing up your work will give you your own, personal study guide which you will find very useful in preparing for quizzes and exams. Moreover, your exams are "open notes", which means that you can use any solutions you write during the labs as part of your solutions to exam problems (with proper citation).

I will designate several labs to be written up throughout the semester. Lab write-ups will be due at the beginning of the next class session. When a lab is to be written up, I will let you know before you leave class, and also via the course web site.

You and your lab partner(s) may complete the write-up together or individually; you should decide which by the end of class. If you complete the lab on your own, acknowledge your partner in your writeup.

Your write-up should include your solution to each exercise in the lab. If the exercise directs you to write Scheme code, include your Scheme code. If the exercise directs you to find out what the output of some expression is, copy and paste the output from the MediaScript console. If the exercise asks a question or asks you to explain something, write an answer in English. You do not need to copy the entire lab into your write-up, but do include the problem number for each exercise.

Send your lab write-up to me and to your mentor ( in the body of an email. The subject of the email should be of the form "CSC 151 Lab: [Title of Lab]".

Lab write-ups will be graded on a binary scale, 0 or 1. You will earn a 1 if your writeup includes a solution or evidence of serious effort for each exercise in the lab, and a 0 if the write-up was not turned in or if some exercises were not attempted. If you were not able to complete some exercises because of their difficulty, you can still earn full credit by explaining where you got stuck and coming to talk with me as soon as possible.

In short, every diligent student should earn full credit for lab write-ups.


Homework assignments are typically due each Tuesday at 11:59 p.m. (unless there is an exam or project due). These homework assignments are intended to go beyond merely checking that you've learned the basic concepts (the quizzes will do that) to let you learn and apply some new algorithms and ideas, as well as gain further practice with important ideas and constructs. However, the homework assignments are not intended to be huge undertakings. If you find the assignments are consistently taking longer than 3-5 hours, please come talk with me.

The course schedule includes 8 homework assignments; your lowest homework grade will be dropped.

I will give you instructions about what forms of collaboration are permitted on each homework assignment.

Since I want to give you room to go above and beyond the requirements of the assignment, homework will be graded on the following scale. I expect most work to receive checks.

(105%) Exhibits exceptional insight, creativity, and/or craftsmanship.
(90%) Complete; meets the requirements of the assignment.
(75%) Incomplete; does not meet the requirements of the assignment.
Not turned in.


The course will also include one more substantial project, in which you will have an opportunity to exercise your creativity in designing and implementing a program over a two-week period. I will inform you of specific requirements and my grading rubric when the project is assigned.


Each Friday, there will be a short, written quiz covering two or three key ideas from the previous week. Since lab work is done in pairs, the quizzes are intended to check each individual student's understanding of these ideas in a timely fashion (i.e., well before the examinations). If you (or many students in the class) are missing a key concept, I want to revisit that concept as soon as possible so we can build on it in later lessons.

The course schedule includes 12 quizzes; your lowest quiz score will be dropped.

Since the goal of the quizzes is to check that you have learned basic skills, an answer that is basically correct will receive full credit, even if there are minor syntax issues. For code, my rule of thumb is that the code is basically correct if I believe you could make it work in a few minutes at the computer, and it uses the required ideas. A partially correct answer will receive partial credit at my discretion.

If you require accomodations for these quizzes, please come talk with me as soon as possible. The first quiz will be at the end of Week 1.


You will have opportunities to demonstrate what you have learned through three take-home exams. You should find they challenge you to go beyond what we have done in class.

Take-home exams are open notes, open computer, and open instructor. However, because I intend the exams to assess your own individual understanding of the material, collaboration on exams is not permitted. You should not talk to anyone (except me) about take-home exams before they are due. You should not discuss the problems on the exam, nor your answers. You should not give any information about your progress on the exam (e.g., which problems you have completed or which you found difficult), and neither should you ask others about their progress.  If you have any doubt about what is and is not permissible, ask me.

The final exam is optional and can be used to replace your lowest score on one other examination.In accordance with the schedule issued by the Committee on Academic Standing, the final examination for this course will take place at 9 a.m. on Thursday, May 17.

Unlike the midterms, the final exam will be an in-class exam.  Talking with other students during the exam will not be permitted. You may ask me questions. The final exam will be closed-book and closed-computer, but you will be allowed to use one single-sided, 8.5"x11" sheet of hand-written notes.


Academic honesty

As students, you are members of the academic community. Both the College and I expect the highest standards of academic honesty. (See the Grinnell College Student Handbook, e.g., Among other things, this means clearly distinguishing between work that is your own, and work that should be attributed to others. This includes ideas and examples that you draw from labs and readings.

It is expected that you will follow the collaboration policies given in this syllabus and on assignments. In particular:

As an instructor, I will meet my obligation to bring any work suspected to be in violation of the College's Academic Honesty Policy to the attention of the Committee on Academic Standing, after which there is no recourse with me.


If you have a disability that requires accommodations, please let me know early in the semester so that we can work together to find accommodations that meet your learning needs. You will also need to provide documentation of your disability to the Academic Advising Office, located on the third floor of the Rosenfield Center (x3701). See the Student Affairs page on Academic Accomodation for more information.


I know that sometimes things happen. Therefore, one unexcused absence (your "oops" day) will have no effect on your participation score. If you are absent, I would appreciate a written explanation (email is appropriate). If you know in advance that you will be absent for any reason, please notify me in writing (again, email is fine) at least 7 days in advance so we can make suitable arrangements.

When you do miss class, it is your responsibility to complete the day's lab exercises on your own and talk with a classmate about what you missed. After that, you may follow up with me about any further questions or concerns.


Work is due at the time and date specified in the assignment. Because I am concerned about your health and well-being, I will accept late work if

  1. you start the assignment at least three days in advance of the due date;
  2. you expend a reasonable amount of effort to complete the assignment by midnight;
  3. you send me an email by midnight attesting to facts (1) and (2), including whatever work you've done so far;
  4. you go to sleep after sending me that email; and
  5. you schedule a meeting with me right away to talk about any problems you've had on the assignment.

Barring exceptional circumstances, exams must be turned in at the time they are due. The "health and well-being" policy applies only to homework, not to exams.

Deadlines for exercises involving programming will automatically be extended by at least one class period if MathLAN is down for an unscheduled period of 3 or more hours during the three days preceeding the assignment due date.

Absolute deadline: All work must be turned in by Friday, May 18 at 5 p.m.

Extra credit

Successfully undertaking an activity for extra credit will add 1/2 of a percentage point to your final score, up to 3 points total. I will propose opportunities for extra credit throughout the semester---often talks on CS-related topics, but sometimes programming activities. You may propose ideas as well.


I will use the following scheme as a base for weighting grades for individual activities in the final grade: 

Participation 10%
Lab write-ups 10%
Quizzes 20%
Homework 20%
Project 10%
Exams 30%

I do not believe in "grading on a curve"; I would be pleased if you all earned A's in this course.

Good-Faith Grade Guarantee

Because I realize that computer science does not click with all students, I reward effort as well as outcome. Hence, every student who makes the effort to learn in this class will pass with at least a C. A good-faith effort includes missing no more than two classes, turning in every homework assignment and lab write-up, making a sufficient effort on each exam, and coming to talk with me if I ask you to.

Getting help

The Math Lab makes tutors for 151 available at regularly scheduled times, which are posted on the front door. These tutors can be found in our classroom, SCI 3813. Our course mentors will also have evening office hours.

You can also get help from me, either during office hours or by appointment. I really enjoy working with students one-on-one.

Janet Davis (

Created January 19, 2007
Last revised January 18, 2012
With thanks to Sam Rebelsky, Henry Walker, and Jerod Weinman