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


Grading policy

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

Participation 10%
Lab write-ups10%
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.

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.

Good-Faith Grade Guarantee

Because I realize that computer science does not click will 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, and spending the requisite time on each examination.

Learning activities

This class meets four times per week on Monday, Tuesday, Wednesday, and Friday from 10 to 10: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 many days with a short lecture/discussion and end with a reflective 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 and may be requred to recite what you have learned (or ask a question). 

You may want to 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, so that you can ask these questions in class.

Some ideas become clearer as you work through the lab, but I want you to start the lab with some understanding of the basic ideas. If you find the reading unclear or confusing, please let me know so that we can discuss your 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.

One unexcused absence (your "oops" day) will have no effect on your participation score. Missing 2-4 classes (one week) will reduce your participation score by 10 points. Missing 6-8 classes (two weeks) will reduce your participation grade by 25 points. Missing 9-12 classes (three weeks) will reduce your participation grade by 50 points. Missing more than 12 classes (three weeks) will result in a 0 for participation.

To have your absence count as excused, you must either (a) ensure that I receive documentation of the circumstances of your absence from Health Services or Student Affairs, or (b) contact me via email to make suitable arrangements at least seven days in advance. In particular, students on sports teams should provide me with their game schedules as soon as possible.

Because I care about you, if you do miss class unexpectedly, I would appreciate a quick call or email as soon as you are able. Don't be surprised if I call or email to make sure you are OK.

When you do miss class, it is your responsibility to talk to a classmate about what you missed and only then to see me to discuss any further questions or concerns. It is your responsibility to complete the lab assignment you missed.

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 (in fact, please don't!), but 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-02: Write-up n - 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 are 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.


A homework assignment is due each Wednesday (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 to 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.

PLUS (105%) - Exhibits exceptional insight and/or craftsmanship.
CHECK (90%) - Meets the requirements of the assignment.
MINUS (75%) - Does not meet the requirements of the assignment.
ZERO (0%) - 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 Wednesday, May 18. 

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 double-sided, 8.5"x11" sheet of hand-written notes. 

Academic Honesty

I expect you to follow the highest principles of academic honesty. Among other things, this means that any work you turn in should be your own or should have the work of others clearly documented. However, when you explicitly work as part of a group or team, you need not identify the work of each individual (unless I specify otherwise).

You should never give away answers to homework assignments or examinations. You may, however, work together in developing answers to most homework assignments. Except as specified on individual assignments, each student should develop his or her own final version of the assignment. On written assignments, each student should write up an individual version of the assignment and cite the discussion. On non-group programming assignments, each student should do his or her own programming, although students may help each other with design and debugging.

When working on examinations, you should not use other students as resources.


Work is due at the time and date specified in the assignment. Except under exceptional circumstances, each weekday (MTWThF) your work is late will reduce your grade by one level (e.g., a check becomes a check minus).

When exceptional circumstances prevent timely submission of your work, you must either (a) contact me to make suitable arrangements when the assignment is handed out, or (b) ensure that I receive documentation of the circumstances from Health Services or Student Affairs.

Because I am concerned about your health and well being, I will also accept late work if (1) you start the assignment at least three days in advance of the due date; (2) you get to sleep by midnight the night before the assignment is due; (3) you expend a reasonable amount of effort to complete the assignment by midnight; (4) you turn in a letter attesting to facts (1), (2), and (3) when the assignment is due; and (5) you talk to me ASAP about any problems you've had on the assignment.

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 two days preceeding the assignment due date.

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

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.

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


If you have any 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 (x3702). See the Student Affairs page on Academic Accomodation for more information.

Janet Davis (

Created January 19, 2007
Last revised January 27, 2011