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.
TTh 10:30 - 12
F 10:30-11:30 or 11:30-12:30
OH: TTh right after lecture and on demand on Slack and Zoom
OH: Mon 7:30-8:00, Tue 6:00-6:30
1008 EECS (NEW LOCATION)
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.
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.
A+: Perfect. Has that WOW factor.
A: 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:
- make your team project repo, agile management board,
and presentation videos publicly available for posting on the course's
gallery page, or
- 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.
B: 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.
C: 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.
D: 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.
E: 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)
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:
- Notion team writing tool
- XMind brainstorming and charting tool (not collaborative?)
- Diagrams.net flowchart and diagram (not collaborative)
UI and Rapid Prototyping Tools:
Development Tools: