- Version: 1.0.0
- Last Changed: Tuesday, April 10
All material related to assessment for the purpose of assigning points toward the Course Project portion of the course grade for CS 3240 is presented here.
The Course Project component of CS 3240 makes up 50% of a student's overall course grade. As this is a course in software engineering (a.k.a. advanced software development), it is the intention of the course staff to not only evaluate the end result of the project, but also the development process along the way.
The Course Project score will be out of 50 total points, with each point directly mapping to 1 percentage point of a student's overall grade in the course.
The 50 points will be allocated as follows:
- Final Project Technical Score - 20 points - Evaluation of technical aspects of the system, based upon the stated requirements; every team member will receive the same score
- Final Project Team Score - 20 points - Evaluation of the team development practices wholistically (adherance to methodology, use of source control, etc.)
- Final Project Performance Score - 10 points - Individual team member contribution evaluation score; comprised of team evaluations with staff input
The following rubrics will be used for each of the four categories stated above.
Final Project Technical Score
TL;DR: Did the Voting System actually work, and how well did it work?
The Final Project Technical Score will be solely based on the completion and demo of the Voting System project. Grading will take place during a demo session at the end of the semester in which the team will present their system to the course staff. Imagine that you are presenting your system to representatives from the legislature and Board of Elections for the demo. You are trying to sell them on the idea that your system will meet all of their needs and then prove it. It is possible and reasonable that some aspects may be in a "demo"-type setup, but that should be hidden from the customers. (Example: to run your Django web app online, you spin up an AWS instance and then run the Django test server instead of installing your app to work through a true web server, such as Apache.)
For each rubric item, staff will confer on the score, based on functionality, presentation / user experience, and robustness.
- 3 pts: System can check in a voter that is supposed to vote at this polling place and refuses a voter that should not vote her.
- 4 pts: System allows a voter to successfully record their vote on various election items.
- 3 pts: System creates a physical, traceable way to perform a manual recount.
- 2 pts: System provides an easy-to-use, functional API for getting information about vote counts.
- 2 pts: Documentation for the API is clear and well-written.
- 2 pts: System is robust enough to handle misuse cases (i.e. trying to vote for more than one candidate, print more than one receipt, etc.)
- 2 pts: System is considered "easy to use" by the course staff.
- 2 pts: Overall system design and user experience is well-thought-out and looks professional.
Final Project Team Score
TL;DR: How well did the team adhere to development practices throughout the semester? (i.e. GitHub, YouTrack, etc.) Was reasonable progress made throughout the semester and the project not thrown together in the last week?
The Final Project Team Score will be based upon the staff evaluation of how the team worked together and implemented sound development practices throughout the semester. Individual team member scores may differ due to different levels of performance with the team during the course of the project. Inputs include:
- Sprint scores (7 scores: Sprint 0, Sprint 1, Sprint 2, Sprint 3, Sprint 4, Sprint 5 Mid, Sprint 5 End) - each out of 5 points
- Staff impression of team adherence and implementation of development practices - 5 points (this is per team and all members will receive the same score)
Score is calculated by the following formula:
(SUM(Sprint Scores) + Staff Overall Team Score) / 2
Final Project Performance Score
TL;DR: Individually, how well did a student work with others on the team, contributing in the way they agreed to (i.e. roll on the team) in addition to code for the system?
The Final Project Performance Score will be based on the individual contributions and efforts of each student, drawn from team and staff individual evaluations. Staff will explicitly take into account the role the student took on during the course of the project. There is no direct formula for this rubric item. Staff will consider team evaluations, but the final score is not wholly determined by those evaluations alone.
- 10: Student was a solid, contributing member throughout the project, often going above and beyond what was needed. Student fulfilled their team role exceptionally well.
- 9: Student was a solid, contributing member throughout the project. Role with the team may have been lacking slightly.
- 8: Student was a solid, contributing member throughout the project. Adherence to roll was lacking in the opinion of the staff.
- 7: Student was a contributing member throughout the project, but fell short in a few instances. Overall, though, the student was seen as a reasonable member of the team.
- 6: Student was a contributing member, but fell short. Student may have "gone missing" for periods during the semester.
- 5: Student contributed to the project, but was seen as unreliable for some tasks.
- 4: Student contributed, but required excessive reminders. Any contributions created required rework by others.
- 3: Student contributed at least something, but was largely absent.
- 2: Student did not contribute any code, but did come to meetings and was present in lab for discussion.
- 1: Student was not present.
- 0: Student was actively a hinderance to the team, preventing overall progress, regardless of the students's individual contributions.