1. Welcome
  2. Outline
  3. Description
  4. Prerequisites
  5. Learning Objectives
  6. Assessment
  7. Policies
  8. Resources
  9. Contact us
  10. Structure
  11. Schedule
  12. Lecture plans
  13. Project teams
  14. Course Project
  15. Getting started
    1. Requirements
    2. Forming teams
    3. Picking a topic
    4. Examples
  16. Deliverables
    1. Project setup
    2. Project proposal
    3. Design proposal
    4. Coding & demos
    5. Final submission
    6. Team assessment
  17. Course Notes
  18. Introduction
  19. Project management
    1. Teamwork
    2. Being Agile
    3. GitLab projects
    4. Documentation
  20. Design thinking
  21. Software design
    1. Architecture
    2. Design principles
    3. Software modelling
    4. Code structure
  22. Best practices
    1. Version control
    2. Build configuration
    3. Pair programming
    4. Code reviews
    5. Refactoring
    6. Unit testing
    7. Software release
  23. Development
    1. Getting started
      1. Technology choices
      2. Toolchain installation
      3. Source code setup
    2. Kotlin programming
      1. Kotlin basics
      2. OO Kotlin
      3. Functional Kotlin
      4. Idiomatic Kotlin
      5. Concurrency
      6. Kotlin Multiplatform
    3. Application styles
      1. Console
      2. Desktop
      3. Mobile
    4. Topics
      1. User interfaces
      2. Data formats
      3. Databases
      4. Networking
      5. Web services
      6. Cloud hosting
      7. Containerization
  24. FAQ
    1. Course
    2. Project
    3. Gradle
  25. Reference
    1. Books & videos
    2. Code samples
    3. Libraries & plugins
  26. About this site