Welcome
Course Outline
1.
Prerequisites
2.
Objectives
3.
Resources
4.
Assessment
5.
Policies
6.
Contact us
Course Structure
7.
Course plan
8.
Course schedule
9.
Lecture notes
10.
Project teams
Course Project
11.
Getting started ⭐️
11.1.
Requirements
11.2.
Forming teams
11.3.
Picking a topic
12.
Deliverables
12.1.
Project setup
12.2.
Project proposal
12.3.
Design proposal
12.4.
Project demo
12.5.
Final submission
Course Notes
13.
Introduction
14.
Project management
14.1.
Teamwork
14.2.
Being Agile
14.3.
Project repository
14.4.
Documentation
15.
Design thinking
16.
Software design
16.1.
Design principles
16.2.
Architectural styles
16.4.
Software modelling
16.5.
Code structure
17.
Best practices
17.1.
Version control
17.2.
Build configuration
17.3.
Pair programming
17.4.
Unit testing
17.5.
Software release
18.
Development
18.1.
Getting started ⭐️
18.1.1.
Technology choices
18.1.2.
Toolchain installation
18.1.3.
Source code setup
18.2.
Kotlin programming
18.2.1.
Kotlin basics
18.2.2.
OO Kotlin
18.2.3.
Functional Kotlin
18.2.4.
Idiomatic Kotlin
18.2.5.
Concurrency
18.3.
Application styles
18.3.1.
Console
18.3.2.
Desktop
18.3.3.
Mobile
18.4.
Topics
18.4.1.
User interfaces
18.4.2.
Data storage
18.4.3.
Databases
18.4.4.
Networking
18.4.5.
Web services
18.4.6.
Cloud hosting
18.4.7.
Containerization
19.
Reference
19.1.
Books & videos
19.2.
Code samples
19.3.
Libraries & plugins
About this site
Light
Rust
Coal
Navy
Ayu
CS 346 Application Development
Project management
Topics related to managing the project itself.
Table of Contents
Agility
Teamwork
Project repository
Documentation