Agenda#
Week 01 - Introduction#
Introduction to the course material! Setup scaffolding for a software project.
Goals
- Your main goal this week should be to meet people & form project teams.
- Once that’s done, you can move on to setting up your GitLab project.
Due This Week
- Nothing needs to be submitted in week 01.
Week 02 - Coding with AI#
Learn how to use AI for all stages of your project, and how to apply a “specification-first” approach in your project.
Goals
- Once you have a team, brainstorm ideas and choose a project.
- Document your project and tasks in your GitLab project.
Due
- Check-in 1 in-class this Friday.
- Quiz 1 is due by Friday @ 11:59 PM.
Week 03 - Kotlin Programming#
Learn about the Kotlin programming language and ecosystem.
Goals
- Get the Kotlin toolchain installed for your team.
- Setup a Kotlin project for your target platform. Get a basic build working.
Due
- Demo 1 is due.
- See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- 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.
Due
- Check-in 2 in-class this Friday.
- Quiz 3 is due by Friday @ 11:59 PM.
Week 05 - Design Patterns#
Learn helpful implemenation 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.
- Quiz 4 is due by Friday @ 11:59 PM.
Week 06 - Testing#
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 is due.
- See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- 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.
- 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.
- 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 is due.
- See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
- 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.
-
Lectures
- Databases - slides, video
-
How To…
- TBD
Due
- Check-in 6 in-class this Friday.
- 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.
- Quiz 10 is due by Friday @ 11:59 PM.
Week 12 - Wrapup#
This is the last week of classes! The goal this week is to finish everything.
Goals
- Finish your features and finalize your software release for Demo 4.
Due
- Demo 4 this week! See demo schedule for date/time.
- We will grade what’s present in your GitLab project after your presentation.
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.