Skip to content

jetbrains-academy/kotlin-onboarding-collections

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

official project Gradle Build Gradle Build With Detekt License: MIT

Kotlin Onboarding: Collections

This course is designed for novices in Kotlin and focuses on working with collections in the Kotlin language. This is the third module of the course, the first and second modules can be found on JetBrains Marketplace. This module assumes that you are already familiar with all the constructs discussed in the first and second parts.

Each lesson of the course is built in the form of a project: step by step, by completing different small tasks, you will get a fully working project in the end. Some of the projects are practice-based and introduce to you different helpful Kotlin functions though practical exercises without much theory part.

Note that this course does not provide a detailed explanation of such aspects as asymptotic complexity, mostly, it just describes the definitions of different types of collections and shows how to use them in Kotlin.

All topics will be accompanied by links to the official Kotlin documentation, which you can read later.

Topics covered:

  • definitions of List, Set, and Map collections;
  • read-only and mutable collections with add and remove operations;
  • built-in functions to work with List, Set, and Map;
  • FIFO (First-In-First-Out) approach and how to work with in Kotlin;
  • LIFO (Last-In-First-Out) approach and how to work with in Kotlin;
  • [will be available later] aggregation operations;
  • [will be available later] sequences.

After this course, you will be ready to use Kotlin collections in efficient ways.

Technical requirements

Before starting this course, check the following requirements.

  1. Your computer needs to have a stable internet connection.
  2. Git version control system needs to be installed on your computer (link to the git site: https://git-scm.com/).
  3. Make sure that the path to the root folder of the course does not contain spaces, special characters, or non-Latin characters.
  4. Make sure that you use the IntelliJ IDEA with version at least 2023.1.1.
  5. Make sure that you use the EduTools plugin with version at least 2023.9-2023.1-1603.
  6. To be able to run web applications, you need to have a web browser. We recommend using Google Chrome.

The course is integrated into the IntelliJ IDEA IDE, which has a free Community license. You can use this license to complete the course. If you have some troubles with the course installation, feel free to contact us by email at [email protected].

Course projects

This module is dedicated to the creation web applications on the topic Next to the future. It means that in each lesson, you will create a web application with some images familiar from your (or your parents') childhood.

The current version of the course covers three web-applications, two more will be released later:

  1. Duck shop. As you know, many programmers ask rubber ducks for help. The main goal of this project is to implement a shop window with rubber duckies and study List, Set, and Map collections.

    Example of ready application

    An example of the Duck shop application

  2. Old school. Nowadays, taking Polaroid photos is often a hobby, and most photos are stored electronically. In the past, however, this was an almost inappropriate way to preserve the memory of important moments. The main goal of this project is to go back in time and implement several List, Set, and Map functions that allow you to navigate through your photo album.

    Example of ready application

    An example of the Old school application

  3. Tamagotchi. This toy was once very popular - a small keychain device that lets you take care of a virtual pet. In our case, we will be looking after a little corgi called Andy. The main goal of this project is to go back in time and study two very important approaches in programming - FIFO and LIFO.

    Example of ready application

    An example of the Tamagotchi application

Getting started

This course is available on JetBrains Marketplace and can be installed from the IntelliJ IDEA IDE directly, but you can also use it in the Course Creator mode or create a course archive from the source code.

Getting started: create a course preview from the source code

You can create a course preview from the source code:

  1. Clone the repository:

    git clone https://github.com/jetbrains-academy/kotlin-onboarding-part3.git
    
  2. Install npm and yarn on your computer.

  3. Run yarn install in each module with frontend.

  4. Build the project:

    ./gradlew build
    
  5. Install the EduTools plugin from JetBrains Marketplace.

  6. Create a new course preview.

Getting started: create a course archive

You can create a course archive from the source code:

  1. Clone the repository:

    git clone https://github.com/jetbrains-academy/kotlin-onboarding-part3.git
    
  2. Build the project:

    ./gradlew build
    
  3. Install the EduTools plugin from JetBrains Marketplace.

  4. Create a new course archive.

Run tests

To run tests locally, you just need to build the project and run the following command:

./gradlew test

The tests use the Java Reflection API under the hood to check the user's tasks.

Want to know more?

If you have questions about the course or the tasks or if you find some errors, you can ask questions and participate in discussions in repository issues.

Contribution

Please be sure to review the project's contributing guidelines to learn how to help the project.