1. Welcome
  2. Outline
  3. Description
  4. Prerequisites
  5. Learning Objectives
  6. Assessment
  7. Policies
  8. Resources
  9. Structure
  10. Schedule
  11. Lecture plans
  12. Project teams
  13. Contact us
  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. Project iterations
    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
    3. Application styles
      1. Console
      2. Desktop
      3. Mobile
    4. Topics
      1. User interfaces
      2. Data storage
      3. Databases
      4. Networking
      5. Web services
      6. Cloud hosting
      7. Containerization
  24. Reference
    1. Books & videos
    2. Code samples
    3. Libraries & plugins
  25. About this site