U of U Android

CS4962 - Mobile Application Programming: Android


Instructor: Matt Stoker
  Monday 2:00pm to 3:00pm & class lecture time in M LI 1120
  Wednesday 2:00pm to 3:00pm & class lecture time in M LI 1120

Teaching Assistant: Samuel Trout
  Monday 12:00pm - 1:00pm & 3:00pm - 6:30pm in MLIB 1120
  Tuesday: 3:30pm - 5:30pm in room MLIB 1110
  Wednesday: 10:00am - 12:00pm in the Union Mac Lab and 3:00pm - 6:30pm in MLIB 1120
  Friday: 3:00pm - 5:00pm in the Union Mac Lab

Teaching Assistant: Andres Monroy
  By appointment

Course Contact

Website: http://www.eng.utah.edu/~cs4962/

Matt Stoker: matt.stoker at gmail.com (please mail homework and grading questions to TAs)

Samuel Trout: samtrout11 at gmail.com

Andres Monroy: andresf.mon at gmail.com

Course Overview

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 Google Play. 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.

Course Credit

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

5% - Written Assignments

35% - Final Project

Late Policy

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.


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.

Academic Honesty

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.