Software Component Engineering Course Grading Criteria:
Lab (Programming) Assignments


Lab assignments will be graded according to the following general criteria:

For some assignments, additional criteria might be added to this list, such as providing a convincing set of test cases.

Each lab assignment will receive one of the following marks:
 
Mark Meaning Points (%)
5 the solution meets all criteria well 100
4 the solution meets most criteria, but there is some room for improvement 80
3 the solution is just satisfactory; it meets some criteria but there is significant room for improvement 60
2 the solution is barely acceptable; there are serious shortcomings in meeting most criteria; it needs a lot of improvement 40
0 the solution is not acceptable 0

In some cases, the grader may award a mark of 4.5 (worth 90%).  This may happen when a lab submission is not quite what was required but the mistake is superficial.  Generally, no other in-between marks will be given.

Students often wonder why a seemingly small error can cause a relatively large grade deduction.  The reason is that software that does not work properly even in the smallest detail -- not in these assignments, of course, but in the "real world" -- can be costly or even dangerous to its users; and software that is difficult to change can be costly to companies that develop it.  Most employers of software professionals therefore have high standards for quality.  We want you to get used to this: to understand that "almost right" isn't good enough for most employers, and that as a professional it shouldn't be good enough for you even if it were good enough for your employer.  Therefore, an error that prevents your program from working (especially from compiling properly so it can run at all) can result in a significant grade deduction.  This means it is usually better to continue working on a program after it is due, taking a deduction for lateness, than to submit a buggy program.  Once you start getting 2-3 days late, however, it's probably a toss-up unless you're sure you are going to get it working soon!