Agenda#

Week 01 - Introduction#

Goals

  • Meet people & form project teams.
  • Setup your GitLab project.

Due This Week


Week 02 - Architecture & Design#

Goals

  • Brainstorm ideas and choose a project.
  • Iterate on requirements and write starting documentation.
  • Consider design implications.

Due


Week 03 - Kotlin Programming#

Goals

  • Learn about Kotlin programming
  • Install the development toolchain
  • Present your project idea!

Due

  • Demo 1 this week! See demo schedule for date/time.
    • We will grade what’s present in your GitLab project after your presentation.
  • Test 1
    • Covers weeks 01 to 03 lectures.
    • Closes Fri @ 6 PM. No extensions.

Week 04 - Desktop Applications#

Goals

  • Understand how to build a Compose user interface.
  • Add a desktop application to your project.

Due


Week 05 - Mobile Applications#

Goals

  • Add an Android or iOS application to your project.

Due


Week 06 - Kotlin Multiplatform#

Goals

  • Convert your project to a KMP multiplatform build.
  • Lectures

  • Additional Resources

    • Design Reviews
    • Code Reviews

Due

  • Demo 2 this week! See demo schedule for date/time.
    • We will grade what’s present in your GitLab project after your presentation.
  • Test 2
    • Covers weeks 04 to 06 lectures.
    • Closes Fri @ 6 PM. No extensions.

Week 07 - Testing#

Goals

  • Writing unit tests.
  • Dependency injection as a technique.
  • Lectures

  • Additional Resources

    • TBD

Due


Week 08 - Domain Objects#

Goals

  • Data classes for intermediate storage.
  • Serializing data.
  • Error handling.

Due


Week 09 - Concurrency#

Goals

  • Support asynchronous operations.
  • Lectures

    • Threading
    • Coroutines
  • Additional Resources

    • TBD

Due

  • Demo 3 this week! See demo schedule for date/time.
    • We will grade what’s present in your GitLab project after your presentation.
  • Test 3
    • Covers weeks 07 to 09 lectures.
    • Closes Fri @ 6 PM. No extensions.

Week 10 - Persistance#

Goal

  • Back-end systems including databases and services.
  • SQL databases as primary storage.

Lectures

  • Data Persistance
  • File Storage
  • SQL Databases

Additional Resources

  • SQLite
  • Supabase

Due


Week 11 - Web Services#

Goals

  • Using online web services.
  • Creating and hosting a web service.

Lectures

  • Accessing Web Services
  • Building a Web Service w. Ktor (OPTIONAL)

Additional Resources

  • TBD

Due


Week 12 - Wrapup#

Goals

  • Address security concerns with online applications.

Lectures

  • Auth keys
  • Packaging

Additional Resources

  • TBD

Due

  • Demo 4 this week! See demo schedule for date/time.
    • We will grade what’s present in your GitLab project after your presentation.
  • Test 4
    • Covers weeks 10 to 12 lectures.
    • Closes Fri @ 6 PM. No extensions.