CS 371M Mobile Computing (51610)

Course Objectives

Students will study Android APIs and learn to build significant Android applications. The course will have a practical focus, with significant in-class programming, programming assignments and a large project (optionally with a partner). The course philosophy is that programming is learned by doing. While the course focuses on Android, we will learn general principles of software engineering and mobile app development.

The course assumes familiarity with programming and object oriented terminology. It assumes some familiarity with the Java programming language. If you are weak on Java, please study up. It does not assume any previous experience with Android programming.

Teaching Assistants

Zhiting Zhu zhitingz@cs.utexas.edu Office Hours: Thursday 4:00pm-5:00pm at TA Station Desk 3, GDC 1.302


Emmett Witchel GDC 6.432 Tuesday 2:00pm-3:15pm (or just send an email for an appointment)
Sometimes I am just down the hall at GDC 6.440 talking to graduate students.

Course Materials

Course Policies


Students are encouraged to talk to each other, to the course staff, or to anyone else about any of the assignments. Assistance must be limited to discussion of the problem and sketching general approaches to a solution. Each student must write out his or her own solutions to the homework.

In-class electronics

I will be using sli.do for in-class questions and sli.do or canvas for questions. You can use your phones. For flipped classrooms, we will use laptops. But for lectures, I'm hoping you can keep laptop use to a minimum. There is ample evidence that they do not enhance your learning and that they disrupt those around you( for example, this article). If you must use a laptop, sit in the back or maybe on the side to minimize the distraction to others. Please do not watch unrelated videos in class.

The department student code of conduct is here. Here is a nice quotation, "The University and the Department are committed to preserving the reputation of your degree. It means a lot to you. In order to guarantee that every degree means what it says it means, we must enforce a strict policy that guarantees that the work that you turn in is your own and that the grades you receive measure your personal achievements in your classes."

If you are not sure about whether some form of collaboration is acceptable, please ask.

Students may not acquire from any source (e.g., another student or an internet site) a partial or complete solution to a problem or project that has been assigned. You cannot simply search for homework/lab answers and turn that work in as your own. If you do so, you will be caught and you will get an F on the assignment and possibly in the course. I take academic honesty very seriously. I will look for any form of cheating and if found, I will persue it, and it will be painful for the guilty party.

Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259,

Late Policy

Assignments are due exactly at the indicated deadline. Any project submitted after the deadline, even by a trivial amount, will be counted as 1 day late. Technical failure of devices or services does not excuse you from a deadline, so please finish your work with time to spare

If you are having difficulty submitting for some technical reason, the best course of action is to email the TA with your solution attached. Emailed solutions received after the deadline may still be counted as late.

For each day that an assignment is late the maximum score achievable will be reduced by 15% (with an eventual bottom around 8%). But no matter how late it gets, I encourage you to finish all course work. In this class it is always better to submit work than not to submit it. You will get some point value for all correct work submitted.

When you turn in a late assignment, it is imperative that you inform the TA (via email) that you have done so. Assignments are collected by a script which runs at the deadline, so late assignments may not be discovered by the grader unless you send an email.

I want you to do the work for this class. It is always better to turn in an assignment than not. Let course staff know if you are having problems keeping up.

Slip Days

All students are granted a total of 3 slip days over the course of the semester. A slip day negates the penalty of turning in an assignment late by one day (which is up to 24 hours from the due time). Slip days may not be used for the final project. Slip days are atomic, if you are 5 minutes late an entire slip day must be used.

Slip days will not be automatically used when you turn in a late assignment. In order to use a Slip Day, include a note in your email to the TA when you inform him that you have turned in a late assignment.

The home works start easy, but get quite difficult, so budget your time accordingly.

Source code management

You are expected to be able to manage the source code for your homework and projects. That means you should make redundant backup copies, so the failure of the flash drive that you bring to campus (for example) should not mean that you have lost all of your work. This problem should be obviated by the course's git repository, which we encourage you to use for development. You must use it to submit your work.

Build/runtime Errors

A seemingly common problem when submitting code is that it simply will not build. These errors fall into two categories.

  1. Submission errors, absolute paths (which are broken), and other silly mistakes. Projects that encounter this type of error will be allowed to resubmit for a 5% score penalty as long as the re-submission is done in a timely fashion.
  2. Error errors, i.e. broken code. For this category of build errors, you must inform the TA via email within three days of receiving your grade. Please include the following in your message to the TA.
    • Explain what you fixed and how in plain English. i.e. "Fixed menu that wasn't working by removing divide by zero". If your changes are extensive, they will be rejected.
    • Because of our git repository, we will be able to track the diffs between your submitted and fixed version.


Your final grade for the course will be based on the following factors. I use plus and minuses in my grades. I present approximate weights to give you some sense of the relative importance of assignments, but common sense applies. Attendance is mandatory and counts toward your grade.

Grading Complaints

Everybody makes mistakes. If you think your assignment was not correctly graded please contact the TA via email.


We thank Derek Bana's youtube videos and a big thanks to UT's Mike Scott for his version of the course. A bit of the course is copied from Stanford's CS 193A, Android App Development (Winter 2015). We really appreciate that the course authors have released their content under a creative commons attribution 2.5 license. To comply with the license, we link to the license, give Stanford credit, do not use the materials for commercial purposes, and distribute our own version of the materials under the same license. We have modified the originals in a variety of places.

Last updated: 2018-09-08 13:28:52 -0500 [validate xhtml]