Grading Scheme:
Final letter grades are determined from your final cumulative score that is
computed using the following breakdown:
- 10% Homework:
6~7 homeworks, roughly one per week.
- 30% Programming Assignments:
4 programming assignments each worth from 6-10% of your final
grade.
- 60% Exams:
3 exams, two midterms and a final, each is worth 20% of your
final grade.
Letter grades are assigned at the end of the summer session (around Aug. 12th, 2012).
Scores for HWs, programs, and exams are reported through the
Learn@UW.
Programming Assignments:
There will be four programming assignments
worth 6-10%
for a total of 30% of your final grade.
Links to programming assignment pages:
- Programming Assignment #1: A day in Las Vegas
- Programming Assignment #2: Neural Networks
- Programming Assignment #3: Angry Birds
Policies for Programming Assignments:
- Collaboration:
Programs can be done in PAIRS or ALONE if you prefer but when working with a partner you must follow the
rules below.
- Late Programs:
are not accepted for a grade without prior approval from Yinggang Huang.
Let me know a week prior to the due date if circumstances beyond your control
will prevent you from completing an assignment by the due
date/time. We will ask you to submit the work you've completed,
which we will review and then MAY give you an extension to the
due date.
- Regrades:
may be requested if you believe there was an error in the
grading of your program. You may request a regrade once per programming
assignment. Regrades are for when you believe your program was
incorrectly graded or for circumstances when a minor error results
in a disproportionate deduction. Regrades are not for making a few
changes to get a few points back or for re-writing your code. You
should verify that your code works in advance of the due date by
comparing your results to the posted results. To make a regrade request,
send an email to huang58@wisc.edu within 4 days after the graded program is
returned.
Rules of Pair Programming:
- You may have at most one partner for each programming assignment.
- You may have a different partner on different programming
assignments.
- You may not pair program with multiple partners on the same
assignment.
- Your partner must be currently enrolled in this course.
- You must send email to huang58@wisc.edu telling me the members in the pair
4 days prior to due date/time or earlier.
- You must list your partner as a collaborator in the header comments of
your source files (see Commenting
Guide).
- You must follow the principles of pair programming
summarized below.
Submitting someone else's work as your own is
academic misconduct, which will be dealt with in accordance with University
Academic Misconduct procedures.
Principles of Pair Programming:
The following is a summary of successful pair programming principles taken
from a paper by
Williams and
Kessler:
- Pair programming involves two people working together at one
computer, continuously collaborating on design, coding, and testing.
One person types; the other either provides directions ("Now we need
to write a new method that does ..., Now we need a loop to do ...")
or constantly reviews what the typer is doing, and provides
comments.
- Pair programming has proved successful both in classes and in
industry. Programmers usually report having more confidence in
their solutions and enjoying programming more when working in
pairs.
- It is important to switch roles often (slide the keyboard back and
forth). Because pair programming can be quite intense, it is also
a good idea to take breaks (to check e-mail, go for a walk, have
a snack).
- It is important to provide honest but friendly feedback.
To be effective, there needs to be some healthy disagreement and
debate, but pairs also need to be respectful of each other, and try
to avoid becoming defensive when receiving criticism.
- Inevitably, programmers do some independent thinking/working.
For best results, that work should be reviewed by both
partners (and perhaps revised) when they start working together
again.
- To be successful, pair programmers must realize that the benefits
of working together outweigh their usual preference for working
alone, they must confidently share their work, accepting instruction
and suggestions for improvement in order to improve their own skills
and the code they are writing, and they must accept ownership of
their partner's work and thus be willing to constructively
express criticism and suggest improvements.
Exams:
There are three exams each worth 20% for a total of 60% of your final
grade. Exams are a primary tool I use to evaluate your performance in this
course.
- Midterm 1: Tuesday, July 10th, 5:00 PM to 7:00 PM. Location: 113 Psychology
- Solutions to Multiple Choice Questions
- Solutions to the programming part: Collatz.java
- Midterm 2: Tuesday, July 24th, 5:00 PM to 7:00 PM. Location: 1240 CS
- Solutions to Multiple Choice Questions
- Solutions to Part II
- Solutions to Part III
- Solutions to Part IV
- Final: Final, August 8th, 5:00 PM to 7:00 PM. Location: 1240 CS
For the exams, you are responsible for:
- lectures (including topics covered in lecture that are not covered
in the textbook),
- readings (including topics
covered in the textbook that are not covered in lecture),
- Programming Assignments.
Exam locations will be updated as soon as they are assigned.
Exam Policies:
- Exam Materials: No textbooks, electronic devices, or help from
neighbors are allowed during the exams.
- Exam Conflicts: must notify huang58@wisc.edu by June 24.
- Make-Up Exams: are given only with your instructor's permission
when you are unable to take the regular exam due to extenuating
circumstances. Requests for make-ups after an exam
are rarely approved and only for verifiable emergencies.
- Regrades: may be requested if you believe
there was an error in the grading of your exam. You must contact Newsha or me
within one week after the graded exam is returned.
Note that we sometimes photocopy written exams to ensure that students
cannot benefit from a re-grade by making changes to their answer (such
attempts are academic misconduct).