Semester Project Overview

In addition to the individual assignments, activities, and exams, we will have a semester-long team project with multiple phases and sub-phases. Teams will need to consist of four students from the same section of class (some teams of three might be approved based on enrollment, but the default expectation is four). Each team will be assigned a member of the course instructional team (the instructor and the teaching assistants) as a "senior manager" who will interact with the team throughout the semester in various ways.

Please note that with these assignments, the breadth and depth of useful features, realism, and the quality of the user interface and the overall user experience are all important parts of the grading criteria.

In addition to assessment and grading of each phase and sub-phase by members of the instructional team, there will be peer assessment submitted for some of the four phases of the project. In these situations, you will each be asked to describe what each of your teammates did on the phase as part of this assessment. All students in a team are expected to participate in each phase and understand their own role, but are also expected to understand the contributions of their fellow team members. One "goal" of the peer assessment is to help all members of the team think about the contribution they are making and hopefully decrease the likelihood that someone will "coast" (see social loafing). These assessments will be used as part of the grading criteria, but the hope is that thinking about these peer assessments will motivate the team to come see me to help them work things out if they face issues, and have a better team experience. If a serious team issue does occur, you should contact me via e-mail or Slack to try to help the team resolve the issue in a timely manner.

It is likely that for certain aspects there will be "lead" students working on different deliverables at times, but all students on the team should be discussing and reviewing each other's work as well and all voices should be heard during team meetings. You will be able to use our class' Slack team page for team coordination, and will be required to use it for interacting with the instructor and your TA.

Note that if this were being done "for real" the best team would have people from diverse backgrounds, which would give the team different perspectives on the problem. For example, a real team could comprise a project manager, a marketing person, a programmer, a representative end user, and/or a help desk person who regularly deals with end users. I would encourage you to think about this as we form groups.

A more detailed description will be posted for each phase, but it will be useful to present an overview here to get us started.


Phase 1 will have three related sub-phases and an associate individual homework assignment.

  • In Phase 1.1 you will form your teams around a posted project option and submit an initial "pitch-back" where each team will describe (in two pages or less) their project as they see it, including its overall audience and overall goals, and any possible ethical considerations, all presented in the team's own words. You should read the phase description for full details, but for the goals you should be able to describe at least three to five primary goals (ie: significant, high impact, robust features), and you will identify some secondary goals (ie: possibly lower impact or lower priority, or whose features would have less depth) as well. You will also decide on the implementaion platform from the provided options of Java or Android Studio or HTML+CSS+Javascript. This sub-phase's anticipated due date will be by 11:59pm on September 11th
  • You will then begin work (right away) on Phase 1.2 where you continue to think about your project option, potentially updating the pitch, but most importantly writing up 2 to 3 user personas and 4 to 6 full task scenarios that you envision represent some of the situations in which people will use your system. You will also arrange to meet with your "senior manager" (the TA assigned to your team) to discuss the current direction you have described and to ask any questions you might have as a team. In doing this phase, you will be expected to communicate with some example potential users and/or stakeholders of your system. This 2nd sub-phase's anticipated due date will be by 11:59pm on September 18th
  • You will also begin work on Homework #2 which is designed to have you develop something fairly straight-forward using your team's planned platform. Please note that each student needs to create theor own submission for this homework, but that on this one homework you are allowed to consult with your teammates for help on any technical aspects of the development platform. One of the goals is to establish team communication skills on technical issues that will potentially be very important in Phase 2. This homework assignment's anticipated due date will be by 11:59pm on October 6th
  • With this more complete view of your project, each team will work to create a set of paper prototypes reflecting several rapid iterations on their ideas, the team's brainstorming on how to support the users, as well as ideas from some of the example potential users you show these prototypes. Teams may choose to request a meeting with their "senior manager" during this process as well. This 3rd sub-phase's anticipated due date will be by 11:59pm on October 2nd

  • Phase 2 will have three related sub-phases.
    Phase 2 will be the medium-fidelity prototype implementation, and should be considered a more coding-centric phase in terms of time and effort, but still needs to be very user and task centric and needs to look and feel authentic and visually pleasing. The end result will be an interactive application built using Java or Android Studio or HTML+CSS+Javascript that allows you to demonstrate the overall look and layout of your system as well as the successful completion of several important interactive tasks. If there are certain features that would require real-time decisions based on certain contextual information, you can (and should) still demonstrate these in your prototype via hard-coded sequences based on a specific scenario. This will allow us to experience the interaction and flow, and therefore be able to better assess that feature.

  • For Phase 2.1 you will need to provide a "game plan" detailing what vertical and horizontal prototype elements you will complete by the end of Phase 2 as well as confirmation of your development platform. As you work on this, you might find your team updating the ideas in the paper prototypes. This is perfectly fine. Your team might identify project elements for which you plan to have hard-coded data examples, or very simple backends (like a text file) even though a real system might have something more scalable (like a DBMS). This is also likely to be acceptable since the goals for this phase are focused on the user interface and their tasks rather than addressing issues of backend scalability (which is a valued software engineering issue of course). This sub-phase's anticipated due date will be by 11:59pm on October 9th and we encourage you to start working on it right after Phase 1.3 is turned in if not before.
  • Phase 2.2 is best described as the "now go build" part of the overall project. Your team will implement significant horizontal and vertical elements of your project in an interactive prototype so that potential users and stakeholders will be able to interact with it and assess how the full version will address their needs and impact their lives. Realistic data and scenarios are an important foundation for a good prototype. It is important to realize that one of the goals is addressing things like user-entry challenges. Within the project options, certain restrictions will exist to remind you that you will need to design and prototype interactions, and cannot "hand those off" to other systems. For example, the Kitchen Kompanion team can't just embed Amazon Grocery rather than design their own shopping list UI/UX. There will be places where teams will "pre-populate" their prototype with certain information to create the feel of a live system (for example, current food inventory in the home's refrigerator, upcoming events for a kiosk, the past week or month's worth of exercise data and caloric intake for a health app) and places where certain interaction options might be limited in the prototype (for example, only certain example recipes with "live" data, or only directions to certain example offices, or only certain visualizations based on pre-populated data). Your team will also submit a written report with this prototype. This report will contain things such as any re-design rationale that is needed, screenshots showing the "look" of certain aspects of your project, as well as a list of 5 to 10 solid tasks that can be accomplished with your prototype (we will use this list as we perform our grading assessment and it will also be used in Phase 3). The medium-fidelity prototype and write-up anticipated due date will be by 11:59pm on November 6th However, there will also be at least one time during this phase where each team will be required to virtually meet with their project TA to present a progress report and demo of what has been built up to that point.
  • Phase 2.3 will be a team presentation video submission about their own prototype with an anticipated due date of 11:59pm on November 13th


  • Phase 3 will effectively have a single internal phase.
    This will be a heuristic evaluation (undertaking one and writing up the associated report) of another team's Phase 2.2 prototype, as well as the design of a user study around that prototype with some form of pilot run of that study (specifics will depend upon health safety logistics and rules) with post-study reflection. We anticipate that you can start to prepare for this in parallel with Phase 2.3, and this will have a "suggested" due date of November 22nd and the anticipated actual due date being by 11:59pm on November 27th


    Phase 4 will have one internal phase.
    You can consider this final phase a set of "biggest bang for the buck" updates to your prototype and the formulation of a long-term plan for full development. Each team will have gotten much feedback (from both the 434 instructional team as well as your peers) and the goal here is to demonstrate some "fast but meaningful" changes to your prototype through a combination of screenshots and potentially updated code, showing that you understood the feedback you have received. Similarly, based on what you have learned from others and from class material, you will write up a theoretical plan for the next 3, 6, 12, or 18 months for how you would continue development towards a real product. Your updated prototype's screenshots and code base, and write-up will be due by 11:59pm on December 11th






    Web Accessibility