Android Programming

(CS 386P)

Request Info

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. The course is taught entirely in Kotlin, the modern sibling of Java. We will spend a bit of time reviewing Kotlin, but you are expected to be familiar enough with Java that the transition will be seamless. The course does not assume any previous experience with Android programming.

  • What You Will Learn

    • How to build an Android app, using the latest software technology (e.g., the Jetpack libraries)
    • How to effectively use Android Studio for programming, testing, and debugging
    • General principles of software engineering and mobile app development
    • Programming tools like the git version control system


    • Kotlin introduction
    • GUI widgets and layout
    • Activities and their lifecycle. Implicit and explicit intents
    • ListView and RecyclerView
    • Fragments
    • View models
    • Live data
    • Model-View-View model (MVVM)
    • Network services
    • Firebase authentication and Firestore cloud database
    • Databases and SQL
    • Maps
    • Persistent state, files
  • Estimated Effort

    • 8-16 Hours/week

    Course Category

    • Systems Course

    Course Availability

    • Coming Soon

Take the Next Step

Advance your computer science career with UT Austin's Master of Computer Science Online.