Agenda#
Week 01 - Introduction#
Introduction to the course material. How to manage a software project.
Goals
- Your main goal this week should be to meet people & form project teams. Once that’s done, you can start thinking about project ideas!
Due This Week
- Nothing needs to be submitted.
Week 02 - Coding with AI#
Defining product requirements. How to use AI effectively!
Goals
- Setup GitLab, and start documenting your product requirements.
Due
- Check-in 1 in-class this Friday. See demo times.
- Quiz 1 is due by Friday @ 11:59 PM.
Week 03 - Kotlin Programming#
Learn about the Kotlin programming language and ecosystem.
Goals
- Document your project proposal and log tasks in GitLab prior to your demo.
- Get your personal toolchain running, so you can compile code.
Due
- Demo 1 in-class this Friday. See demo times.
- Quiz 2 is due by Friday @ 11:59 PM.
Week 04 - Architecture#
Learn about software design at the macro and micro levels.
Goals:
- Learn how to structure your application to support flexibility and testability.
- Add common base classes and structure to your project.
- Kickoff your sprint! Plan which features to address.
Due
- Check-in 2 in-class this Friday. See demo times.
- Quiz 3 is due by Friday @ 11:59 PM.
Week 05 - Design Patterns#
Learn helpful implementation patterns. Also, feature branching.
Goals
- Select suitable design patterns that you will use.
- Create feature branches for your current tasks.
Due
- Check-in 3 in-class this Friday. See demo times.
- Quiz 4 is due by Friday @ 11:59 PM.
Week 06 - Testing#
How to approach testing, and what tests are critical.
Goals
- Add unit tests to your existing codebase, and ensure adequate coverage.
- From this point forward, you are expected to develop and maintain unit tests.
Due
- Demo 2 in-class this Friday. See demo times.
- Quiz 5 is due by Friday @ 11:59 PM.
Week 07 - User Interfaces#
The structure of a user-interface, and integrating it into a larger application.
Goals
- Learn how the Compose framework works.
- Get a basic user interface running for your desktop application.
Due
- Check-in 4 in-class this Friday. See demo times.
- Quiz 6 is due by Friday @ 11:59 PM.
Week 08 - Mobile Applications#
Mobile development, including Android architecture.
Goals
- Expand your project to include Android and/or iOS targets.
- Migrate code to common so that you are actively supporting multiple targets.
Due
- Check-in 5 in-class this Friday. See demo times.
- Quiz 7 is due by Friday @ 11:59 PM.
Week 09 - Concurrency#
Execution models, and learn how to leverage concurrency and Kotlin flows.
Goals
- Introduce concurrency where makes sense for your application e.g., login screens, database queries.
Due
- Demo 3 in-class this Friday. See demo times.
- Quiz 8 is due by Friday @ 11:59 PM.
Week 10 - Databases#
How to use a SQL database for data storage.
Goals
- Add your database, using the architectural patterns discussed.
- Add mocks to support testing your database classes.
- Get basic queries working with live data.
Due
- Check-in 6 in-class this Friday. See demo times.
- Quiz 9 is due by Friday @ 11:59 PM.
Week 11 - Web Services#
How to access web services.
Goals
- Add a web service to your project, if applicable.
Due
- Check-in 7 in-class this Friday. See demo times.
- Quiz 10 is due by Friday @ 11:59 PM.
Week 12 - AI Agents#
Building custom AI agents to interact with your application.
Goals
- Finish your features and finalize your software release for Demo 4.
Due
- Demo 4 in-class this Friday. See demo times.
Week 13 - Final Submission#
Goal
- Hand-in your final project submission, including documentation. This is outside of class, so be careful with the dates.
- Lectures
- Classes end Tues Dec 8. No scheduled classes this week.
Due
- Final submission is due Fri Dec 11 @ 11:59p.