CS 346 (W23)
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Project Details

This is a project-based course, where project teams collectively scope, define, implement and deliver a full-stack application!

Teams should consist of four people. You are expected to form teams in the first week of the course 1.

Everyone on a project team is expected to participate and contribute to your project. You are also expected to act professionally with your team members at all times (see the policy on ethical behaviour).

Team Composition

Software development is not a solitary activity! You need a variety of people with different skills on your team. Over the course of the project, you will be doing:

  • Requirements anaysis: determining what to build.
  • Design: determining what features to implement, how they interact; you might need to iterate on your UI design over a period of weeks to get it “right”.
  • Programming: there’s definitely programming, including front-end (UI), back-end (databases, cloud services).
  • Testing and deployment: you will need to produce working, installable software each sprint, which means that testing and packaging is critical.

Consider how team members may be able to specialize in different areas that match their skills, interests or both! You have some flexibility on what features you implement: that’s an opportunity for you to pick features that will really let your team’s strengths shine.

How to Build a Successful Team

Look for team members that have similar goals and work habits as you.

  • Do you have the same work schedule? Are you available and willing to work at the same times (e.g. mornings? evenings?)
  • Are you all willing to make the same time and effort commitment to the course? If most of the team wants to put in extra time to get an A+, then you need to make sure that everyone is on-board to do that.
  • Look for complementary skills! Not everyone needs to be a (fill-in-the-blank) programmer. There’s room for a lot of different skills to be applied to your project.

Finding Team Members

Ideas on how to find team members:

  • (Online) Post on our forums! There is a forum thread where you can introduce yourself.
  • (In-person) If you’re in-class, introduce yourself to people sitting near you.
  • (In-person) Hold up a card with your skills and look for matches. e.g. CODING, TESTING, DESIGN, KOTLIN, JUNIT…
  • (In-person) Lottery: we can draw numbers and pair you up!
Team members must all be enrolled in the same section, since you will be working your projects together during class.

  1. We will attempt to enrol the correct number of students to meet this requirement. If smaller or larger teams are required, you will to need to get permission and coordinate with the instructor. We will NOT normally authorize team changes past the end of the second week, so if you do not have a team at that point, you may be required to withdraw from the course. ↩︎