Android Programming (CS 386P) Review#
Date: 1/18/2023
Course Information#
University of Texas Android Programming
Course: CS 386P
Credit Hours: 3.0
Title: Android Programming
Description#
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.
My Experience#
My background#
My review of this course is based on completing the curriculum with an A+ grade in Fall 2022. I went into Android Programming with a decent level of experience in Java, some experience in iOS development with SwiftUI which is relevant for MVVM design patterns, and Django web app development for MVT design patterns. I had never used Kotlin before. I also had never used Android Studio before, so I had to learn that as well.
My certificate of completion for this course is available here. Note - This is a MSCS course at UT Austin and my GPA is only available on my official MSCS UT Austin transcript.
My Review#
Review Category |
Rating (7 best, 1 worst) |
---|---|
Overall Rating |
6/7 |
Difficulty |
4/7 |
Textbook |
None |
Lectures |
2/7 |
Professor |
6/7 |
Assignments/Projects |
6/7 |
I found the course was structured well to lead developers into the Android developer tools smoothly. Our first project was implementing a layout using XML, which was a good introduction to the Android Studio IDE. We then moved on to implementing a simple app that used a RecyclerView to display a list of items. Later projects involved using various Android APIs to implement more complex apps and Android features. We implemented app features using the Model-View-ViewModel (MVVM) design pattern, which is a common design pattern for Android apps.
The final project was a group project where we implemented a travel planning app. We used the Google Maps API to enable saved locations and maps viewing for the users. The main selling point of this app is a feature that allows the user to save a list of locations and then generate a route that visits all the locations in the order that is optimized automatically using an optimization algorithm given the user’s preferences. You can read more about my experience with this project in my Android Development - City Explorer App page.