Course Mechanics

Summary: 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%
Exercises & discussion questions 15%
Labs and the little project 10%
BIG project 40%
Exams 25%

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

Learning activities

This class meets three times per week on Monday,  Wednesday, and Friday from 1:15 to 2:05 p.m. Although this is nominally a lecture class, don't expect much lecturing from me!

A major requirement of this course is to undertake a significant team software development project, here termed the BIG project. I have chosen a particular set of technologies to focus on that lend themselves well to web applications, so start thinking in that direction.

Before Fall Break, our focus will be on preparing for the BIG project. 

During this time, I expect you will need to spend a total of 8-12 hours per week to do readings and exercises, and to complete the labs. Don't expect to do the readings between 9 and 10 a.m. the day of class!

After Fall Break, you will embark on your BIG project.

During this time, I expect you'll spend 2-3 hours a week reading and the remainder of your time (6-10 hours per week) on the project, in addition to the time you'll spend in class.

Particular activities are discussed in more detail below.


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

Students who are present, on time, prepared, and who make positive contributions to discussion or other classwork can expect to earn 90 points (an A-) for their participation grade. I will reward students who  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-5 classes will reduce your participation score by 10 points. Missing 6-8 classes will reduce your participation grade by 25 points. Missing 9 or more classes will reduce your participation grade by 50 points.

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 to make suitable arrangements at least a week 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 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 then to see me to discuss any further questions or concerns.

Exercises and discussion questions (a.k.a., preparing for class)

Reading assignments are posted in the weekly schedule. I expect you to complete reading assignments before class.

Object-Oriented Analysis & Design is an unusual textbook. I've assigned readings that are fairly long by the number of pages (usually 40-50), but the text is fun to read and not dense at all. However, the text includes many exercises, which I expect you to do. While we are reading OOA&D, completing the readings and the exercises/discussion questions described below will be a significant part of your work for the course. Think of it as your homework; it's just that it comes before class instead of after. I wouldn't be suprised if you spend 6 hours or so preparing for class each week.

We'll read the book Extreme Programming Explained after Fall Break, as well as some short technical articles. These are more traditional materials; I don't expect you to spend nearly as much time on the reading. You may wish to take two passes: once to read, once to review the main points and note any questions.

Exercises and discussion questions are also posted in the weekly schedule. You should email me your responses by 10 a.m. before class. I will use your responses to focus our time in class---So, no late work will be accepted. 

Any response showing a reasonable effort will earn 1 point. No response (or a very superficial response) will earn 0 points. You are expected to earn 25 points out of about 28 possible over the course of the semester; additional points will count as extra credit. I may also give extra credit for exceptionally thorough or insightful responses.

Labs and the little project

To learn new tools and technologies, you will complete four labs. You will begin the labs in class and complete them as homework. These labs, taken together, will constitute the little project.

The labs will give you a certain amount of guidance; however, it may be less than you are used to. Although I want you to learn how to use these new technologies, I also want you to begin learning how to learn new technologies. Because of this, you'll be working with existing references and tutorials---the kind of materials you would have to work with if you were learning on your own. The labs either guide you through an existing tutorial or give you some exercises to motivate your learning.

Each lab will include a collaboration policy; in general, you will be able to work in groups and may seek help from anyone you wish.

Each lab will have its own method for turning in your work. You will sometimes give me a demo of your work, and sometimes just turn in code.

Labs will be graded on the following scale:

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 BIG project

Since the BIG project is BIG, it has its own page.


You will have opportunities to demonstrate what you have learned through two written take-home exams, a midterm and a final. 

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 exam on which you get the better grade will constitute 15% of your grade; the exam on which you do less well will constitute 10% of your grade.

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 lab assignments or examinations. You may, however, work together in developing solutions for most lab assignments. You are strongly encouraged to use each other as resources in your work on the BIG project; in the "real world", other programmers will often be one of your most important sources of help and information. Just be sure to acknowledge such help.

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


Work is due at the stated date and time.  Late exercises and discussion questions will not be accepted because they are used to structure the class discussion. (Also, each exercise is worth only 1 point and you are not required to do all of them.) Other grades will be reduced by one level for each weekday (MTWThF) the work is late.

I do have some flexibility in scheduling meetings outside of class. If a meeting is required as all or part of the assignment, simply email me for an appointment if you are not able to meet on the specified date.

If 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.

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.  No such extension will be granted for exercises not involving programming.

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

Getting help

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


If you have specific physical, psychiatric, or learning disabilities and require accomodations, let me know early in the semester so that we can work together to 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).

Janet Davis (

Created July 23, 2007
Last revised August 30, 2007