Go To Today
- Module 1: MVI Architecture
- Module 2: Presentation & Model Layers
- Module 3: External Interaction
- Module 4: Polishing & Publishing
| DOW | Date | ## | Lecture Subject | Reading | Handouts | Notes |
| [Top] | ||||||
| M | Jan 12 2026 | 00 | Module 1: Introduction to Android & Kotlin | KMAD pp vii - xxvii | Slides (.pdf) |
A0 assigned |
| W | Jan 14 2026 | 01 | Module 1: MVI - View via Compose UI | KMAD pp 4 - 25 (Ch. 1 - 1.3.2), 217 - 227 (Ch. 7 - 7.2) Android Studio Jetpack Compose |
Slides (.pdf) Hello World: Lab00A |
A0 due FP.EP assigned |
| F | Jan 16 2026 | 02 | Module 1: Compose Layouts & Modifiers + Resource Strings & Kotlin Basics |
KMAD pp 25 - 44 (Ch. 1.3.3 - 1.4) |
Slides (.pdf) Monster Lab: Lab01A |
|
| [Top] | ||||||
| M | Jan 19 2026 | --- No Class --- Martin Luther King Jr. Day --- | ||||
| W | Jan 21 2026 | 03 | Module 1: MVI - Model via Kotlin classes | Slides (.pdf) Monster Lab: Lab01B |
Lab00 due A1 assigned |
|
| F | Jan 23 2026 | 04 | Module 1: Event Listeners and Recomposing | Slides (.pdf) TempConverter Starter Code (.zip) |
FP.EP due |
|
| [Top] | ||||||
| M | Jan 26 2026 | 05 | Shark Tank | Slides (.pdf) |
FP.ST due FP.TF assigned |
|
| W | Jan 28 2026 | 06 | Module 1: Stateful Composables | KMAD pp 51 - 66 (Ch. 2 - 2.3) State & Jetpack Compose |
Slides (.pdf) TempConverter with Events (.zip) Monster Lab: Lab01C |
|
| F | Jan 30 2026 | 07 | Module 1: MVI - Stateless Composables via ViewModel Intents Kotlin collections |
KMAD pp 44 - 49 (Ch. 1.5 - 1.7), 66 - 74 (Ch. 2.4) | Slides (.pdf) TempConverter with Stateful Composables (.zip) Monster Lab: Lab02A |
FP.TF due |
| [Top] | ||||||
| M | Feb 02 2026 | 08 | Module 2: Presentation & Model Layers and Logic Storyboarding |
Slides (.pdf) Quizler: Lab03A |
FP.AP assigned |
|
| T | Feb 03 2026 | Lab01 due |
||||
| W | Feb 04 2026 | 09 | Module 2: Activity Life Cycles + Logging | Android Developer Guide: Introduction to Activities |
Slides (.pdf) TempConverter with Stateless Composables (.zip) Quizler: Lab03B |
|
| F | Feb 06 2026 | 10 | Module 2: Saving State with Lifecycle Aware Jetpack ViewModel | KMAD pp 75 - 84 (Ch. 2.5 - 2.7), 405 - 440 (Ch. 12) Jetpack ViewModel |
Slides (.pdf) TempConverter with Logging (.zip) Quizler: Lab03C |
Lab02 due FP.AP due |
| [Top] | ||||||
| M | Feb 09 2026 | 11 | Module 2: Processes, Tasks, and Saving State with a Bundle Kotlin Abstract Classes |
Slides (.pdf) TempConverter with ViewModel (.zip) |
FP.SB assigned |
|
| W | Feb 11 2026 | 12 | Module 2: Configurations & Resources | KMAD pp 227 - 247 (Ch. 7.3 - 7.5) | Slides (.pdf) Quizler: Lab04A |
A1 due |
| F | Feb 13 2026 | 13 | Module 2: Material Design & Themes | Material Design 3 |
Slides (.pdf) Quizler: Lab04B |
FP.SB due |
| [Top] | ||||||
| M | Feb 16 2026 | --- No Class --- President's Day --- | ||||
| W | Feb 18 2026 | 14 | Module 2: Dynamic Screen Size: Landscape Layouts | Android Developer Guide: Screen compatibility overview |
Slides (.pdf) TempConverter with Landscape Layout (.zip) Quizler: Lab04C |
FP.AR assigned |
| R | Feb 19 2026 | Lab03 due |
||||
| F | Feb 20 2026 | 15 | Module 2: Compose Navigation via NavGraphs | KMAD pp 145 - 161 (Ch. 5 - 5.3), 249 - 283 (Ch. 8) Android Developer Guide: Jetpack Navigation Android Developer Guide: Navigating with Compose Android Developer Guide: Predictive Back Gesture Support |
Slides (.pdf) Quizler: Lab05A |
A2 assigned |
| [Top] | ||||||
| M | Feb 23 2026 | 16 | Module 2: Compose Navigation with SafeArgs | KMAD pp 161 - 172 (Ch. 5.4) | Slides (.pdf) Quizler: Lab05B |
|
| W | Feb 25 2026 | 17 | Module 2: Accessibility & Bug Tracking via Crashlytics | Crashlytics |
Slides (.pdf) |
|
| R | Feb 26 2026 | Lab04 due |
||||
| F | Feb 27 2026 | 18 | Module 2: Compose Scaffold and Menus | Compose Scaffold Compose Floating Action Button Compose App Bars Compose Drawer |
Slides (.pdf) Samodelkin: Lab06A |
|
| [Top] | ||||||
| M | Mar 02 2026 | 19 | Module 2: Kotlin Coroutines: Scope & Flow | KMAD pp 113 - 144 (Ch. 4), 376 - 379 (Ch. 11.4) Kotlin Coroutines Guide Kotlin Asynchronous Programming Android Coroutines Kotlin Flow API Kotlin Flow Kotlin Flows in Android |
Slides (.pdf) |
Exam 1 assigned |
| T | Mar 03 2026 | Lab05 due |
||||
| W | Mar 04 2026 | 20 | Module 2: Room Database & SQLite | KMAD pp 181 - 215 (Ch. 6) Jetpack Room |
Samodelkin: Lab07A |
|
| F | Mar 06 2026 | 21 | Module 2: Networking & Permissions Part I + WorkManager |
Network Operations Jetpack WorkManager |
Exam 1 due |
|
| [Top] | ||||||
| M | Mar 09 2026 | 22 | Module 2: RESTful APIs & Retrofit | KMAD pp 85 - 88 (Ch. 3 - 3.2), 93 - 112 (Ch. 3.4 - 3.7) Retrofit COIL |
Samodelkin: Lab08A |
|
| T | Mar 10 2026 | Lab06 due |
||||
| W | Mar 11 2026 | 23 | Module 3: Explicit & Implicit Intents | Intents Android Developer Guide: Intents and Intent Filters Android Developer Guide: Manage Package Visibility |
A3 assigned |
|
| F | Mar 13 2026 | 24 | Module 3: Returning Data on the Activity Stack | Android Developer Guide: Getting a Result from an Activity Activity Result Contract Android Provided Activity Contracts |
Samodelkin: Lab09A |
Lab07 due |
| [Top] | ||||||
| M | Mar 16 2026 | 25 | Module 3: Camera Part I: Using a Camera Intent with FileProviders | FP.AR due |
||
| T | Mar 17 2026 | FP.AF assigned |
||||
| W | Mar 18 2026 | 26 | Module 3: Camera Part II: Embedding CameraX By Asking For Permission | Jetpack Permissions Android Developer Guide: Permissions overview Android Developer Guide: Determine sensitive data access needs Android Developer Guide: Requesting Permission Android Developer Guide: Content Provider Basics Android Developer Guide: CameraX Android Codelab: Getting Started with CameraX |
Lab08 due |
|
| F | Mar 20 2026 | 27 | Module 3: Camera Part III: Dual Concurrent Cameras | Android Developer Reference: ConcurrentCamera Android Developers Blog: Dual Concurrent Cameras |
FP.AF due A2 due |
|
| [Top] | ||||||
| M | Mar 23 2026 | --- No Class! --- Spring Break --- | ||||
| W | Mar 25 2026 | --- No Class! --- Spring Break --- | ||||
| F | Mar 27 2026 | --- No Class! --- Spring Break --- | ||||
| [Top] | ||||||
| M | Mar 30 2026 | 28 | Module 3: Location | Android Developer Guide: Request location updates Android Developer Guide: Optimize location for battery |
GeoLocatr: Lab10A |
FP.BR assigned |
| T | Mar 31 2026 | Lab09 due |
||||
| W | Apr 01 2026 | 29 | Module 3: Google Maps | Android Developer Guide: Add maps Maps Compose |
GeoLocatr: Lab10B |
A4 assigned |
| F | Apr 03 2026 | 30 | Module 3: Firebase Realtime Cloud DB & User Authentication | KMAD p 88 - 93 (Ch. 3.3) Firebase |
||
| [Top] | ||||||
| M | Apr 06 2026 | 31 | Module 3: Paging | KMAD pp 365 - 404 (Ch. 11) Jetpack Paging |
Exam 2 assigned |
|
| W | Apr 08 2026 | 32 | Module 3: Data Store for App Settings & Configuration | Jetpack DataStore |
GeoLocatr: Lab11A |
|
| F | Apr 10 2026 | 33 | Module 3: Compose Scaffold: Informing the User via Dialogs and Snackbars | Exam 2 due Lab10 due |
||
| [Top] | ||||||
| M | Apr 13 2026 | 34 | Module 3: Compose Scaffold: Drawer Layouts & Floating Action Buttons | FP.BR due |
||
| T | Apr 14 2026 | FP.BF assigned |
||||
| W | Apr 15 2026 | 35 | Module 3: Compose Side Effects & Splash Screens | Compose Side Effects |
||
| R | Apr 16 2026 | FP.BF due |
||||
| F | Apr 17 2026 | --- No Class! --- E-Days --- | ||||
| [Top] | ||||||
| M | Apr 20 2026 | 36 | Module 3: Broadcast Receivers | Android Developer Guide: Broadcast Receiver |
Lab11 due FP.FR assigned FP.WV assigned FP.FT assigned FP.FP assigned FP.FB assigned |
|
| T | Apr 21 2026 | A3 due |
||||
| W | Apr 22 2026 | 37 | Module 3: Scheduling Notifications | Android Developer Guide: Schedule Alarms AlarmManager Jetpack Notifications |
GeoLocatr: Lab12A |
|
| F | Apr 24 2026 | 38 | Module 3: Deep Links | KMAD pp 172 - 177 (Ch. 5.5 - 5.6) Jetpack Compose NavGraph Deep Link |
GeoLocatr: Lab12B |
|
| [Top] | ||||||
| M | Apr 27 2026 | 39 | Module 4: Unit Testing | KMAD pp 315 - 318 (Ch. 10 - 10.2), 337 - 362 (Ch. 10.4 - 10.6) Android Developer Guide: Fundamentals of Testing |
BeatBox: Lab13A |
Exam 3 assigned |
| W | Apr 29 2026 | 40 | Module 4: UI Testing | KMAD pp 319 - 337 (Ch. 10.3) Testing Your Compose Layout |
BeatBox: Lab13B |
|
| F | May 01 2026 | 41 | Module 4: Dependency Injection via Dagger Hilt | KMAD pp 285 - 313 (Ch. 9) Hilt |
Exam 3 due Lab12 due |
|
| [Top] | ||||||
| M | May 04 2026 | 42 | Module 4: Polishing & Publishing Your App: Material Design & Standards | Android Developer Guide: Publish Your App Material Design |
FP.PS assigned |
|
| T | May 05 2026 | Final Project Sales Pitch - Computing Innovation Fair 5:00 PM - 6:30 PM Student Center Ballrooms |
FP.SP due |
|||
| W | May 06 2026 | 43 | Module 4: Android App Bundle (.aab) & Play Asset Delivery (PAD) | Android App Bundle Play Asset Delivery |
||
| R | May 07 2026 | Last Day To Submit Assignments & Labs | Lab13 due A4 due FP.FR due FP.WV due FP.FT due |
|||
| F | May 08 2026 | Final Project Presentations 10:15 AM - 12:15 PM |
FP.FP due FP.FB due FP.PS due |
|||
| [Top] | ||||||