Teams, Guidelines and Grading


Project Phases

Each phase of FabFlixs corresponds to an assignment; a write-up for each appears in this project document. Phase 0 is not graded, as it is just installing various software services and tools you'll need to implement the FabFlixs system. Phases 1 though 5 are graded; details are below.


Project Teams

A project team typically consists of two students. We strongly recommend that you "team up" with another student whose schedule and work style are compatible with yours. You will typically find that having someone with whom to discuss ideas, options, design and implementation decisions –and bugs–often results in completing the work more quickly, more correctly and with less frustration. (You'll also have someone with whom you can talk freely about your work without fear of breaking course academic honesty rules.) The team will need a PC for developing FabFlixs; a desktop will work, but a laptop will make doing demos (see below) much easier. Keep this in mind when choosing a team mate.

We strongly encourage you to use the pair prorgramming approach when doing your work; research and observation routinely show that your work will get done faster, and be better, than each person working alone on part of the project and then "joining together" the parts to make the whole.

You pick your team mate. If you cannot find one, we suggest posting a note on the class' EEE MessageBoard, describing what you are looking for in a team mate, what skills and talents you can bring to the team, and a way for interested folks to get in touch with you.

Ocassionally, a student's circumstances make it extremely difficult for the student to team up. If you believe you must work alone, contact the instructor to discuss whether you being a "team of one" is appropriate; if so, the instructor will allow you to work on your own.

It sometimes occurs that a team of three is more appropriate than a team of two (especially if having a team of three avoids a person having to work on her or his own). If you would like to be in a team of three, arrange a meeting of all three potential team members with the instructor, who will discuss the pros and cons of the proposed team with you and decide whether to allow it. Please note that, in the past, each member of a three-person team often had to spend more time to complete FabFlixs work than members on two-person teams...adding the extra person almost always increases the time needed to coordinate the work among the team members.

Each team must send email to cs122b-help@ics.uci.edu no later than Friday, April 3, 11 pm, giving the name(s) and student ID(s) of the team members. You can also give us a team name, of no more than 32 characters, of your choosing; if you don't pick one, we'll pick one (a rather boring one, I'm afraid) for you.

Once teams are formed, they can not add or change members. However, a multi-person team can "break up" if the members find they just can't work together, they agree to the dissolution and the instructor gives permission. For a dissolution to be granted, send email to cs122b-help@ics.uci.edu giving the team name, member names and a brief reason why the team needs to break up. If the break-up is approved more than 3 days prior to a phase's due date, each team member can use the team's joint work on the current phase and complete the assignment on her/his own. If the break-up is approved 3 days or closer to a phase deadline, then the team must turn in and demonstrate its work for that phase as the team is currently composed. The team separation takes place after the demonstration of the current phase's work, and each (former) team member does her/his work from that point forward. Eacn team member can use the team's previous (joint) work.


Turning in Assignments

When an assignment is due, your team turns it in via the Web using the Checkmate system. You must have an active UCInetID to use Checkmate.

Go to Checkmate, at www.checkmate.ics.uci.edu, before the first assignment is due; follow the instructions to sign up to turn in assignments for CS122B. (If you get a message about security certificates, just click Continue). We recommend that all team members sign up for Checkmate; that way, any member can turn assignments in.

Each assignment that is graded (that is, assignments corresponding to phases 1 through 5) describes what is to be turned in. For each graded assignment, one team member submits the team's work, labeled with the team's name.

If your team wants to submit a newer version of your assignment the deadline, it can submit a new version of it; we will grade the one submission whose date is closest to and not past the fifth day after the due date. In particular, we will not take a submission that comprises part of a phase's work and combine it with other submissions that complete that phase's work and grade the parts together as if they were a complete assignment. We will not grade files in paper form. Submissions via email will only be graded if Checkmate is nonfuctional at the time the submission is due and the instructor has specifically said that submissions are to be made via email.

You are responsible for submitting the version of your project that you want graded. Accidentally submitting the wrong version or forgetting to submit the assignment or some of its parts are not grounds for a regrade.


Demos and Grading

For phases 1 to 5, soon after their due dates, each team will meet with course staff to briefly demonstrate its work on that phase; the time allowed for each phase's demostration is given in the phase's write-up. Around the time a phase is due, we'll announce available demo times; you'll email cs122b-help@ics.uci.edu with three preferred times, in priority order. We'll get back to you to confirm your demo time. If you team cannot make any of the proposed times, email cs122b-help@ics.uci.edu right away.

There are three ways to set up a machine to demonstrate your work:

At the demo, have the ZIP and/or WAR files you turned in stored on your demonstration machine. When the demo begins, we will ask you to create from those files an executable version of your phase's code–and to do it very quickly.

When using a ZIP file, typically best is to have a script file as part of the ZIP that builds the running system, so that all you have to do is unzip the file (with one command or a double-click) and run the script; the system is then ready to run. We do not care which scripting tool you use (e.g., ANT, make, a windows command line BAT file) or that you use none at all: what matters is that from ZIP file to running system takes place quickly.

For a WAR file, you just deploy it via Tomcat (details on how to do this are in the Phase 2 write-up).

Each team member can earn 0, .5 or 1 point for the demo, depending on how polished and professional the demonstration is and how well it "shows off" your work and your understanding of it. Team members can get different scores. For instance, if one team member effectively does the entire demo, and does it well, and the other member is silent or only gives incorrect or misleading information, the effective member would receive 1 point and the other member zero points. Thus, in a multi-person team, for all members to obtain 1 point, each has to participate equally or near equally in the demonstration. Team members will lose demonstration credit if they have to fumble around, or take inordinately long, to get their system up and running.

We will grade your programs using the following zero-to-four-point scale. Note that if you get 4 points, we consider that full credit for the lab–if you get four points on every assignment, you will have 100% of the possible lab points. Notice that your grade depends on issues of style and performance as well as correctness and completeness.

Many of the tasks we ask you to undertake in these assignments do not have one right answer; they are often many reasonable approaches or solutions. In these situations, you will not be graded on whether your solution is the same as ours; rather, your grade will be based on whether your solution is a reasonable one, and on how well and clearly you have implemented it. If there are additional or particular aspects to grading an assignment, the assignment discusses them.

0 points  You did not turn in any work towards completion of the assignment.

1 point  Work that is meager and poorly done. It would not be considered at all acceptable in academic or professional circles.

2 points  Work of reasonable quality and completeness. Shows a basic understanding of the material, but not a complete one. Presentation may be lacking (e.g., written work shows poor composition, a database is poorly organized, a report is hard to follow). Performance is reasonable, but may be less than optimal.

3 points  Work of high quality which is complete and well presented, with perhaps a few minor errors and/or style or performance problems; the grade for good, solid–but not extraordinary–work.

4 points  Work of very high quality that demonstrates a full and complete understanding of the material the lab covers and that is very polished in its presentation; performance is the best that can be expected without specialized knowledge of how database (or other) commands are implemented. Screens (and forms) are well laid out and easy to read and use.

So, each assignment is worth 5 points, 4 for the work itself and 1 for the demonstration of it. Thus, there are 25 points possible for the course. Each graded assignment is of equal weight when computing the total points for the course; that is, each assignment is worth 20% of your course grade.

Your scores may be adjusted if we have more than one person grading assignments and you have other than the "easiest" grader; please also remember we do not grade on a curve. See the Course Reference for more details.

Your work will be graded within a few days after it is turned in; the TA will let you know when the grades are available. See the TA as soon as possible if you have questions about the grade you received–and no later than a week after the assignment has been returned, if you are asking for reconsideration of your work. Note that UCI policies prevent us from re-evaluating your work once your course grade is reported to the Registrar.


Due Dates and Late Assignments

Phase 0 has no due date and it is not graded. We strongly recommend that you complete it by the target date given in Overview and Deadlines so your development environment is stable before you attempt to complete the work other phases require.

The due dates for the graded phases, that is, phases 1 to 5, are also given in Overview and Deadlines–they are in the "Deadline" column.

Any work you submit after its due date and time will incur a penalty of 1 point for each day or part of a day it is late. For example, if you earn 4 points and the assignment is two days late, your score will be 2 points (out of 4).

We will not penalize you for a late assignment if it is late because of significant circumstances beyond your team's control, such as an incapacitating illness or injury or a major emergency, or Checkmate is down, and the team makes the instructor or the TA aware of these circumstances. Conflicts with due dates for your other classes or your job are not sufficient cause to lift the penalty. Should you be unable to turn in an assignment when due, it is best to notify the instructor ahead of time and make arrangements for an alternative due date. If that is not feasible, turn in the assignment as soon after the due date as possible, and, if you think the penalty should be waived, send an email to cs122B-help@ics.uci.edu describing the unavoidable circumstance that prevented you from turning in the assignment when it was due. We will consider your situation when grading the assignment.


A Note about Copyrights

FabFlixs references copyrighted information such as images and video clips; we must pay close attention to copyright issues to avoid infringement and potential legal action. In particular, do not store any copyrighted materials on your development machines or elsewhere, or otherwise distribute the material, unless you have obtained explicit written permission from the copyright holder to do so. (It is permissible to store links to such material, as we have FabFlixs doing.) Refer to UCI's Computer and Network Use Policy for more information.

Written by Norman Jacobson, March 2005.
   Adapted from similar pages written by Norman Jacobson, Julian Feldman, and David G., Kay for various ICS courses.
   “Turning In Assignments” based on “How to Submit Projects,” by Alex Thornton
   “A Note about Copyrights” based on “Important notice about copyrights,” by Chen Li
Updated for the Spring 2007 offering of CS122B by Norman Jacobson, March 2007
Minor edits for the Fall 2007 offering of CS122B by Norman Jacobson, September 2007
Edited for clarity, and included discussion of pair programming, for the Fall 2008 offering
   of CS122B by Norman Jacobson, September 2008
Minor typos fixed; dates updated for the Spring 2009 CS122B offering, by Norman Jacobson, March 2009