Quicklinks |
Each student in the class will be assigned to a team drawn from the other students in their registered lab section. As mentioned in the course outline,
Working on a team project brings its own unique set of challenges and advantages, including dealing with scheduling problems, personality clashes, differences in skills and knowledge, and differences in objectives and level of commitment to the project. Students are expected to do their best to solve problems within the team, but if significant issues arise please bring them to the attention of the instructor.
50% of your total course grade will be based on the team project.
half of the mark will be based on your individual contribution to the project,
while the other half will be based on the overall team result.
It is your responsibility to clearly document your contributions to the team project, details to be discussed further below.
There are 10 project phases outlined below, each with a set of written deliverables and a team presentation. Project materials that are delivered up to 24 hours late will be subject to a 25% penalty, while materials more than 24 hours late will be assigned a mark of 0.
Students may only miss mandatory presentations due to medical or personal emergencies, and appropriate documentation must be provided afterwards - failure to do so will result in that student being assigned a mark of 0 for the presentation. If an entire team misses a project presentation they will be given a mark of 0 for the presentation and the presentation must still be conducted at a later date convenient to the instructor: failure to do so will result in the team being assigned a failing grade for the entire project.
List of mandatory phases and presentations:
Written documents
Each phase of the project requires the team to produce one or more written documents.
As with all project content, these are to be developed and maintained exclusively in your individual and/or team repositories on the csci servers, and submitted by git pushes (to be discussed in lab 1).
In the case of written documents, these are to be created/edited with LibreOffice and stored as .odt files in the Documents directory of your repository, using the exact filenames described in the various project phases.
All written documents are to be treated as formal submissions and are expected to be well written, thoroughly spell checked, grammatically correct, word processed, complete with table of contents, page numbers, references and citations (where appropriate), to be both clear and concise, and to follow any established team documentation standards.
The use of git for project material submission
During the first lab, each student will be required to set up, on otter, a git repository to hold all their individual contributions to the team project, their weekly timesheets, and their contribution summaries. (Details on setting up the repository will be given during the first lab, details on the timesheets and contribution summaries are given below.)
Each Monday (other than holidays and study break), each team must commit and push their team repository contents, and each student must push their individual repository contents.
This must be done before the start of their registered lab section. (Again, details on "pushing" the contents will be given during first lab.)
The assessment of each student's individual contribution to the overall project will be based largely on these weekly pushes - failure to keep the repository up to date or missing push deadlines will result in lower marks on your individual project scores.
cd mkdir -p csci375 ssh csci fork csci375/indivRepo csci375/$USER/indivRepo cd csci375 git clone csci:csci375/$USER/indivRepo cd indivRepo git remote add instructor csci:csci375/indivRepo |
Copies of the suggested initial content (preliminary files and directories) for the team repositories can be found on otter in directory ~wesselsd/teamRepo
The three team repositories this semester are
csci375/ebk csci375/woc csci375/idgEach team member has full access to their team's repository, and can clone it using a command like
The instructor has read, but not write, access to each group's repository.
Note that if a team member pushes to the master they might well receive errors because someone else has previously pushed other changes. In such a situation the team member would need to fetch those changes and merge them with their own local version, resolving any conflicts that exist (places where you both altered the same file) then push, e.g.
git fetch origin git merge origin/master - resolve any conflicts git push origin masterI would advise the use of multiple branches, e.g. one branch for development (stuff we're working on now), one for testing (stuff that we think is done but is still being tested), one for stable (the last batch that passed all the tests). To push a branch, rather than the master, use
Project teams and project selection
Ideally each project team will consist of 4 students, but 3-5 is acceptable. Students are free to pick their own teams from within their registered lab section, any students who do not wish to pick a team will be assigned to one by the course instructor.
Teams have until January 23rd to develop preliminary project proposals (details to be discussed). The project can be anything of the team's choosing with the following restrictions:
Each team member is required to track the time they spend on the project, as well as the specific activity and deliverable that time is dedicated to.
Your timesheets must be kept up to date in your individual csci 375 project repository and pushed on a weekly basis. These details will be discussed in lab 1, but the requirements are as follows:
For example Jan2_8.txt would be the timesheet for all the work you do on the project from January 2nd through the 8th.
The format to use when recording the time spent working on the project is described below.
Each line in the file represents one working session, with the following components:
- the date, e.g. Jan. 2
- the start time, using a 24-hour clock, e.g. 16:30 represents 4:30pm
- the total time spend on the project, e.g. 3:15 would be three hours and 15 minutes
- a short description of what you were working on
Example:
Date Start Duration Activity Jan. 2 11:30 0:45 Team meeting to discuss roles and responsibilities Jan. 3 19:15 0:30 Draft version of my individual strengths and weaknesses Jan. 7 10:30 1:10 Team meeting to put together team strengths and weaknesses Jan. 8 20:00 0:15 Wrote up my timesheet and contribution summary |
All time spent on the project should be recorded, including lab time and team meetings.
Each team member is expected to keep all their work on the project in their own repository (again, details to be discussed in lab 1) and, prior to the start of their lab session, to push their repository the day each project phase is due.
Your repository must contain a Contributions directory, containing a seperate file for each project phase, in which you provide a precise list of what you have contributed to the project that week.
As with the TimeSheets directory, the initial individual repositories you clone will contain a Contributions directory and collection of empty text files for the contributions.
Note that there is no fixed format for the contributions description, as there is a tremendous degree of variation in what might constitute a "contribution" and how to best describe it.
IF YOU DON'T NOTE IT IN YOUR CONTRIBUTIONS THEN YOU DON'T GET INDIVIDUAL CREDIT FOR IT
Note that your individual contribution mark can be significantly higher or lower than the team mark for the same phase, e.g. if your team only got half the required work done but you did all of it then you might get 100% on the individual mark, or if your team did an outstanding job but you contributed nothing then you might get 0 on the individual mark.
Each team is required to hold regular meetings to discuss the project and make any relevant decisions.
Each team is required to take careful notes (aka minutes) on each meeting, and to store those minutes in the team project repository.
The details to be recorded are as follows:
As with the individual time sheets and contribution summaries, the team project repository must contain a Meetings directory, with a seperate file for each meeting. The name of the file should be the date and approximate start time of the meeting, e.g. Jan2_10am.txt.
Meeting minutes should be entered into the team repository as soon as possible during or following the meeting, but no later than 24 hours after the end of the meeting. The person responsible for taking the meeting minutes is also responsible for ensuring the file is added to the team repository and an appropriate git add/commit is performed.
Full list of project deliverables and exercises
Most project exercises, deliverables, and associated presentations are due in labs, but there are several that will take place during lecture times.
The schedule below identifies which deliverables, presentations, and exercises will be held on which dates, and the team/individual marks associated with each item.
Each team, and each team member, is responsible for making themselves fully aware of the upcoming deadlines, exercises, and deliverables and ensuring their team is prepared for them.
When | Team/Individual Marks (50/50) | Activities/deliverables |
Lab 1 (Jan 9) | 2/2 | Team formation |
Lab 2 (Jan 16) | ||
Lab 3 (Jan 23) | 4/4 | Preliminary proposals |
Lab 4 (Jan 30) | 4/4 | Project plan |
Lecture 5 (Feb 15) | 4/4 | Risk management plan |
Lecture/Lab 6 (Feb 27) | - | working session for team projects: conducting user interviews and walkthroughs, obtaining feedback on project features, ideas, and interfaces |
Lab 7 (Mar 6) | - | interface revision exercise |
Lecture (Mar 8) | 8/8 | Project requirements |
Lab 8 (Mar 13) | 4/4 | Process model |
Lab 9 (Mar 20) | 4/4 | Data model |
Lab 10 (Mar 27) | 4/4 | Architectural design |
Lab 11 (Apr 3) | - | project working session |
Lab 12 (Apr 10) | 8/8 | Project demos and files |
Lecture (Apr 10) | 8/8 | Final project presentations and documentation |