JetBrains logo

Education Research

Creating In-IDE Programming Courses

This tutorial is designed for SIGCSE 2025 attendees interested in using interactive IDE-integrated courses to enhance programming education.

Tutorial overview

This tutorial is divided into three parts, guiding participants through the process of creating in-IDE programming courses, setting up data collection, and analyzing the data collected:

Creating In-IDE courses with the JetBrains Academy plugin

Setting up TaskTracker, a tool for collecting data during problem-solving

Collecting and analyzing data

Prerequisites

Please ensure you have the following installed:

A JetBrains IDE

You can use either IntelliJ IDEA (Community or Ultimate) for Kotlin and. Java courses or PyCharm (Community or Ultimate) for Python courses.

The JetBrains Academy plugin

This plugin can be installed directly from your IDE.

The TaskTracker GitHub repository

This repository should be cloned on your laptop so it will work during the tutorial session

Instructors

The practical part of this tutorial will be led by three instructors, with Education Research team members Elizaveta Artser and Aleksey Rostovskiy providing classroom support.

Anastasiia Birillo
JetBrains Education Research Team Lead
  • 8+ years of programming experience
  • 5 years of research experience
  • 5 years of teaching experience
Katharina Dzialets
Researcher with the JetBrains Education Research team
  • 4 years of product management and product research experience
  • 5+ EdTech products and projects built
Daniil Karol
Researcher with the JetBrains Education Research team
  • 5+ years of programming experience
  • 1.5 years of research experience
  • 1 year of teaching experience

Tutorial structure

Each part of this tutorial is designed to be independent. If you miss a part, you can download the prepared materials and continue at your own pace.

Part 1. Creating In-IDE Courses (~ 45 min)

Part 2. Setting Up the TaskTracker Tool (~ 45 min)

Part 3. Data Collection & Analysis (~ 30 min)

Q&A (~ 30 min)

We will have a 10-min break after each part

Creating In-IDE Courses

Part 1

The goal of this part is to create an in-IDE course with the JetBrains Academy plugin using Kotlin, Java, or Python.

It consists of the following tasks:

  1. Creating a course from a template: Start with a basic structure for your course.
  2. Adding a theory task: Add a theory part to help students learn programming concepts.
  3. Adding a quiz: Create single- or multiple-choice questions.
  4. Adding a coding task: Introduce coding challenges and hands-on programming practice.
  5. Adding a guided project: Combine several coding tasks into a larger, connected project to teach students how to solve complex problems step by step.
  6. Configuring code quality inspections: Set up automated code inspections to make sure the solutions meet your standards.

All tasks in this part are provided for Kotlin, Java, and Python, with language-specific implementation details.

A theory task in a Kotlin course

A quiz task in a Java course

A guided project in a Python course

Setting Up the TaskTracker Tool

Part 2

This section focuses on setting up the TaskTracker tool and demonstrating its data collection capabilities.

It consists of the following parts:

  1. Introducing the TaskTracker server: A basic overview of the server for data collection and storage.
  2. TaskTracker plugin configuration: Setting up the configuration files according to your needs (Task Content, Info, Agreements, Settings and Inspections, Server Error Message and Final Page, Surveys, and Scenarios).
  3. TaskTracker plugin student view: A look at the plugin from the students' perspective.

All configuration files are language-independent, except for the Task Content configuration files which list the files that will be tracked.

The TaskTracker starting page

The TaskTracker task page

Data Collection & Analysis

Part 3

The goal of this part is to complete the created course in student mode in order to collect task-solving data and carry out basic analysis.

It consists of the following tasks:

  1. Collecting data: Use TaskTracker to collect data during the task-solving process and
    observe the process from the students' perspective.
  2. Analyzing data: Download the collected data from a remote server, convert the data into the standard ProgSnap2 format, and perform basic data analysis.

Completing tasks in student mode

Here are all the products and materials relevant to the tutorial:

Free JetBrains IDE licenses

JetBrains offers free educational licences for all IDEs for teachers and students to use in the classroom.

JetBrains Academy
plugin

The JetBrains Academy plugin enables educators to design and manage courses directly in JetBrains IDEs.

TaskTracker
plugin

TaskTracker is a plugin for data collection during the task-solving process to gather information about code snippets and IDE interactions.

Tutorial
materials

This repository contains all the materials from this tutorial for future use.

Collaborate with us

The Education Research team is 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.