INFO 448: Android Development (A17)

INFO 448: Android Development (A17)


Just joining us? Start by doing the following:

  1. Fill out the intro survey
  2. Read through the course syllabus (this page) and the course policies
  3. Join the class Slack team! Feel free to say hello :)
  4. If you somehow haven't yet, sign up for GitHub. I recommend using your name or UW NetID as a username.
  5. Install required development software:

Contact Information

Instructor Joel Ross
Email; Phone: (206) 685 1622
Office MGH 330C; Office hours: Tue/Thu 10:30a-12:30p, or by appointment

TA Arden Kim,

Class meeting times
   Lecture M/W 1:30 pm - 3:20 pm (MGH 430)
   Lab M 6:30 pm - 7:20 pm (MGH 430)

Lecture Notes / Text Reference

Code on GitHub

Q&A on Slack

Course Description

Software development for mobile devices has special needs and challenges. Devices are constrained in many ways, including a limited display size, processor speed, amount of storage, energy budget, as well as sporadic network connectivity. Yet mobile devices also have a wider variety of available sensors than many desktops, including cameras and microphones, alongside location and motion sensors. This allows for significantly different usage patterns and capabilities, all of which affect application development.

This course will introduce you to the tools, language, software architectures, and user interface requirements needed to develop applications for Android phones, tablets, and other devices. You will build small to mid-sized Android applications using the Java language, addressing the implementation of user interfaces and interactivity, networking, sensor access, and data storage and retrieval.

Prerequisites: CSE 143; INFO 343 or equivalent.

Learning Objectives

After completing this course, students will be able to:

  • Utilize development tools and IDEs to implement Android applications
  • Understand the fundamental components and lifecycle of an Android application
  • Specify user interfaces for applications through a variety of interactive widgets and modalities
  • Harness sensors common to mobile device in applications
  • Develop applications that work across a heterogeneous set of devices
  • Be familiar with patterns used in industry for the development of Android applications.

Course Components

This course aims to help you develop practical skills implementing applications using the Android framework, so activities will be targeted at these programming activities.


Lectures will be used to introduce and demonstrate topics, providing a basic for assignments. Lectures will primarily follow a "tutorial/walkthrough" approach, demonstrating how to implement particular components of an application, while providing you a chance to experiment with techniques. The best way to learn is to participate and "code along" with the class demos. I expect you to ask questions, experiment with variations, and otherwise "be all in" with the course.

Note that lecture explanations and tutorials will also be available in the Lecture Notes available online. I encourage you to read the relevant sections of the text before lecture when possible, and be ready to ask questions about concepts that are unclear!


Find complete assignment details and due dates on the Assignments page.


Lab sections will involve small implementation exercises used to either practice/review concepts from lecture, or to explore supplementary aspects of Android development. You will be expected to complete each exercise (including finishing at home if necessary).

Find complete lab details and due dates on the Assignments page.

Group Project

You will also be completing a group project (developing an application of your choice) at the end of the course. See the relevant assignments for more details.

Specific Rules and Policies

Course policies (including grading and late work policies) are on the Policies page.

Course Schedule

This course will cover topics following the approximate schedule below (subject to change):

Week Topic Reading
0 Intro to Android Development Ch 1, Appendix A
1 Activities & Layouts Ch 2-3
2 Interactive Views Ch 4-5
3 Fragments & Intents Ch 6-7
4 Notifications & Settings Ch 8-9
5 Data Storage Ch 10-11
6 Location & Services Ch 12
7 Sensors Ch 13-14
8 Touch Interactions Ch 15
9 Firebase
10 Project Presentations

Course Summary:

Date Details
CC Attribution Non-Commercial Share Alike This course content is offered under a CC Attribution Non-Commercial Share Alike license. Content in this course can be considered under this license unless otherwise noted.