1. Design
Unsatisfactory (1)

Provides minimal design detail. Ineffective design that addresses only a few of the SRD requirements.

Needs Improvement (2)

Architectural, system, component, and/or UI design are incomplete. A significant number of SRD requirements are not addressed by the design.

Meets Expectations (3)

Architectural, system, component, and UI design are complete and but lack some details. Relations among system modules and components are clearly defined, and most or all the requirements in SRD are addressed.

Exceeds Expectations (4)

Architectural, system, component, and UI design are complete and detailed. Relations among system modules and components are clearly defined, and all the requirements in SRD are addressed.

2. Implementation
Unsatisfactory (1)

The implementation meets only the minimum requirements listed in SRD. The software is barely functional, and the documentation, usability, and/or maintainability are poor.

Needs Improvement (2)

A significant number of SRD requirements are not addressed by the implementation. The software is functional but buggy. Documentation, usability, and/or maintainability need improvement.

Meets Expectations (3)

The implementation meets most or all the SRD requirements. The software is functional and free of major bugs. Overall it is well documented, and easy to use and maintain.

Exceeds Expectations (4)

The implementation meets all the SRD requirements. The software is functional, free of bugs, well documented, and easy to use and maintain.

3. Evaluation
Unsatisfactory (1)

No systemic evaluation or testing of the software.

Needs Improvement (2)

Some SRD requirements are evaluated. Software is tested but not systematically. When appropriate, minimal comparison to existing solution(s) is conducted.

Meets Expectations (3)

Most SRD requirements are evaluated. Software is tested for major bugs. When appropriate, comparison to existing solution(s) is conducted in multiple aspects such as design, features, effectiveness, and/or efficiency.

Exceeds Expectations (4)

All SRD requirements are evaluated. Software is well tested for bugs. When appropriate, comprehensive comparison to existing solution(s) is conducted in multiple aspects such as design, features, effectiveness, and/or efficiency.

4. Overall
Unsatisfactory (1)

Overall, the students have difficulty applying computer science theory and practice during development, and fail to produce a functional software system or solution in the end.

Needs Improvement (2)

Overall, the students have difficulty applying computer science theory and practice during development, and the software system or solution produced in the end needs significant improvement.

Meets Expectations (3)

Overall, the students are able to apply computer science theory and practice during development, and produce a functional software system or solution in the end.

Exceeds Expectations (4)

Overall, the students are able to apply computer science theory and practice during development, and produce a high-quality software system or solution in the end.