Personal assignment scheduler
From SoftwarePractice.org
This article describes a personal assignment scheduler for tertiary students. It is suitable for a second-year object-oriented design and programming class.
Description
Tertiary students take multiple subjects, each of which has multiple (usually) assignment deliverables. Juggling all of these assignments can be a problem.
This project implements an assignment scheduler that helps to manage the assignment workload. At the beginning of the semester, the student adds all of the assignments to the scheduler using a graphical user interface. For each, he or she selects the "delivery mode" -- this tells the scheduler how the student expects to actually work on the assignment. (More below.)
The scheduler then automatically constructs a set of incremental deliverables. By default, these are associated with weekly milestones. For example, for an assignment that is to be done over a period of four weeks, the deliverables are 25%, 50%, 75%, and 100%, due each week. The student is able to edit these deliverables and also add more specific deliverables to each milestone. For example, the first milestone could include "literature review," the second "prototype implementation," and so on.
The scheduler can then produce a display for each week of the semester, showing which milestones occur that week and which deliverables are due.
At the conclusion of each week, the student is able to mark each of that week's deliverables as either delivered or not delivered. The program is then able to display expected progress against actual progress. In other words, this is a graphical display of whether you are ahead or behind, and by how much...
The delivery mode for each assignment is chosen when the assignment is added to the scheduler. At least the following three must be supported:
- Regular increments. Every week, an equal portion of the assignment should be completed.
- Miniature Unified Process. As described [here], the assignment consists of a set of phases, broken into fortnightly iterations.
- Eleventh-hour Mode. You don't start doing anything until two days before the assignment is due.
You do, of course, have an ideal test bed for this project (yourselves). As such, the best approach to the project is likely to be to construct a partial implementation (aka prototype) early in the development cycle, and try using it for yourself in order to decide what best to include in the final version.
A word of caution: you will have to approach this project carefully, in order to avoid getting sidetracked by unnecessary compexity. Remember to stay focussed on the goal of the project: to help the overloaded student to manage their assignment workload.
