Notes on Project 1 for CSE 134A, Fall 2001

Many of the projects submitted were very good.  Please be sure that the teaching assistants have your URL before the deadline for future projects, since many of you forgot to include the URL in your README file.

User interfaces should be as simple as possible, without being mysterious, with high information density.  For example, it is better to keep the Add Status functionality and the Query Status functionality on the same page.

 

Grading Criteria

The grading criteria were separated into two categories, usability and code quality.  There were 4 criteria within each category, each worth two points total:

Usability <8 points total>

1. ___/2 Readable and appealing text and graphics

2. ___/2 Handles test input correctly

3. ___/2 Reasonable UI (instructions, form structure, error messages, information density, etc.)

4. ___/2 Navigational ease of use

Code quality <8 points total>

5. ___/2 Good comments (esp. for unclear code)

6. ___/2 Clarity (variable names, code structure, flow of control, small # of files)

7. ___/2 Modularity (using functions, and not reinventing PHP functions)

8. ___/2 Error handling
 

 

Usability:

1.  Readable and appealing text/graphics: Looked to see if you had a tasteful overall page layout, with an appropriate choice of text and colors.  Also, if the forms and table structures were graphically appealing.

2.  Input test cases:

  1. Correct handling of non-numeric or unreasonable graduation date
  2. Correct handling of double quotes in input or adequate guarding against them
  3. Correct handling of single quotes in input or adequate guarding against them
  4. Correct handling of HTML tags in input or adequate guarding against them
  5. Consistent treatment of spaces at the beginning and end of input
If you missed 0-1 of the test cases you received 2 points.  If you missed 2-3 of the test cases you received receive 1 points. If you missed 4 or more of the test cases you received 0 points.

3.  Reasonable UI: Looked for meaningful and visible instructions and/or error messages in case of invalid input.

4.  Navigational ease of use: In general, simple solutions with one page received full credit. Well structured multiple page solutions also received full credit if the navigation between pages was easy and intuitive for the user.  If the navigation was too complex and difficult, points were deducted.
 

Code quality:

 1.  Comments: Fully documented code is required to get full credit. Comments should provide insight into the purpose of portions of code, not just how they operate.  An overall description of the files is good, too. No comments = no credit, partial comments = half credit. Comments are especially important when the code itself is harder to understand.

2.  Clarity: Your code must be well-organized and clear. Important parts of this are proper indentation, variable naming, flow of control, conciseness, and having a small number of files. If your code was extremely hard to understand, you may receive no credit; if it could be improved you received half credit.

3.  Modularity: It is important to use the existing functions in PHP, to use your own functions for things you do often, and to not replicate code. Most people get full credit, unless they are re-inventing code that already exists in PHP functions.

4.  Error handling: Errors should be checked, especially from mysql commands. Not only should they be checked, but the code should handle them gracefully. Using the "die()" or "exit()" commands is not graceful; if you used them primarily you received half credit.  If you had no error checking, you received no credit for handling errors.

 


Written by Joe Drish for CSE 134A