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, grading, and feedback 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 intent 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 two "threads" to it. Phase 1.1 will have three related sub-phases. The parallel Phase 1.2 will be an exercise in coding and team cohesion.

  • In Phase 1.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 implementation 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 February 5th


  • You will then begin work (right away) on Phase 1.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. 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 February 12th


  • In Phase 1.1.3, 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 February 26th


  • In the parallel Phase 1.2, you will undertake a programming task which is designed to have the team collaboratively develop something fairly straight-forward using your team's planned platform. Please note that each student needs to create part of the full submission for this, but that 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 and integration of multiple pieces into a single application submission, and both will potentially be very important in Phase 2. This sub-phase's anticipated due date will be by 11:59pm on February 19th

  • Phase 2 will have two 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.

  • At some point, we might ask for an updated "game plan" detailing what vertical and horizontal prototype elements you will complete by the end of Phase 2, how you are sharing the workload, what your internal timeline checkpoints are, etc. as well as confirmation of your development platform. Having such a game plan, even if it evolves during Phase 2, can help with time management. 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).


  • Phase 2.1 is best described as the "now go build" part of the overall project. The result of this phase needs to be a solid and significant prototype in both quantity and quality. While this prototype will continue to be used in the later phases, this phase is the only opportunity to design and implement the functional prototype that will be assessed based on the quantity of interactive features and the quality through the lens of HCI of those features.

    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. There will be places where teams will "pre-populate" their prototype with certain information to create the feel of a live system (for example, based on current and past project options: current food inventory in the home's refrigerator for a kitchen app, example recipes for a kitchen app , upcoming events for a kiosk, a weekly office hours table for a kiosk, the past week or month's worth of exercise data and caloric intake for a health app, a list of available courses for an advising app ) and places where certain interaction options might be limited in the prototype (for example, again based on current and past project options: only certain example recipes with "live" data, only directions to certain example offices, only certain visualizations based on pre-populated data, only doing graduation audits on some example profiles ). 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 April 9th 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.2 will be a team presentation video submission about their own prototype with an anticipated due date of 11:59pm on April 16th


  • 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. This will have a "suggested" due date of April 28th and the actual due date being by 11:59pm on April 30th

    Please note that the report you write as part of this will also need to be delivered to the team whose prototype you use.


    Phase 4 will have three elements that are due in a single PDF.
    You can consider this final phase a set of "biggest bang for the buck" updates to your prototype presented via screenshots rather than interactive code, the formulation of a long-term plan for full development, and an "assumptions inventory" related to your app's user community in terms of what assumptions you are making about those users in terms of experience, knowledge, and abilities and which categories of potential users would not be well-served by this app. 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 (potentially generated via updated front-end 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 several months for how you would continue development towards a real product. This PDF with your updated prototype's screenshots and write-ups will be due by 11:59pm on May 11th






    Web Accessibility