Lecture plans
Week-by-week lecture plans, with links to course slides and notes.
- Week 01 - Introduction, Design thinking
- Week 02 - GitLab, Kotlin programming
- Week 03 - Gradle, Architecture & Design
- Week 04 - User interfaces, Applications
- Week 05 - Unit testing, Project kickoff
- Week 06 - Databases, Demo 1
- Week 07 - Reading week
- Week 08 - Data formats
- Week 09 - Web services, Demo 2
Week 01 - Introduction, Design thinking
Welcome to the course! We have a lot of material to cover in the first few weeks so it’s important that you attend class. Please email the instructor or post on Piazza if you have questions.
Wed
Lectures
- Course outline - slides
- Introduction - notes, slides
- Project requirements - notes
- Teamwork - notes, slides (team contract and team roles only)
Fri
Lectures
Outside of class
Your project goals this week are focused on finding a project team!
- Search for teammates in this Piazza post.
- Form a project team this week.
- Review the requirements with your team and start brainstorming project ideas.
- Quiz 1 opens this week, covering all Week 01 content. It will be available in Learn starting Friday @ 6:00 PM, and you have one week to complete it. The deadline to submit it is Fri Jan 17 @ 6:00 PM.
Week 02 - GitLab, Kotlin
How to setup your GitLab project. Getting started with Kotlin!
Wed
Lectures
- Project setup in GitLab - notes, slides
- Documentation - notes, slides
- Toolchain setup - notes, slides
- Introduction to Kotlin - notes, slides
Fri
Lectures
Outside of class
You should complete your project setup. This is due Friday.
Once that is done, you should start working on your project proposal. This is the first part of the Design Thinking process, and involved identifying and interviewing users, creating personas and extracting user stories.
- Submit your project setup.
- Start working on your project proposal. Start early!
- Quiz 1 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 2 opens Friday @ 6:00 pm and remains open for a week.
Week 03 - Gradle, Architecture & Design
How build systems work and how to configure Gradle to build your project. How your application should be structured; benefits of “good design”.
Wed
Lectures
- Gradle - notes, slides, demo project
- Architecture - notes, slides
Fri
Lectures
Outside of class
Review project setup feedback in Learn. Things to watch out for:
- Projects should open to the README.md file. It’s supposed to be the landing page and act as a TOC for other documents.
- Project documentation content should be stored in Wiki pages. If you need images, attach them directly to the document. Please don’t attach external files as links to Wiki pages e.g., Word documents.
Submit your project proposal. This is due Friday.
Start working on your design proposal! This continues from your project proposal and provides details on your proposed solution, including low-fidelity prototypes of your screens.
- Submit your project proposal by Friday @ 6:00 pm.
- Quiz 2 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 3 opens Friday @ 6:00 pm and remains open for a week.
Week 04 - User interfaces, Applications
How to build user interfaces for desktop and mobile applications using Compose.
Wed
Lectures
Fri
Lectures
Outside of class
Review project proposal feedback. TAs have finished grading and will have provided feedback that you should consider.
Submit your design proposal, which is due Friday.
- Make sure to address feedback from the project proposal.
- You will have some time in-class to work on this.
(Optional) Prepare for project kickoff in Week 05!
- Create issues in GitLab for each of your requirements.
- At the start of Week 05, you will plan the release. This includes collectively making decisions on what to implement for the upcoming iteration, and assigning work (i.e., issues) to team members.
- Submit your design proposal by Friday @ 6:00 pm.
- Quiz 3 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 4 opens Friday @ 6:00 pm and remains open for a week.
Week 05 - Unit testing, Project kickoff
How to add unit tests to your project; planning for Demo 1.
Wed
Lecture
Sprint 1 Kickoff - slides
- This is the kickoff for your first iteration!
- You will choose which features to work on for the next two weeks,
- Work towards a demo of these completed features to your TA on Fri Feb 14 (see the team schedule for details).
- For further details, see:
Fri
Open class
- There are no planned lectures or activities.
- The entire class time is meant for you and your team to work on your project.
- Jeff will be in class to help if you need it! When not answering questions, he’ll be live coding changes to his courses project. Plans for today include:
- Migrating API keys into a settings class and a local configuration file.
- Adding regex support to the front-end.
Here’s another sample that demonstrates setting up the MVVM structure: my TODO application from last term.
- Quiz 4 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 5 opens Friday @ 6:00 pm and remains open for a week.
Week 06 - Databases, Demo 1
How and why to use relational (and document) databases.
Wed
Lecture
Fri
Demo day!
- Demos are conducted in your scheduled classroom.
- See the online schedule for your team’s exact time, and plan to be here 5 mins early.
- Follow the coding & demo guidelines:
- You need to have a software release built, and you should plan on demoing your application from one of your team’s computers.
- Everyone on the team must attend the demo in-person (unless you have coordinated with me ahead-of-time).
- Quiz 5 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 6 opens Friday @ 6:00 pm and remains open until Fri Feb 28 @ 6:00 pm. You get an extra week so that nothing is due during reading week!
Week 07 - Reading Week!
Enjoy your week! We’ll kickoff Sprint 2 when we return on Wed Feb 26th.
Week 08 - Data formats
Wed
Lecture
Sprint 2 Kickoff
- This is the kickoff for your second iteration! Follow the planning guide on the course website
- Make sure to review the feedback from Demo 1 (see Learn: Submit > Dropbox > Project demo 1). You should plan on addressing any feedback before your next demo.
- Demo 2 is Fri Mar 7 - see the team schedule for details.
Make sure to review feedback in Learn > Submit > Dropbox.
Broad feedback:
- Follow the guidelines. Make sure you keep GitLab and issues lists up-to-date.
- Make sure that you have something to demo! User-facing features are best but if that’s not feasible, show us unit tests or diagrams, or … Do NOT show us code in the demo.
- Write unit tests for your work. They don’t have to be complete, but you should make a reasonable effort (and continue adding tests as the project progresses).
- Each person must demo their own work. You cannot have one person present everything.
Fri
Open class
- There are no planned lectures or activities.
- The entire class time is meant for you and your team to work on your project.
- Jeff will be in class to help if you need it! When not answering questions, he’ll be live coding changes to his courses project. Plans for today include:
- Automatic database caching of historical data.
- Scheduled service to automatically run queries.
- No team deliverables this week!
- Quiz 6 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 7 opens Friday @ 6:00 pm and remains open until Fri Mar 7 @ 6:00 pm.
Week 09 - Web Services, Demo 2
How to access web services/APIs. Using hosted services.
Wed
Lecture
Wed Mar 12: the morning class will be moved to AL 116.
Fri
Demo day!
- Demos are conducted in your scheduled classroom.
- See the online schedule for your team’s exact time, and plan to be here 5 mins early.
- Follow the coding & demo guidelines to prepare.
- Everyone on the team must attend the demo in-person (unless you have coordinated with me ahead-of-time).
- Quiz 7 closes this week. Make sure it’s submitted before Fri @ 6:00 pm.
- Quiz 8 opens Friday @ 6:00 pm and remains open for one week.
Week 10 - Concurrency
Wed
Lecture
The Wed 10:30 AM lecture will be held in AL 116 for this week only. The remaining lectures are held in their regular rooms.
Sprint 3 Kickoff
- Follow the planning guide on the course website.
- Make sure to review Demo 2 feedback in Learn > Submit > Dropbox.
- Demo 3 is on Fri Mar 21 - see the team schedule for details.
Fri
Open class
- There are no planned lectures or activities.
- The entire class time is meant for you and your team to work on your project.
- Jeff will be in class to help if you need it! When not answering questions - if the projector cooperates - he’ll be live coding changes to his courses project.