Lecture plans

Week-by-week lecture plans, with links to course slides and notes.

Current week

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.

Lectures

Introduction

Project topics

  • Requirements - notes
  • Teamwork - notes, slides (team contract and team roles only)
  • Finding a team - notes

Software process

Project goals

Your project goals this week are focused on finding a project team!

  • Meet people in-class; Jeff will provide time at the end of lectures.
  • Search for teammates in this Piazza post.

TODO List - Week 1

Week 02 - GitLab, Kotlin

How to setup your GitLab project. Getting started with Kotlin!

Lectures

GitLab & project setup

Kotlin language

Project goals

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.

TODO List - Week 02

  • 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”.

Lectures

Build systems

Architecture & design

Project goals

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.

TODO List - Week 03

  • 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.

Lectures

User interfaces

Applications

Project goals

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.

TODO List - Week 04

  • 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.

Lectures

Development topics

Project goals

This is the kickoff for your first iteration! You will choose which features to work on for the next two weeks, and demo these completed features to your TA on Fri Feb 14 (see the team schedule for details).

Project kickoff - slides

Phases of each iteration

Live Coding

Friday is an open class to work on your project with your team. i.e. no planned lectures. 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:

Here’s another sample: my TODO application from last term. It demonstrates how to setup the architecture.

TODO List - Week 05

  • 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

How and why to use relational (and document) databases.

Lectures

Development topics

Project goals

Friday is your Demo 1 deliverable!

  • Demos are all done during class time.
  • See the online schedule for your team’s exact time, and plan to be here 5 mins early.
  • Follow the project iteration guidelines:
    • There are explicit steps to follow.
    • You need to have a software release built, and you should plan on demoing your application from one machine.
    • Everyone on the team must attend the demo in-person (unless you have coordinated with me ahead-of-time).

TODO List - Week 05

  • 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!