Why Teach Kotlin
The Language of Android
Revamp your course with the first-choice language for Android development. Kotlin has natively supported the mobile development workflow and associated tools since 2017.
Kotlin is basically becoming the language of Android.
Android development will become increasingly Kotlin-first. Google I/O 2019
Decrease in boilerplate helps us to quickly identify which fundamental Android concepts students are missing. The likelihood of issues arising due to some basic syntactic/language problems is lower, allowing students instead to focus on more fundamental software design matters.
At least 82 universities from the Times Higher Education Rankings 2020 use Kotlin to teach Mobile Application Development, Object-Oriented and Functional Programming, Patterns in Software Engineering, Parallel/Concurrent Programming, Scientific Programming, and other courses (Source: internal Teaching Kotlin Study).
On numerous courses, where we proceed through Java to Kotlin, we are considering a Kotlin-first approach.
22 of the top 100 universities in the THE Rankings 2020 include Kotlin in their courses.
I teach Software Engineering with Kotlin. We also have a separate Android Development course. So I can teach in a language that students can use in other courses.
Popular in the industry
- Kotlin is used by renowned businesses and organizations of all sizes, including Twitter, Reddit, Pinterest, Uber, Coursera, Evernote, Slack, and Trello, just to name a few.
- Kotlin job postings have increased by more than 1400% since 2017. Source: Dice.
- Kotlin is one of the fastest-growing programming languages and ranked 4th in the Github Octoverse 2019.
- PYPL ranks Kotlin as the 12th most popular programming language, with a high upward trend in 2020.
Students are happy to have the chance to program in something they may have heard about.
4th most loved programming language in the 2019 StackOverflow Developer Survey.
The students are so happy. They can produce useful software quickly.
Easy to teach fundamental concepts
Kotlin's industrial popularity has a sound educational foundation. It is a full-featured language that supports teaching various computer science and software engineering topics like algorithmic problem-solving, data structures, machine learning, compilers, databases, and more. Kotlin builds on the students' previous programming experience and is simple to grasp for those with a Java or Python background.
I think our students benefit in general from being exposed to a wide range of programming languages, and I think it is valuable for them to gain experience in using more modern languages alongside the more traditional ones like Java and C++.
I appreciate Kotlin's diffusion, its innovation while being able to ‘stay in the mainstream’ to soften the learning curve, the way it supports key concepts – in short, its clarity and cleanness.
Kotlin has a soft learning curve and makes it easy to migrate existing course materials.
Kotlin is as easy to use as Java, but it has pretty much the same desirable language features of harder languages such as C++.
My students think Kotlin is an easy language to learn. Some students have adopted Kotlin as their main programming language. They use it as their language of choice when they can choose a language for completing an assignment or project.
Knowing that Kotlin is a marketable skill, students tend to be more enthusiastic in studying it. Another big motivator for students is learning a language that allows them to quickly see results from their code.
Nearly all my students have picked up Kotlin quite easily and really loved it, as compared with Java.
Students like the language. It's less verbose than Java, for instance, and has more market appeal than OCaml and ML.
88% of students give positive feedback about learning Kotlin. Source: internal Teaching Kotlin Study.
Students’ feedback about learning Kotlin is really, really positive.
Kotlin is faster to develop and comprehend what is happening; near 100% backwards compatibility makes it easy to show in Java and translate into Kotlin while still utilizing every available library from Java; Students seem to understand it fairly quickly.
For the upcoming Introductory Programming course, we chose Kotlin, because we wanted a language that targets the JVM and seamlessly interoperates with its ecosystem: a stack of utmost importance to our market.
Supports multiple paradigms
Kotlin combines the major programming paradigms in an elegant way, making it possible to use functional, imperative, object-oriented, or procedural programming – all within the same language. With Kotlin’s support for coroutines, the concepts of concurrency and parallelism come naturally.
You are able to teach procedural programming for the very beginners without needing to describe classes. Thus, your course can be more consistent.
Kotlin supports functional, imperative, object-oriented, and procedural programming
My Kotlin students in fact understand OO concepts better than my Java students do.
Kotlin has strong support for object-oriented programming, and also support for functional programming.
Supports coding safety
Kotlin promotes writing correct programs with static type checking and automatic memory management. It rules out null-pointer dereferences and has no explicit pointers or undetectable uninitialized variables.
Take the opportunity to teach something new, type safe and functional.
Type safety and null safety are among the favorite features of Kotlin instructors. Source: internal Teaching Kotlin Study.
One of Kotlin’s advantages is a good combination of strong typing and nullability.
Fewer runtime errors are Kotlin’s advantage. Null safety is my favorite Kotlin feature.
Modern and concise language design
Kotlin's syntactic simplicity makes it beginner-friendly, while at the same time, it offers sophisticated features that ambitious students won't grow out of.
Kotlin allows students to focus on expressing their ideas and write less boilerplate code. Less code written also means less code to test and debug. Such language design makes Kotlin a highly productive language, and it also simplifies grading homework and understanding your students' code.
Simple syntax. Less code to get more done. At the same time Kotlin has advanced topics such as coroutines.
Instructors love Kotlin’s concise and expressive syntax. Source: internal Teaching Kotlin Study.
Kotlin's compactness is my favorite feature. I’ve translated a few of my Java programming courseworks into Kotlin and noticed that code typically shrinks to 50% of its original size. As a teacher, I also get some benefit from being able to use less code when showing students how to do things.
Prepares students for careers
Teaching professional software engineering practices improves students’ employment prospects. In-class coding projects are typically fully functional Android applications, and real-world assignments are more engaging for students than abstract examples are.
Employment prospects and how the language will be on the resume are things to look at when choosing a language to teach.
Kotlin job postings have increased by more than 1400% since 2017. Source: Dice.
Tooling and learning materials
The top tools of the profession are packaged with the language. IntelliJ IDEA supports Kotlin as a first-class citizen and is free for educators and students. It offers great productivity features, such as smart code completion, code inspections, a visual debugger, and more.
The educational EduTools plugin is also available to help learn and teach Kotlin programming. Educators can use existing interactive courses or create custom ones, with hands-on assignments and practice coding tasks. Integrated tests will automatically check the assignments and provide feedback.
JetBrains equipped Kotlin with the best available tooling to simplify development.
Go for it! You will love it. The language is mature, the IDE support is fantastic, the documentation is great.
Open source community
Open source at heart, Kotlin is a free language that runs on all major platforms. Kotlin is supported by, and evolves with the help of, its diverse and enthusiastic community, which includes over 200 Kotlin User Groups all around the world, an active forum, Slack, Reddit, and Stack Overflow communities, and many other resources.
Freely available implementation is very important.
We’ve created a dedicated Slack channel where Kotlin educators can share their experience, exchange ideas, and empower each other. Let’s (teach) Kotlin!