Agenda
What’s covered each week. This may change as the course progresses.
Week 01: Introduction
Wed Lecture (49)
- Introduction to the course. (29)
- 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
Wed Lecture (84)
- Software architecture (50)
- Build systems & Gradle (34)
- Creating a Gradle project for your team
- Managing project dependencies e.g., libraries and plugins, shared projects.
Fri Lab
- Project proposal presentation is due in-class, see demo times
- Project proposal is due by 6:00 PM
Week 05: User interfaces
Wed Lecture (107)
- Testing (27)
- Building console applications (24)
- mm-console demo
- Graphical user interfaces (56)
Fri Lab
Week 06: Platforms
Wed Lecture (91)
- Building desktop applications (44)
- mm-desktop demo
- Building mobile applications (47)
- mm-android demo
Fri Lab
- Sprint 1 demo is due in-class, see demo times
- The Sprint 1 source code must be submitted by 6:00 PM
Week 07: Reading week
No lectures or labs
Nothing is due. Enjoy the week!

Week 08: Concurrency
Wed Lecture (75)
- Refactoring (21)
- Concurrency (54)
- Error-Handling - exceptions, exceptions and error-handling w. coroutines
- Flow, Stateflow, SharedFlow
Fri Lab
- Refactoring your project to support concurrency.
- Quiz 3 is due by 6:00 PM
Week 09: SQL databases
Wed Lecture (95)
- Data representation (25)
- Databases (70)
Fri Lab
- Sprint 2 demo is due in-class, see demo times
- The Sprint 2 source code must be submitted by 6:00 PM
Week 10: Web services
Wed Lecture
- Networking: TCP/IP, HTTP, HTTPS
- Web services (28)
Fri Lab
- Building a multi-service application. Dependency injection & mock testing.
- Quiz 4 is due by 6:00 PM
Week 11: Packaging
Wed Lecture
- Building installers
- Containerization & Docker
Fri Lab
- Sprint 3 demo is due in-class, see demo times
- The Sprint 3 source code must be submitted 6:00 PM
Week 12: Wrapup
Wed Lecture
- Review of final submission guidelines
- Post questions on Piazza and we’ll address them in-class.
Fri Lab
- Q&A
- Quiz 5 is due by 6:00 PM
Week 13: Wrapup
Wed Lecture
- No formal lecture.
- Jeff will answer in-class Q&A.
Fri Lab
- Sprint 4 demo is due in-class, see demo times
- The Sprint 4 source 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