Quicklinks

CSCI 375 Team Projects

The team project is a fundamental component of a systems analysis course, and will form a substantial portion of each student's overall course grade.

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.


Assessment

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/idg
Each team member has full access to their team's repository, and can clone it using a command like
git clone csci:csci375/GRP
where GRP is the appropriate group name (ebk, woc, or idg).

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 master
I 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
git push origin branchname


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:


Weekly timesheets

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:


Contribution summaries

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.

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.


Meeting minutes

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.

WhenTeam/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