Programming Assignments
Introduction to Computer Science III
ICS-23: Lecture A/Labs 1-4
Spring 2008
Submitting Programs
Programming assignments are typically assigned in Lab on a Friday and are due
~1-2 weeks after they are assigned, at 11:30pm, on a Thursday night.
To turn in programs use the
Homework Dropoff system (Checkmate), which is also available on the
standard frame index on the course website: it uses UCInetID Secure Web
Login.
You receive no points for late programs, unless you have discussed the matter
with me and gotten my official permission (typically, granted prior to the
due date via email).
IN ALL CASES, you must drop off (on time) whatever part of the program you
have written, if you are to receive any partial credit for a late
submission; if you drop off no files, I must assume that you have done no
work on the assignment.
Pair Programming
I encourage you to use pair programming on the first two assignments;
but it is disallowed for the remaining three.
For the first two assignments, students can closely collaborate with their
partners, turning in a single, joint program.
Only one student from the pair should drop off the program -which one doesn't
matter- but the names of both students must appear inside the code file(s).
See Pair Programming for
details about pair programming, and the right and wrong ways to do it.
There is a tremendous amount to be gained by both group members, if they
pair program in the right way.
Starting Programs
Please read each assignment completely and carefully before starting it.
I suggest that you print and then read it, marking relevant material with a
highlighter.
We will typically discuss each new assignment in Lab on Friday, and start
working on it then
Grading Programs (Generally)
For most programming assignments, there will be a JUnit test, a size test,
and a speed test.
If the program passes all JUnit tests (and I expect most programs to pass all
these tests), then the student will score a base-line of 72 (of 80) points
(for a score of 90%).
I will compute the number of lexemes (minus comments) for all the programs
in each assignment: if you are at the average, you will gain/lose no points;
but, if you are below the average size, you will gain up to 4 points, and
if you are above the average, you will lose up to 4 points.
The exact gain/loss will depend on the distribution of sizes.
Likewise for the speed test, with the fastest programs gaining up to 4 points
and the slowest losing up to 4 points.
Again, the exact amount will depend on the distribution of times.
So programming grading is based 90% on correctness, with +/-10% of the grade
based on simplicity (approximated by size) and efficiency (approximated by
speed).
Extra Points for Submitting Early
If you drop off your program early, you will receive extra points (2 points if
you submit it 24 hours early, 4 points if you submit it 48 hours early).
Since each program is worth 80 points, you can raise your grade on a program
by 5% (half a letter grade) by turning it in two days early.
Note that turning in a program more than two days early results in just
4 extra points; therefore, I encourage students to finish their programs as
early as possible, but continue to think about them (and ask questions about
them) until two days before the due date, and submit them early at that time.