- Chapter 1: Introduction
- Chapter 2: Object-Oriented Programming
- Chapter 3: Nullability
- Chapter 4: Functional Programming
- Chapter 5: Collections
- Chapter 6: Functions, Functions, Functions!
- Chapter 7: Standard Library Showcase
- Chapter 8: Operators, Conventions, and Delegates
- Chapter 9: The Type System
- Chapter 10: Generics
- Chapter 11: Coroutines
- Chapter 12: Flows
* The Extras pages provide additional detail for some chapters, covering more than we usually have time for during the course. These are optional to study. Read them at your own leisure, they will not be part of the test.
Location: QBF13
Time: Mondays, 12:15 - 13:45
Attendance is strongly encouraged but not mandatory. See also the written materials and recordings.
-
Test (ZH), 50 pts (min. 40%)
- Takes place in the timeslot of the 14th week lecture, 7th of December, 12:15-13:45, QBF13.
- Old sample test PDF
- Retake of the test: 14th of December, 12:15-13:45, TBD.
-
Homework, 50 pts (min. 40%)
- Assignment details and ideas
- Submissions will be taken on Moodle.
- Specification has to be handed in by the 30st of October (the Friday of week 8), end of day.
- Note that not handing one in by the deadline results in failing the course, as the homework assignment is a required part.
- Final hand-in of the homework by the 4th of December (the Friday of week 13), end of day.
- Homework can be handed it with a late fee up until a week late, the 11th of December, until the end of the day.
- Starter projects for getting started, depending on the type of application you choose:
- Pure Kotlin Gradle project, for command line apps
- Configured with JDK 21 (recommended)
- Configured with JDK 17
- JavaFX game project, for simple games, with basic rendering and input handling
- Configured with JDK 21 (recommended)
- Configured with JDK 17
- Use the Kotlin Multiplatform Wizard for Compose Multiplatform apps, including Desktop and Web apps
- Pure Kotlin Gradle project, for command line apps
Minimum scores for grades (based on the sum of test and homework scores):
- 2: 40 pts
- 3: 55 pts
- 4: 70 pts
- 5: 85 pts
- Java Development Kit (JDK)
- JDK 21 is recommended and is generally used by the provided projects in the course
- If you know what you're doing, feel free to use other (e.g. newer) JDK versions
- See the JDK setup page to learn how to set up a JDK in IntelliJ IDEA
- JDK 21 is recommended and is generally used by the provided projects in the course
- IDE: IntelliJ IDEA is recommended
- The Community edition is free for everyone, and supports basic Kotlin projects
- The Ultimate edition is free for students, get a license here
- JetBrains Toolbox is an optional, free helper app for managing your JetBrains IDEs and projects
Older recordings:
- 2025/26/1
- 2024/25/2
- 2024/25/1
- 2023/24/2
- 2023/24/1
- 2022/23/2
- 2022/23/1
- 2021/22/2
- 2021/22/1
- 2020/21/2
- 2020/21/1
- 2019/20/2
While not required to complete the course, these books are excellent resources for learning Kotlin.
- Kotlin in Action, Second Edition (Sebastian Aigner, Roman Elizarov, Svetlana Isakova, and Dmitry Jemerov)
- Written by members of the Kotlin team at JetBrains. A complete guide to Kotlin, with tons of detailed information about why the language works the way it does, and official best practices and conventions. Significant chunks of both the 1st and 2nd edition were used to prepare the materials for this course.
- Kotlin: An Illustrated Guide (Dave Leeds)
- A high-quality illustrated tour through Kotlin from basics to advanced topics. All of its content is available chapter-by-chapter online, with a PDF version available for purchase.