Agenda
What’s covered each week. This page will be updated frequently.
- Wed: formal lectures (1h 30m), open time (20m).
- Fri: informal demos (20m), open time (1h 30m).
You are required to have team meetings twice per week. If you come to class, and record meeting minutes, you will meet that requirement!

Week 01: Introduction
Wed Lecture
- Introduction to the course
- Agile development practices
- Review project guidelines & requirements
Fri Lab
- Setup GitLab as your first project activity
- Steps to form a team
- How to create your GitLab project
Week 02: Learning Kotlin
Wed Lecture
Fri Lab
- Installing the development toolchain
- Review how to setup the Git repository
- Setup GitLab is due by 6:00 PM
Week 03: Builds & testing
Lecture
- Build systems & Gradle for building and running your project.
- TDD & unit testing desktop and Android projects
Lab
- Creating a Gradle project for your team
- Managing project dependencies e.g., libraries and plugins, shared projects.
- Quiz 1 is due by 6:00 PM
Week 04: Application design
Lecture
- Application architecture
- Demo of
courses
application- Dependency injection and testing unmanaged dependencies (move here from unit testing slides).
- Structure from architecture slides.
- Design patterns (TBD)
Lab
- Project proposal presentation is due in-class, see demo times
- Project proposal is due by 6:00 PM
Week 05: User interfaces
Lecture
- User interfaces
- Declarative user interfaces with Compose
- Navigation between screens
- Unit testing composables (new)
Lab
- Building a MVVM application with a user interface. Testing it.
- Quiz 2 is due by 6:00 PM
Week 06: Platform features
Lecture
- Desktop platform
- Mobile/Android platform
Lab
- Sprint 1 demo is due in-class, see demo times
- Sprint 1 code must be submitted by 6:00 PM
Week 07: Reading week

No lectures or labs
Nothing is due. Enjoy the week!
Week 08: Kotlin Multiplatform
Lecture
- KMP builds
- Platform specific features
Lab
- Demonstrating a KMP project
- Quiz 3 is due by 6:00 PM
Week 09: SQL databases
Lecture
- SQL databases
- Exposed framework
Lab
- Sprint 2 demo is due in-class, see demo times
- Sprint 2 code must be submitted by 6:00 PM
Week 10: Web services
Lecture
- Web services
- Ktor
Lab
- Building a multi-target application using Ktor.
- Quiz 4 is due by 6:00 PM
Week 11: Concurrency
Lecture
- Concurrency
- Coroutines
Lab
- Sprint 3 demo is due in-class, see demo times
- Sprint 3 code must be submitted 6:00 PM
Week 12: Packaging
Lecture
- Containers, packaging
Lab
- Packaging our applications.
- Quiz 5 is due by 6:00 PM
Week 13: Wrapup
Lecture
- Course evaluations.
- Course wrapup! Final submission hints.
Lab
- Sprint 4 demo is due in-class, see demo times
- Sprint 4 code must be submitted by 6:00 PM
Week 14: Final Release
Tues is the last day of classes, so there are no lectures or labs this week.
Your final software release is due by Tues Dec 2 @ 6:00 PM