Algorithms and OOD (CSC 207 2014S) : Handouts
Summary: The course front door provides a quick summary of the weights of various components of the course. The narrative on teaching and learning provides some general perspectives on how I teach, how I hope you learn, and how I grade. This document provides a bit more detail on how I will be grading this particular class.
My experience shows that students who turn in work late learn significantly less than students who turn material in on time. (I'm not sure about cause and effect.) Hence, I strongly discourage late assignments. Unless prior arrangements have been made, assignments are due at the time stated on the homework assignment (typically 10:30 p.m. on Monday evenings). Late assignments are penalized approximately 10% per day late.
Because I am concerned about your health and well being, I will waive the late penalty 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 note 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.
If you are ill, I will make appropriate accommodations. Please let me know as soon as possible if illness will make it difficult for you to turn in an assignment on time. (And yes, I realize that it's not always possible to do so in advance.)
As I suggest in my statement on teaching and learning, I don't think you learn the material as well if you don't participate actively in the class. I also know that if you're not here, you can't participate. Hence, a portion of your grade is based on participation and attendance. Students who miss no more than two classes and who regularly answer questions or make comments in class receive 90 for participation. Missing 3-5 classes results in a 20 point penalty. Missing 6-8 classes results in a 40 point penalty. Missing 9 or more classes results in a 60 point penalty. Particularly good answers, comments, and questions result in bonus points for participation.
Because I do not want you to come to class when you are ill (and likely to infect others), I do not count absences due to illness as absences. I also realize that there are other exceptional circumstances, such as academic and athletic responsibilities that call you away from Grinnell. With appropriate notification, such absences are not included in the computation above.
If you miss class for any reason, you are responsible for notifying me about the reason for that absence. I would prefer that you notify me before you miss class. If that is not possible, you should notify me by 5 p.m. on the day that you missed class. With very few exceptions, With very few exceptions, I will not excuse an absence if you do not notify me of the reason for your absence within this time frame.
You don't learn most of the concepts in this class just by listening - you have to write programs to understand programming, algorithms, ADTs, data structures, and object-oriented design. Hence, you will have weekly programming assignments in this course.
Because students can often learn and accomplish more in teams, I encourage collaboration on homework assignments. You may choose to do most weekly homework assignments alone or with one or two partners. If you do work with partners, I would recommend (and may require) that you choose different partners in different weeks. I hear repeatedly from our graduating seniors that too often they felt trapped in a group, and realized that they would have learned better and learned differently if they had rotated groups.
I have tried a variety of approaches to grading homework. I admit to some fondness for plus/check/minus grading, which looks at the big picture and not niggling details. But I also like using a detailed rubric that covers the various aspects of the assignment. I may be experimenting with multiple approaches this semester.
Since different people have different opinions, I thought I should let you know about my plus/check/minus/zero system, that I do plan to employ from time to time. Homework that is primarily correct will earn you a check. Errors will earn you a check-minus or a minus. Significant errors may earn you a zero. Failure to turn the assignment in will earn you a zero. Particularly nice work will earn you a check-plus or a plus. At the end of the semester, I will convert the symbols to a letter or numeric grade. If your grades are mostly checks, you will earn a B on the homework component of your grade. Plus grades on approximately 1/4 of the graded assignments and plus checks on remaining assignments will earn you an A. Minus grades on the majority of the assignments will earn you a C. Zero grades will earn you an even lower grade.
To help you monitor your learning, you will be required to complete a “wrapper” for most assignments. After reading each assignment, but before sitting down to undertake the assignment, you will complete a short survey that asks you to estimate the amount of time you will need to complete the assignment, and possibly answer some other questions. After you have completed the assignment, you will report how long the assignment actually took and reflect on any differences from your prediction. My colleague Janet Davis tells me that evidence suggests that doing such activities enhance learning.
The best way to learn is by doing. During most classes, you will work through programming problems with an assigned partner. However, in my experience, students do the work and then don't reflect back on it. I recommend that you take notes on what you've done in lab to prepare for quizzes and exams. Such notes are particularly useful on exams, which are typically “open notes”.
To encourage you to think carefully about the material, for a few labs I will ask you to write up one or two exercises and submit them for review. I will do my best to let you know which exercises to write up, and will also post them on the course web site.
You and your lab partner(s) may complete the writeup together or individually; you should decide which by the end of class. If you do the lab writeup on your own, you must acknowledge your partner (any anyone else who gave you help) in your writeup.
Your writeup should include your solution to each assigned exercise. If the exercise directs you to write Java code, include your Java code. If the exercise directs you to find out what the output of some code is, copy and paste the output from Eclipse. If the exercise asks a question or asks you to explain something, write an answer in English. You do not need to copy instructions or problem statements from the lab exercises into your writeup, but do number your solutions.
Send your lab writeup to
That email address goes to me and to your grader (who I prefer remain
anonymous). The subject of the email should take the form
“CSC 207 Lab: Title of Lab”.
Lab writeups are graded with an acceptable/unacceptable binary. Your write is acceptable if it includes a solution or evidence of serious effort for each assigned exercise. Your writeup is unacceptable if it was not turned in or if there was no evidence of reasonable effort. If you were not able to complete an exercise because of its difficulty, your work is still acceptable if you explain where you got stuck and come talk to me to get help. So, in case it's not clear, every diligent student will earn full credit for lab writeups.
All of the labs for this semester are new or significantly revised. Hence, we'd like to hear from you what went well and what went poorly. If all goes well, I will have a Google survey prepared for each of my labs. You are required to fill out fifteen of those surveys (for about a third of the labs). I would like you to fill out more than that, but only require you to fill out fifteen.
So that I know you filled out the labs, I will ask you to include your name when you fill out a survey. I will have an assistant to record and remove the names before I look at the survey data.
I believe that you show mastery through individual work on difficult problems. I also believe that you need time and resources to work on such problems. Hence, all of my exaninations (except, possibly, the final examination) are take-home examinations. Most are likely to have four problems. Correct or mostly correct solutions on all four problems will earn you an A. Correct or mostly correct solutions on three problems will earn you a B. Correct or mostly correct solutions on two problems will earn you a C. Correct or mostly correct solutions on one problem will earn you a D. I will probably include a wellness policy on exams (e.g., if you stop at eight hours, I guarantee you a C or better on the exam).
Copyright (c) 2013-14 Samuel A. Rebelsky.
This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit
or send a letter to Creative Commons, 543 Howard Street, 5th Floor,
San Francisco, California, 94105, USA.