Programmming Projects


[Homepage] | [Lab Info] | [TA's & Tutors] | [Supplements] | [Programmming Projects] | [Exams]

Pair Programming

All students are STRONGLY ENCOURAGED to work with a partner on the programming projects for this class. To learn a about pair programming please read All I Really Need to Know about Pair Programming I Learned In Kindergarten.

Please email the name and email address of your partner to the teaching assitant, Kai Pan (pankai@soe.ucsc.edu) no later than January 13th. Please make the subject of the email be "partner name".

At the same time that you turn in each programming project you also need to complete an online log, in the form of a WebCT quiz, that records how you spent your time on the project.

You should also read the pair progamming guidelines and policy for the class. This explains what is considered to be acceptable pair programming and what to do if you have problems with your partner.

Programming Assignments - A Cumulative Project

The overall project for this quarter is to build a classroom response system. The current versions of the sample final solution can be found here: There are 5 programming projects that each build on the previous project. The project due dates are every two weeks with the first project due on January 17th. You must successfully complete all previous projects before you can submit any of the later projects. A project has been "successfully completed" when you have received 40 points or more of the 50 points available for the correctness portion of the grade (see details below). If you submit a program and receive less than 40 points on the correctness portion, then you will have to continue working on that project and resubmit it the next week. Although due dates are two weeks apart, project submissions will be "collected" once per week to accomodate late and resubmitted projects. You can submit at most one project each week.

A program will be penalized 5 points (from the 100 total) for each week, beyond the initial due date for that project, required to obtain the 40 point correctness level. For example, suppose a project is submitted on time at the initial due date but fails to obtain the 40 points needed for correctness, if the program is resubmitted within the next week, and scores 45 on correctness and 50 on style, it would be penalized 5 points and receive a total of 90 (45 + 50 - 5) towards the overall class grade.

The point of this grading scheme is to encourage students to master one set of concepts before moving on to the next. This may result in some working at a slower pace than others. Of course this slower pace will be reflected in a lower grade, but the student can still make progress and pass the course. For example, here is a scenario that would result in an overall programming project score of 70% (satisfactory but not exceptional).

  1. Project 1 is completed January 24th, 1 week late, after an unsuccessful ontime submission and then resubmitted within a week. Before the 5 point penalty, the program receives a perfect 100 points.
  2. Project 2 is completed February 14th, 2 weeks late, (3 weeks after the last submission of project 1). Before the 10 point penalty, the program again receives the full 100 points.
  3. Project 3 is successfully completed March 7th, 3 weeks late (3 weeks after the last submission of project 2), and receives 100 points before the 15 point penatly.
  4. There is only 1 week left at this point, and a partial solution to project 4 is submitted March 14th, the last submission date, which is 2 weeks late. This program (due to some serious late night programming) manages to receive 90 points before the 10 point late penalty.
The total for this series of projects is 350 points (70% of the 500 maximum). That is: project 1, 95 (100-5), project 2, 90 (100-10), project 3, 85 (100-15), project 4 80 (90-10), and project 5, 0.

Student Respose System

All programming assignments this quarter are directed toward creating an student response system that could be used during a lecture. The system will allow the students to:

You will complete the project in 5 steps. More details will be available soon. (None of the program spec links below work at this point.)

  1. Program #1: Due January 17th at 10pm.
  2. Program #2: Due January 31st at 10pm.
  3. Program #3: Due February 14th at 10pm.
  4. Program #4: Due February 28th at 10pm.
  5. Program #5: Due March 14th at 10pm.

Grading of Individual Projects

You must follow the programming style guidelines listed here.

There are no "late" submissions meaning that programs not submitted by a weekly due date will not be accepted until the next due date (a week later).

Because of the resubmit/regrade policy, students are discouraged from submitting programs that they know will not receive the required 40 correctness points (except of course for the last submission of the quarter). In such situations, students should instead seek help from the instructor or TA (not from classmates other than a pair-programming partner).

Be advised that WebCT can sometimes get rather slow near a deadline, when many students are trying to submit. If you have a working program and are just "touching up the style" or doing some final testing, go ahead and submit it. You can always resubmit up to the deadline without any penalty, but if it gets too busy and you fail to submit in the last 5 minutes before a deadline, then you missed the deadline (like getting stuck in traffic - plan ahead and leave enough time).

Grading Breakdown

Programs will be graded on corrrectness (the right output), design, and style (see the class style guidelines). Every program starts out with 100 points. Points are deducted as follows. Correctness/Functionality (maximum deduction 50 points): See individual project descriptions for correctness point details.

Design (maximum deduction 25 points): See individual project descriptions for design point details.

Style (maximum deduction 25 points total):


[Homepage] | [Lab Info] | [TA's & Tutors] | [Supplements] | [Programmming Projects] | [Exams]

This page maintained by Charlie McDowell Email regarding this site.