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 class
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.
Letter grade interpretation
Letter grades will be posted after the last day of final exams
A+: Perfect. Has that WOW factor.
A: 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:
- make publicly available your team project repo, agile management board,
and presentation videos for posting on course's
gallery page,
- publicly beta test your project through Apple's
TestFlight and published it on the
AppStore, or
- publicly beta test your project through Google's
Testing Tracks and published it on the
PlayStore.
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
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.
C: 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.
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,
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)
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:
- Miro virtual team whiteboard
- 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:
- import.io web data extraction
- corda blockchain platform
- Cassandra for unstructured data (NoSQL)
- iOS/Swift:
- Javascript and python:
- Java in general:
- Cartographic data and tools: