Agenda

Agenda

What’s covered each week in-class, including links to slides and course content.

Week 01: Introduction

Course overview; how to form project teams and setup your project.

Wed Lecture

You will have time at the end of class to meet people and form teams.

Fri Lab

This is another opportunity to meet people! If you have a team, you can work on the tasks above.

⚠️
Due This Week
n/a

Week 02: Requirements

Structure of a software project; defining and documenting requirements.

Wed Lecture

Fri Lab

⚠️
Due This Week
Setup Your Project is due by 6:00 PM

Week 03: Learning Kotlin

How to write programs in Kotlin! Installing the development toolchain.

Wed Lecture

Logistics

  • Team formation - current roster; extended demo times
  • Setup Your Project - check requirements before you submit!

Kotlin

Fri Lab

⚠️
Due This Week
Quiz 1 is due by 6:00 PM

Week 04: Architecture

How to structure programs to meet requirements. Build systems and dependencies.

Wed Lecture

Fri Lab

⚠️
Due This Week
Project proposal submission is due by 6:00 PM

Week 05: User interfaces

Writing tests. Building graphical user interfaces.

Wed Lecture

Fri Lab

⚠️
Due This Week
Quiz 2 is due by 6:00 PM

Week 06: Platforms

How to build desktop and mobile applications.

Wed Lecture

Fri Lab

⚠️
Due This Week
Sprint 1 source code must be submitted by 6:00 PM

Week 07: Reading week

Wed Lecture

No lecture!

Fri Lab

No lab. Nothing is due. Enjoy the week!

Beach life

Week 08: Concurrency

How to run tasks concurrently, and in parallel.

Wed Lecture (75)

  • Refactoring (21)
  • Concurrency (54)
    • Error-Handling - exceptions, exceptions and error-handling w. coroutines
    • Flow, Stateflow, SharedFlow

Fri Lab

  • Refactoring your project to support concurrency.
⚠️
Due This Week
Quiz 3 is due by 6:00 PM

Week 09: SQL databases

Designing and using a SQL database for local data.

Wed Lecture (95)

Fri Lab

⚠️
Due This Week
Sprint 2 source code must be submitted by 6:00 PM

Week 10: Web services

How to pull and integrate data from a remote web service.

Wed Lecture

Fri Lab

  • Building a multi-service application. Dependency injection & mock testing.
⚠️
Due This Week
Quiz 4 is due by 6:00 PM

Week 11: Packaging

How to package and/or containerize your application for deployment.

Wed Lecture

  • Building installers
  • Containerization & Docker

Fri Lab

⚠️
Due This Week
Sprint 3 source code must be submitted 6:00 PM

Week 12: Wrapup

Reviewing submission guidlines.

Wed Lecture

  • Review of final submission guidelines
  • Post questions on Piazza and we’ll address them in-class.

Fri Lab

  • Q&A
⚠️
Due This Week
Quiz 5 is due by 6:00 PM

Week 13: Wrapup

Final Q&A.

Wed Lecture

  • No formal lecture.
  • Jeff will answer in-class Q&A.

Fri Lab

⚠️
Due This Week
Sprint 4 source code must be submitted by 6:00 PM

Week 14: Final Release

Tues is the last day of classes, so there are no lectures or labs this week.

Your final software release is due by Tues Dec 2 @ 6:00 PM