Agenda
What’s covered each week. This page will be updated frequently.
- Wed: formal lectures (1h 30m), open time (20m).
- Fri: informal lecture (20m), open time (1h 30m).

Week 01: Introduction
Wed Lecture (48)
- Introduction to the course. (28)
- Teamwork discusses how to work together effectively. (20)
- Review the course outline & course policies
- Review the project guidelines & requirements
Fri Lab
- Setup GitLab as your first project activity
- Steps to form a team
- How to create your GitLab project
- Documentation practices
Week 02: Requirements
Wed Lecture (101)
- Software engineering and running a software project. (54)
- Determining requirements for a project. (47)
Fri Lab
- Tracking features with GitLab issues.
- Setup GitLab is due by 6:00 PM
Week 03: Learning Kotlin
Wed Lecture (106)
- Kotlin 1: Introduction to Kotlin (39)
- Kotlin 2: Object-Oriented Kotlin (19)
- Kotlin 3: Functional Kotlin (20)
- Kotlin 4: Ideomatic Kotlin (28)
Fri Lab
- Installing the development toolchain
- Review how to setup the Git repository
- Quiz 1 is due by 6:00 PM
Week 04: Architecture & design
Wed Lecture (109)
Fri Lab
- Project proposal presentation is due in-class, see demo times
- Project proposal is due by 6:00 PM
Week 05: Platforms
Wed Lecture
- Console (15)
- Desktop (17)
- Android (30)
Fri Lab
- Converting your project to an MVVM structure.
- Quiz 2 is due by 6:00 PM
Week 06: Builds & testing
Wed Lecture
- Build systems & Gradle (36)
- Creating a Gradle project for your team
- TDD & unit testing (27)
- Managing project dependencies e.g., libraries and plugins, shared projects.
Fri 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: User interfaces
Wed Lecture
- User interfaces (44)
- Declarative user interfaces with Compose
- Navigation between screens
- MVC -> MVVM
- Unit testing composables (new)
Fri Lab
- Expanding your project to multiple platforms w. KMP.
- Quiz 3 is due by 6:00 PM
Week 09: SQL databases
Wed Lecture
- Data formats (28)
- SQL databases (49)
- Exposed framework
Fri 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
Wed Lecture
- Web services (28+12)
- Ktor
Fri Lab
- Building a multi-service application. Dependency injection & mock testing.
- Quiz 4 is due by 6:00 PM
Week 11: Concurrency
Wed Lecture
- Concurrency (37)
Fri Lab
- Sprint 3 demo is due in-class, see demo times
- Sprint 3 code must be submitted 6:00 PM
Week 12: Packaging
Wed Lecture
- Containers, packaging
Fri Lab
- Packaging applications. (24)
- Quiz 5 is due by 6:00 PM
Week 13: Wrapup
Wed Lecture
- Course evaluations.
- Course wrap-up! Final submission hints.
Fri 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