CS4962 - Mobile Application Programming: Android
Instructor: Matt Stoker
Instructor Office Hours: M W 4:30PM to 5:00PM in M LI 1120
Assistant Instructor: Kevin Wong
Assistant Instructor Hours: By appointment
Class Mailing List: cs4962-android
Matt Stoker: matt.stoker at gmail.com (please mail homework and grading questions to Kevin Wong)
Kevin Wong: kevin at wongius.com
Development of impressive software for mobile platforms requires knowledge beyond that obtained by learning a programming language. Understanding of the more limited abilities of the hardware and software that runs on devices that fit in the palm of one's hand is required to effectively create solutions that succeed there. Economy of computation is only the first requirement. Efficiency of power usage, screen real estate, and, especially, the user's attention are paramount. The developer of mobile applications often has 30 seconds or less in which to deliver an impressive experience and streamlined solution to the user's problem or have their software relegated to the void without a second thought.
Mobile applications are a return to the golden age of software development, where small teams and even smaller budgets are applied to create software to serve hundreds of thousands. The risks are high, and the potential rewards are virtually limitless. Heard of a few?
Most importantly, however, apps are a challenge to design and fun to make. This course aims to provide the tools that make creating truly useful applications possible. Pursuant to that end, the culminating goal of this course is for each student to create an app suitable for publication on the Android Marketplace. This is both a technical and creative goal. Begin thinking of ideas for useful applications of value now, as the end of the semester comes very quickly.
Please note that this class teaches principals of mobile application programming that can be applied to any modern mobile platform. Thus, this course cannot be taken more than once for credit, even if you took the iOS-focused class one semester and the Android-focused class another semester. Please plan your class schedule accordingly.
From the document "CS Elective Requirements":
"Note that only (1) mobile development course (such as, but not limited to: iPhone, Android development) will be accepted as an elective"
Object Oriented Programming, Java Language Experience, Software Design
60% - Programming Homework
40% - Final Project
Each student receives 5 days of late time to distribute across all of the assignments in the semester, in 1 day increments, to handle unforeseen difficulties. Please alert the teaching staff in the case of extreme difficulties such as injury.
We will be drawing primarily from the Android documentation provided by Google. Lectures will be recorded and slides provided for out of class review. Students desiring additional resources should inquire about suitable texts.
Cooperation among students to better understand course material is highly encouraged, as it is an effective learning tool and essential to real-world development team success. High-level discussion of programming techniques and problem solutions is the best way to help or be helped by your fellow students.
Cheating in the context of this course is generally, but not limited to, sharing and copying of code from other students or the Internet. Any code making up your solution should be written and understood by you. Small quantities of template code will at times be provided by the instructor. You can use this code in submissions but should still be able to fully explain the function of all template code you use. Refer to, but do not copy code from, the examples given in class.
The University of Utah is extremely strict in its cheating policies. We will be cross checking your code submissions. Any student caught cheating will automatically be given an E in the course and reported to the University Student Behavior Committee.
Students With Disabilities
The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities. Accommodations will gladly be provided for the known disabilities of students in the class. If you will need accommodations during this course, reasonable prior notice needs to be given to the Center for Disability Services, 162 Olpin Union Building, 581-5020 (Voice and TDD). CDS will work with you and the instructor to make arrangements for accommodations.
All written information in this course can be made available in alternative format with prior notification to the Center for Disability Services.