JetBrains logo

Education Research

Education Research

Designing and developing innovative education-oriented features for JetBrains products

We also share our knowledge across the company and the scientific community by organizing conferences and hackathons, as well as participating in education-focused events.

Our research interests

In-IDE learning

Intelligent tutoring systems

Generative AI in programming education

Low-code programming education

Recent publications and research activities

AI-based next step hints

This AI-based hint system helps students solve Kotlin programming problems step by step.

The solution offers several types of hints:

  • Suggestions for next steps toward solutions
  • Fixes for tests
  • Fixes for compilation errors

It combines the static analysis capabilities of the IDE with modern LLMs to generate hints. Our next steps include implementing support for more languages and studying when and how students use the hints.

The first stage displays a text suggestion for the next step.

The second stage presents a diff window with implementation suggestions.

AI debugging

This project helps students with debugging while they work on problems.

Targeting Kotlin and built into the open-source JetBrains Academy plugin, the prototype for this solution is designed to teach students basic debugging concepts, such as how to set breakpoints and step through their programs. It combines several ML techniques, such as RAG and fine-tuning, together with static analysis and slicing, to improve the quality of suggested breakpoints.

While it currently only addresses semantic errors, we plan to extend the functionality to include runtime errors, in addition to implementing more advanced features such as omniscient debugging.

The plugin suggests when students should start debugging.

During debugging, the plugin suggests breakpoints and value comparisons.

Cognifire

This project promotes low-code programming in education.

Targeting Kotlin and built into the open-source JetBrains Academy plugin, the prototype for this project implements a new approach to teaching students to code in the low-code era of programming. It combines intelligent prompt engineering, code generation, and direct coding to teach algorithmic thinking and problem decomposition.

A dedicated DSL provides support for special description and draft blocks, giving students a space for prompting. Meanwhile, static analysis is used to check whether students are only using defined variables and functions and to improve the quality of the model’s output.

The current version of the solution only supports function-level descriptions, but we plan to extend this functionality by teaching students to decompose their projects into functions in natural language.

Overview of Cognifire

AI-generated metaphors

This tool extracts coding concepts from task descriptions and generates visual and text-based metaphors to explain these concepts to students.

The prototype for this solution is built on the open-source manim library, and it implements a pipeline that automatically extracts computer science concepts, generates metaphors as text, and then creates and refines videos illustrating the concepts.

The pipeline is divided into several steps, including concept extraction, metaphor generation, video generation, and video self-improvement.

We plan to add support for custom SVGs and themes so you can specify the color palette and style of the generated videos.

This video was created by the solution to explain the concept of Booleans. It was generated completely automatically without any manual editing.

KOALA

A tool for tracking student behavior during in-IDE learning

KOALA collects fine-grained logs of controlled experiments in the IDE. It allows you to track all step-by-step changes in code files, as well as all interactions with the IDE. You can customize it easily using YAML configuration files, and you can even send the collected data to a remote server, providing a convenient setting for remote experiments.

Examples of data collected using KOALA include:

  1. Activities performed in the IDE, such as running, debugging, etc.
  2. Current student code.
  3. The opening, closing, and refocusing of files.
  4. Open tool windows.
  5. Survey data.

Here you can see how different data is written to different CSV files.

Teaching materials

The educational materials developed by the Education Research Lab combine our teaching and research experience to make programming classes more engaging for students. The materials are fully open source and can be easily used in any classroom.

Data Visualization in Python

This in-IDE course teaches the principles of effective data visualization. It covers how to use Python libraries, as well as how to choose the appropriate plot type in different scenarios.

This course is currently under development and will be available soon.

Kotlin Onboarding

Split into three parts, this project-based in-IDE course covers CS1 concepts. Students work on interactive console and web projects, such as a Hangman game and an Alias board game.

Introduction , OOP, Collections

Introduction to IDE Code Refactoring

This in-IDE course helps students understand the concept of refactoring and teaches them how to use refactorings effectively in IntelliJ IDEA. The course is available for both Kotlin and Java.

Kotlin version, Java version

Kotlin Open Materials

This set of open materials is designed to help you develop your own Kotlin course. The resources include presentations with notes, quizzes, and homework assignments. If you're planning to create a Kotlin course, feel free to use these materials!

Kotlin Open Materials

About us

Comprising talented researchers and software engineers, the JetBrains Education Research team specializes in conducting high-quality research and developing cutting-edge technological prototypes. Beyond our core team, we collaborate with external partners worldwide, including in the Netherlands, Switzerland, the US, and Canada.

Ongoing collaborations

We actively collaborate in various formats with universities around the world.

Utrecht University
Netherlands

We collaborate with Hieke Keuning on the AI Hints and Cognifire projects, focusing on designing and conducting studies together and co-authoring joint publications. Our partnership also includes organizing joint events and seminars to exchange ideas for research projects. Additionally, Hieke Keuning is the daily supervisor for Anastasiia Birillo's PhD.

TU Delft
Netherlands

We lead the Intelligent Teaching Assistant in Programming Education track from the industry perspective within the AI4SE collaboration. Our primary focus is the AI Metaphors project, which forms a key part of Yuri Noviello's PhD. In this initiative, we oversee the technical aspects and actively contribute to shaping the direction of the research.

Northern Arizona University
United States

We collaborate with Jacob Penney, a PhD student at the university, on the Cognifire project, focusing on evaluating the learning impact of the proposed approach and aiming for joint publications. We also plan to expand this partnership to long-term projects for more in-depth research outcomes.

ETH Zürich
Switzerland

We collaborate with April Wang on the AI-Debugging project, focusing on designing and conducting a joint evaluation of the proposed approach, followed by a joint publication. As part of this partnership, we also delivered a guest lecture at the university. Looking ahead, we plan to expand our collaboration by working on joint thesis projects and exchanging research ideas, particularly in connection with the Cognifire project and creating engaging in-IDE courses together.

Collaborate with us

We are happy to take part in seminars or guest lectures. You can come and meet our team, or we can present our work to your group or at your event.

We are also open to collaborating on existing projects or setting up new ones in our areas of interest. Possible formats include validation design, user studies, or other types of research involving human participants.

Write to us at edu-research-team@jetbrains.com to learn more.