Winter 2022
We explore product design, project management, code development, usability testing, and team management within the context of mobile app development. Your goals: to identify an innovative mobile app idea and to design and develop it for a product launch at the end of the term. Along the way, you learn how to program a mobile phone running iOS or Android. We focus on device-dependent native app developments, not cross-platform solutions.

Room & time  

Lecture: 1060 FMCRB
Discussions: 1005 EECS
   987 4519 7212 ()
TTh 10:30 - 12
F 10:30-11:30 or 11:30-12:30


Sugih Jamin (sugih)
OH: TTh right after class
Benjamin Brengman (bbrengma)
Ollie Elmgren (oelmgren)
Rithika Ganesh (rithikag)
Luke Wassink (wassinkl)
All IAs' OH: MonTue 6 - 6:30

Office hour locations:

Sugih's in-person office hours will be held outside the lecture hall. IAs' office hours will be held at the Learning Center in BBB. In addition, we will hold ad hoc, online office hours on Slack and Zoom .

Required readings:

There is no textbook. Instead, the lab specs and lecture notes are both required readings. The course's schedule below also lists articles we will be reading this semester. All the contents of the course website is required reading. We will post important course-related information and answers to FAQs on the Canvas Announcements page, which is also required reading.





Elevator Pitch
Skeletal Product

Course Schedule

Grading Policy

Letter grade interpretation

Letter grades will be posted after the last day of final exams


: Perfect. Has that WOW factor.


: Engineering work is outstanding. Creativity and novelty are clearly observable. The project presents the best possible accomplishments given the difficulty level, and experience level of the student team. The amount of effort invested is substantial.

To qualify for A-range grade, you must satisfy in addition one of the following necessary but, by themselves, insufficient, requirements:
  1. make publicly available your team project repo, agile management board, and presentation videos for posting on course's gallery page,
  2. publicly beta test your project through Apple's TestFlight and published it on the AppStore, or
  3. publicly beta test your project through Google's Testing Tracks and published it on the PlayStore.


: Engineering work is very good, though falls short in a few areas. Traces of creativity and novelty are observable. Project draws upon advanced coverage of coursework yet no noteworthy extension of knowledge is readily observable. There are potential (but not necessarily substantial) improvements to the project accomplishments and the end product. The amount of effort invested is noteworthy but could be increased.


: Engineering work is minimally acceptable. App's core functionalities do not extend beyond simple CRUD (create, retrieve, update, delete) operations. Design fails to materialize through a refined process. Questionable design decisions are noted. Design rationale is not well-documented or simply not credible or not sound from a technical perspective. The project is below expectations with respect to a number of criteria; however it does score some successes which suggest project for the future. Students appear to be minimally prepared to undertake such endeavors unless significant refinement is implemented.


: Engineering work is questionable. Most deliverables are substandard. The project draws upon shallow and limited knowledge base. Given the difficulty level, accomplishments are minor although promising in certain aspects. There is potential that a fully functional prototype could be delivered if additional time is allotted.


: Project could not possibly be classified into any of the above categories.

Policy on Collaboration

You are required to work in a team of 6-7 members on course project. Lab assignments are to be completed either individually or in a team of at most 2 people. Team membership for lab assignments may change from lab to lab.

Acts of cheating and plagiarizing will be reported to the Engineering Honor Council. Cheating is when you copy, with or without modification, someone else's work that is not meant to be publicly accessible. Plagiarizing is when you copy, with or without modification, someone else's work that is publicly available without acknowledging the original author. Please further review the College of Engineering Honor Code.

Regrade and Late Submission

You will have ONE opportunity to fix bugs in each graded lab by the Monday following the lab's due date. Corrected code can be credited up to 50% of its original grade points. Code not submitted by deadline will be ineligible for regrade. To be eligible for regrade, do not modify the code on your git repo past the due date. Code with commit time past the deadline will not be eligible for regrade.

Other than the labs, you have two business days from when a grade is communicated to you to ask for regrade. To ask for regrade, you must submit a written request explaining the technical reasons that would make a regrade necessary. A regrade means regrading your whole work and may result in an overall lower grade.

Due to the nature of the assignments, no late work will be accepted. All presentations must be submitted through Canvas by the deadline, which will then be downloaded to the instructor's laptop for presentation. If you do not turn in an assignment by its due date, you will receive a zero for the assignment.

Other than presentation feedback, you will have about two weeks to complete each assignment or quiz. Extensions will be given only for documented medical and family emergencies.

Cloud services such as compute engine (AWS or GCP), git repo (GitHub), collaborative apps (Trello, Figma), video hosting site (YouTube) have been known to become inaccessible for 24 hours or more. Video encoding and uploading can take longer than you expected. Your laptop could crash or you could be locked out by Bitlocker or other security measures on your laptop. NO extension will be given for any of these reasons. Plan on them happening and have your work done a couple of days before any due dates. Extensions will also not be given for job interview nor any other non-emergency activities.

Keep a backup of your work off-site and keep your backup fresh.


Slack for team communication
Trello for team management
Lucidspark for affinity mapping
Adobe XD or Figma for UI/UX design (resources)
GitHub for code repo
Postman, curl, HTTPie for testing
GitHub Pages, Semantic-ui, Primer Spec, Canvas for web hosting
Zoom for remote participation and office hours
Back-end server with:
  • Nginx
  • Gunicorn
  • Django
  • PostgreSQL
  • Ubuntu
References and tutorials:

Other tools and resources

Teamwork tools:

UI and Rapid Prototyping Tools:

Development Tools: