Winter 2023
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: 1024 FXB
Discussions: 1005 EECS
TTh 10:30 - 12
F 10:30-11:30 or 11:30-12:30


Sugih Jamin (sugih)
OH: TTh right after lecture and on demand on Slack and Zoom
Nowrin Mohamed (nowrin)
OH: Mon 7:30-8:00, Tue 6:00-6:30

Office hour locations:

Sugih's in-person office hours will be held outside the lecture hall. GSI's office hours will be held in 1008 EECS. We will also hold on-demand, 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.





Course Schedule
(sign in umich account to view)   

Grading Policy
(sign in umich account to view)    

Letter grade interpretation

Letter grades will be posted after the last day of final exams.
There is no "standard" mapping from grade point ranges to letter grades.


: Perfect. Has that WOW factor.


: Engineering work is outstanding. Creativity and novelty are clearly observable. The project goes beyond simply calling a third-party API and CRUD functionalities and 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 requirements:
  1. make your team project repo, agile management board, and presentation videos publicly available for posting on the course's gallery page, or
  2. publicly beta test your project, either through Apple's TestFlight or Google's Testing Tracks and published it later on either Apple's AppStore or Google's PlayStore correspondingly.


: 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 ULCS coursework yet no noteworthy extension of knowledge is readily observable. The amount of effort invested is substantial but could be increased. Projects whose value proposition is met simply by calling a third-party API, e.g., Google speech recognition API or Amazon celebrity face recognition API, would fall into this category and earn at most a B-range grade.


: Engineering work is minimally acceptable. Projects 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 and, where requested, link to video posted on a Google spreadsheet. If you do not turn in an assignment by its due date, you will receive a zero for the assignment.

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. CAEN/ITCS computer labs could be full or closed and machines slowed down due to overload. 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, for example, on a remote git repo, and keep your backup fresh.


Slack for team communication
Trello for team management
Lucidspark or Miro for affinity mapping
Adobe XD or Figma for UI/UX design (resources)
GitHub for code repo
Insomnia, 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, Python
  • PostgreSQL
  • Ubuntu
References and tutorials:

Other tools and resources

Teamwork tools:

UI and Rapid Prototyping Tools:

Development Tools: