| Instructors | Dr. Quan Nguyen · Dr. Ghazanfar Latif |
| lnguyen[at]tru[dot]ca · glatif[at]tru[dot]ca | |
| Office Hours | To be posted on Moodle by the end of Week 1 |
| Class Time | Thursdays, 3:30 PM – 4:20 PM · OM 1241 |
| Milestone Days | Thursdays, 3:30 PM – 6:00 PM · OM 1241 (Oct 1, Oct 29, Nov 19, Dec 3) |
Course Description¶
COMP 4910 is the capstone of the BCS and CS Major programs. You will spend one term working in a team to build software for an external client, under supervision rather than direct instruction. The work is assessed through project deliverables rather than assignments or examinations.
The course is structured around four milestones: requirements and analysis, design and architecture, an implementation increment with testing, and a final demonstration at the CS Showcase. At the first three you present to your instructor, and at the CS Showcase you present publicly with your client present. Between milestones you meet your supervisor weekly and do the work.
Projects and clients are confirmed before the term begins. Week 1 is a single introductory session in which the project catalogue is presented and you submit your project preferences. Assignments are posted the following Monday. Week 2 is the scoping week. The class meets in person to work through what Milestone 1 requires, and each team separately meets its client at a time the team arranges directly, outside the class slot.
Project Selection and Team Formation¶
Projects are allocated by preference matching, not by self-organised teams. The process runs in three steps.
1. The catalogue is posted. Every capstone proposal accepted from our clients is published in full before the Week 1 session — the client, the problem, the expected scope, and any technology or access constraints attached to it. Read the whole catalogue. The Week 1 session walks through it and is your opportunity to ask about individual projects before you rank them.
2. You submit your top ten preferences. Each student submits an individual preference form ranking 10 projects, first choice to tenth, due Saturday Sep 12 11:59 PM. Rank on the basis of the work itself: what you want to build, what you want to learn, and what constraints you can realistically meet. A brief note on relevant experience helps where a project carries a specific technical requirement.
3. Assignments are optimised and posted. I allocate students to projects to maximise preference satisfaction across the cohort as a whole, subject to team sizes and to any requirements a client has set. Assignments are posted the Monday after the form closes, Monday September 14, and your team is whoever else is allocated to your project.
You are not guaranteed your top choice. The allocation optimises for global happiness across the class as a whole rather than for any one student.
Prerequisites¶
COMP 3520: Software Engineering
Fourth-year standing (final term of program)
References¶
There is no required textbook. For most technical questions in this course, the current official documentation of the tools you have chosen will be the most reliable reference. Any external source you rely on should be cited.
Course Learning Outcomes¶
By the end of this course, students will be able to:
CLO 1 — Formulate a project plan and scope. Produce a project plan, scope statement, and teamwork contract in response to a client brief, including explicit exclusions and a risk register.
CLO 2 — Analyze stakeholder needs. Elicit and validate software requirements from a client, and trace each requirement back to a stated need.
CLO 3 — Design a system architecture. Design a system architecture, data model, and interfaces appropriate to the requirements and constraints of the project, and justify the technology choices made.
CLO 4 — Develop a working implementation. Implement a functioning increment using version control, reproducible builds, and documented third-party licence compliance.
CLO 5 — Validate through testing. Design and execute a testing strategy appropriate to the system, and present evidence of its results.
CLO 6 — Collaborate professionally. Work productively within a distributed team and with an external client, under a signed confidentiality and intellectual property agreement.
CLO 7 — Articulate project outcomes. Explain project rationale, progress, and results to both technical and non-technical audiences, in writing and in person.
CLO 8 — Self-manage project work. Plan, report, and self-manage sustained project work in a largely asynchronous setting.
Assessment Overview¶
| Component | Weight | Format | When |
|---|---|---|---|
| Teamwork Contract and Project Scoping | 5% | Team submission on Moodle | Mon, Sep 21 (Week 3) |
| Milestone 1 — Requirements and Analysis | 15% | Report (max 3 pp.) + group presentation | Thu, Oct 1 (Week 4) |
| Milestone 2 — Design and Architecture | 15% | Report (max 3 pp.) + group presentation | Thu, Oct 29 (Week 8) |
| Milestone 3 — Implementation and Testing | 20% | Report (max 3 pp.) + group presentation | Thu, Nov 19 (Week 11) |
| Milestone 4 — Final Demonstration | 15% | Public presentation at CS Showcase | Thu, Dec 3 (Week 13) |
| Final Project Report | 10% | Team document, peer-adjusted | Tue, Dec 8, 11:59 PM |
| Weekly Supervision Meetings | 10% | Individual, assessed by supervisor | Weekly |
| Client and Instructor Evaluations | 10% | Individual assessment | End of term |
| Total | 100% |
There is no final exam in this course. The December examination period does not apply to COMP 4910.
Teamwork Contract and Project Scoping — 5%¶
The deliverable is a one-page teamwork contract, due Monday September 21, written after your team has met its client. It sets out how decisions get made, how work is divided, what your definition of done is, what level of AI tool autonomy you have agreed, and what happens when someone misses a commitment.
Work from the Teamwork Code of Conduct template, and commit your completed version to your team repository as CODE_OF_CONDUCT.md.
This is graded on specificity rather than polish. General statements of intent such as “we will communicate well” carry little credit. A clause such as “progress posted to the team channel by Monday 9 AM, with anyone silent for 72 hours escalated to the supervisor” is what the contract is for.
Milestones 1–4 — 65%¶
Each milestone is an extended class session, 3:30 to 6:00 PM, with all teams present. Milestones 1 to 3 are presented to the instructor and the other teams; clients do not attend. The presentation is delivered as a group, with every member covering their own segment and answering questions on their own work. Marks reflect the team’s presentation as a whole, and your participation factor accounts for your part in it.
Supplementary report. Milestones 1, 2, and 3 each require a supplementary report of no more than three pages, submitted on Moodle before the review session begins. The page limit is firm, and any material beyond the third page will not be marked. Diagrams, tables, and figures count toward the limit. Appendices, repository links, and generated artefacts do not. Milestone 4 has no supplementary report, since the Final Project Report covers it.
Milestone 1 — Requirements and Analysis (15%). Validated requirements traceable to the client brief, stakeholder analysis, scope boundaries with explicit exclusions, and a risk register. The supplementary report carries the requirements set, the exclusions, and the risk register.
Milestone 2 — Design and Architecture (15%). System architecture, data model, interface design, technology selection with written justification, and a licence inventory covering every third-party dependency. The supplementary report carries the architecture diagram, the technology justification, and the licence inventory.
Milestone 3 — Implementation Increment and Testing (20%). A working implementation increment, submitted through your repository, with version-controlled source, reproducible build instructions, and a testing strategy supported by evidence of execution. Implementation and testing are marked separately at 10% each. The supplementary report carries the testing strategy, the evidence of execution, and the build instructions.
Milestone 4 — Final Demonstration (15%). Public demonstration at the CS Showcase, to faculty, industry partners, and invited guests, with your client present.
Final Project Report — 10%¶
A professional technical report covering problem, approach, implementation, evaluation, and handover. The handover section matters most: assume the reader is the person who maintains this after you graduate. Due Tuesday, December 8 at 11:59 PM, the last day of classes.
Weekly Supervision Meetings — 10%¶
Each team meets its assigned supervisor for 30 minutes every week. The recurring time is set in Week 1. On supervision-block Thursdays the meeting runs in the class slot; in milestone and lecture weeks it is scheduled around them.
Come prepared to cover what you have done since the last meeting, what you are doing next, and what is blocking you. No written submission is required.
This component is assessed individually on attendance, on your ability to account for your own work, and on whether problems are raised early enough to be addressed. Blockers raised at a supervision meeting can usually be resolved; the same problem surfacing for the first time at a milestone review generally cannot.
Your supervisor responds to anything urgent raised between meetings within 48 hours, excluding weekends and holidays.
Client and Instructor Evaluations — 10%¶
Your client and your supervisor each assess your professional conduct at the end of term: responsiveness, reliability at meetings, quality of communication, and whether you did what you said you would do. This component is individual and is not peer-adjusted.
GitHub (Mandatory)¶
Every team keeps its work in a GitHub repository, and every member commits and pushes their own contributions under their own account. Do not have one person push on the team’s behalf. Do not paste a teammate’s work into your own commits.
The commit history is the evidence of your contribution. It is what the instructor reads when corroborating peer assessments, and a member whose work does not appear in the history has no record of having contributed. Commit as you go, in reasonably sized pieces with meaningful messages.
Repositories should be kept private. Add the instructor as a collaborator in Week 3 and include the repository URL in every milestone package. Where your client agreement sets additional conditions on access or hosting, note them in your teamwork contract and follow them.
How the individual grade is computed¶
Team marks are adjusted by an individual participation factor (PF). Team output and individual contribution are not the same thing, and this is the mechanism that separates them.
The instrument. Each member rates every teammate on five dimensions, scored 1 to 5, with behavioural anchors given at 1, 3, and 5:
Contribution to the work
Reliability and communication
Keeping the team on track
Expecting quality
Relevant skill and learning
Your raw score R is the mean of the ratings you receive. Raw PF = R divided by the team mean of R.
| Raw PF | What happens |
|---|---|
| 0.90 to 1.10 | Neutral range. PF is set to 1.00 and no adjustment is made. |
| Outside that range | PF is clamped to the interval [0.80, 1.15] and applied. |
| Below 0.80 | Mandatory meeting with your supervisor before any mark is finalised. |
When it applies. PF is recalculated from scratch at every milestone and never carried forward. A weak round does not follow you. The Milestone 4 factor applies to both the Showcase and the Final Project Report. In total it governs 75% of your grade.
Worked example. A four-person team earns 80% on Milestone 2. Raw scores are 4.6, 4.4, 4.2, and 2.8, so the team mean is 4.0.
| Member | R | Raw PF | Applied PF | Mark |
|---|---|---|---|---|
| A | 4.6 | 1.15 | 1.15 | 92% |
| B | 4.4 | 1.10 | 1.00 (neutral range) | 80% |
| C | 4.2 | 1.05 | 1.00 (neutral range) | 80% |
| D | 2.8 | 0.70 | 0.80, plus supervisor meeting | 64% |
Anti-gaming provisions. Submitting ratings is mandatory; a member who does not submit for a round receives PF 0.90 for that round. Ratings showing no variation across teammates, or showing signs of coordination, may be excluded at the instructor’s discretion. Retaliatory rating is an academic integrity matter. Ratings are confidential and are never disclosed in attributable form. All peer assessments are corroborated against the commit history and supervision records.
Course Schedule¶
Classes run Thursdays, 3:30 – 4:20 PM in OM 1241. Milestone days run 3:30 – 6:00 PM in the same room.
| Week | Date | Session | Mode | Due |
|---|---|---|---|---|
| 1 | Thu Sep 10 | Lecture 1 · Course introduction: milestone structure, project catalogue | In person | Project preference form, Sat Sep 12 11:59 PM |
| 2 | Thu Sep 17 | Lecture 2 · Briefing: Milestone 1 · PF calibration round | In person | Client scoping meeting, arranged per team |
| 3 | Thu Sep 24 | Supervision block | Online | Teamwork contract, Mon Sep 21 |
| 4 | Thu Oct 1 | MILESTONE 1 — Requirements and Analysis (3:30–6:00) | In person | M1 package |
| 5 | Thu Oct 8 | Lecture 3 · Briefing: Milestone 2, design, architecture, licence inventory | Online | — |
| 6 | Thu Oct 15 | Supervision block | Online | — |
| 7 | Thu Oct 22 | Supervision block | Online | — |
| 8 | Thu Oct 29 | MILESTONE 2 — Design and Architecture (3:30–6:00) | In person | M2 package |
| 9 | Thu Nov 5 | Lecture 4 · Briefing: Milestone 3, implementation increment, testing, reproducible builds | Online | — |
| 10 | ~~Thu Nov 12~~ | No class — fall mid-term break | — | — |
| 11 | Thu Nov 19 | MILESTONE 3 — Implementation Increment and Testing (3:30–6:00) | In person | M3 package |
| 12 | Thu Nov 26 | Lecture 5 · Briefing: Milestone 4, Showcase demonstration and Final Project Report | Online | — |
| 13 | Thu Dec 3 | MILESTONE 4 — Final Demonstration · CS SHOWCASE | In person | Showcase presentation |
| 14 | Tue Dec 8 (last day of classes) | No session · Submission window | — | Final Project Report · Repository handover · Confidential peer assessments, 11:59 PM |
Tuesday, December 8 is the last day of classes. Final report, handover package, and confidential peer assessments are due that night at 11:59 PM.
Communication¶
Project and technical questions: raise them with your supervisor at your scheduled meeting.
Blockers that cannot wait: email your supervisor directly rather than holding them until the next meeting.
Client communication: through the channel agreed in your teamwork contract. Copy your supervisor if needed (legal issue, documentation, deliverable).
Individual matters (concessions, extensions, accessibility, team conflict): email your supervisor directly.
Response time: within 24 hours during normal working hours, 9 AM – 5 PM, Monday to Friday.
Course Policies¶
Attendance¶
A registered student who does not attend the first two events of their course and who has not made prior arrangements acceptable to the instructor may, at the discretion of the instructor, be considered to have withdrawn from the course and have their registration deleted.
The five lectures, the Week 2 client scoping meeting, and the four milestone days are required. Weekly supervision meetings are required. The Week 2 scoping meeting is arranged by your team, which makes attending it entirely within your control.
Missing a required session without an approved concession is treated as a professional conduct matter and is reflected in the instructor evaluation component. Please refer to TRU’s attendance policy.
Academic Concessions¶
If circumstances such as illness, family emergency, or a significant life event may prevent you from meeting course requirements:
Notify your supervisor at least 24 hours before the deadline.
Requests are considered case-by-case; you may be asked for documentation.
Possible accommodations include deadline extensions, an alternative arrangement for your segment of the group presentation, or an alternative form of assessment.
Requests made after the deadline are usually refused.
Milestone dates are fixed by the room booking and the shared session across all teams, and are the least flexible deadlines in this course. Raise anticipated conflicts early.
Late Work¶
Milestone packages and supplementary reports are due at the start of the review session. Late submissions are penalised 10% per calendar day.
Supervision meetings cannot be submitted late. A team that does not attend its scheduled meeting, and has not rescheduled it in advance, loses that week’s supervision mark.
Final Project Report and handover follow a 25% per day penalty to a maximum of 75%. After three days the work is not accepted. Because December 8 is the last day of classes and grades are submitted shortly after, no extension beyond December 11 is possible short of a formal academic concession granted by the university.
Missed Milestone Presentations¶
Milestone presentations cannot be made up, because all teams present in a single scheduled session that is not repeated.
If you miss a group presentation without an approved concession, your team presents without you and your absence is reflected in the participation factor for that milestone. With an approved concession, the standard remedy is a recorded segment submitted within five working days.
Accessibility¶
Students registered with Accessibility Services who require accommodations must provide their Letter of Accommodation to the instructor as soon as possible. Please arrange this early in the term so that presentation formats and milestone scheduling can be adjusted in time.
Academic Integrity¶
Capstone work carries a particular risk. The deadlines are set by an external client, and the pressure to submit work you did not produce yourself is highest at exactly those moments.
Within your team, collaboration is the point. Division of labour is expected. Misrepresenting who did what, in a presentation or in a peer assessment, is not a team matter but an integrity matter.
Between teams, collaboration is not permitted on deliverables. Taking code from another team’s repository is plagiarism, and repositories carry timestamped histories.
External code from tutorials, Stack Overflow, package documentation, or model output must be cited in your README, with an inline comment marking what came from where. This is also a licensing requirement, not only an integrity one. Your licence inventory at Milestone 2 is where this becomes formal.
Falsified peer assessments are reported under TRU policy.
Cases of academic dishonesty are reported per TRU policy.
Intellectual Property and Confidentiality¶
Projects involving external clients are governed by a written agreement signed before work begins, and you will sign a confidentiality agreement covering all client material. IP terms vary by project and are stated in your project agreement. You should not assume you own what you build for a client.
If you want to include project work in a public portfolio, get written permission from the client first. Your supervisor can help with that request, which is generally easier to arrange early in the term than at the end of it.
Policy on the Use of Generative AI¶
AI tools are part of professional software practice, and this course is intended to reflect that. You are permitted to use them. You also remain accountable for everything you submit, which in a capstone setting is a more demanding standard than in an introductory course.
Three conditions govern use.
Disclosure. Every milestone package includes a short AI use statement: which tools, for what, and what you verified by hand. A statement too vague to be informative is treated as non-disclosure.
Accountability. You remain fully accountable for all submitted work. Every milestone includes a group presentation in which you are questioned on your own segment, and being unable to explain, justify, or modify your own submitted code or writing is marked accordingly, regardless of what produced it. This reflects professional practice, where code that cannot be maintained by the team that produced it has limited value.
Client constraints override everything above. Where your client’s agreement prohibits transmitting project material to third-party services, that prohibition governs regardless of convenience. Confidential client data must never be entered into an external AI tool. If you are unsure whether a tool is permitted, ask your supervisor before using it.
On agentic tools. Teams using agentic coding tools must agree an autonomy level in the teamwork contract and record it in each AI use statement. The four-level framework is posted on Moodle. Higher levels of autonomy are permitted provided the team can account for the resulting work.
Please refer to TRU’s guideline on the use of generative AI for more information.
How to Succeed in This Course¶
Maintain the client relationship. Reply to messages and attend the meetings you have scheduled. Many of the capstone problems that reach an instructor begin with an unanswered email early in the term.
Scope down early, then deliver. Every team in the history of this course has proposed more than it could build. The teams that do well are the ones that cut scope at Milestone 1, in writing, with the client’s agreement, rather than discovering the problem in November.
Commit small and often. Your commit history is the record you present from at every milestone and the evidence used in every peer assessment. Building it steadily through the term is more straightforward than accounting for its absence later.
Write the handover documentation while you still remember why. The report section that costs teams the most marks is the one written last, in December, about decisions made in October.
Raise blockers at supervision rather than at the milestone. Problems raised early can usually be resolved with your supervisor’s help, while the same problem surfacing at a review affects the mark.
Use the peer assessment as information. The Week 2 calibration round carries no weight and exists so you can see how your team perceives you while there is still a whole term to adjust.