For Educators

Teach by Practice

Educational Products help to share knowledge and transfer programming skills in the form of code practicing tasks and integrated tests with all the productivity boosters a professional IDE has. Educational Products support Java, Kotlin, Python, Scala, JavaScript, Rust, and C/C++, with more languages to come.

Course Structure

Every course created in the IDE contains one or more lessons. Each lesson is structured as a list of tasks. A task has the following components: a description, a file with exercise code, a file with the task check, and any other files needed for the learner to complete the task.

Create a new course

To create a course, go to File | Learn and Teach| Create New Course and enter a title and description. The IDE will automatically create a simple course with lesson1 and task1 included. Go to View | Tool Windows | Project to verify the course structure.

Open a course as an educator

Take advantage of language-specific syntax & error highlighting to help you avoid code mistakes. Learn how to style your code right with the code formatting, and don't ever get stuck thanks to code completion and quick documentation.

Manage lessons, tasks, and files

Add more lessons and tasks via File | New..., rename from the context menu Refactor | Rename, and drag-n-drop to reorder. If you need additional files for the task, just add them and decide whether you want to make them visible to learners or not.

Group lessons into sections

To create a new section, right-click the course and select New | Section, rename with Refactor | Rename, and drag-n-drop to reorder. You can also drag lessons from one section to another.

Working with Tasks

Teach with the help of simple and effective "fill in the missing code" exercises. Let learners independently check their assignments with your integrated tests, and help them learn with special hints.

Write exercise code

Open a task file to write the code you want to share as an exercise. Once the code is ready, select a fragment you want a learner to fill in, use the Add Answer Placeholder command, and add the text describing what code the learner should write. Add some hints to help the learner find the right code fragment.

Create dependent answer placeholders

If you want to give learners an opportunity to reuse code they have already written in a previous task, you will need to create a dependent answer placeholder (Answer Placeholder -> Add Dependency). The dependent placeholder will be automatically replaced with the learner's answer from the previous task.

Write a test

Every task has a test file that you need to modify to check the learner's solutions. Get back to the Task Description panel and click the Check icon – this will run your test and show the result the way the learner will see it. When the test is ready, you can run or set breakpoints and debug your code.

Write a task description

To edit your task descriptions right in the Editor, simply open the task.html file. Preview all the changes on the Task Description panel while editing. Put code snippets and hyperlinks to other tasks, .png images, tables, psi elements, and IDE keyboard shortcuts right inside your task description. The IDEs support HTML and Markdown.

Framework Lessons

To give learners an opportunity to work with a project structure, and to gradually make the project more complicated and sophisticated, consider adding Framework Lessons.

From a learner's perspective

From a learner’s perspective, Framework Lesson is a set of code files, a project with a list of tasks they need to go through. Every task opens one or more project files in the Editor so learners can work with answer placeholders in those files.

Create the next step

Right-click the framework lesson and create a new task with New | Task. All the project files with all the placeholders will be automatically copied from the previous task. All the placeholders are copied as dependent ones, which means there is no need for learners to re-enter all the answer placeholders they have already worked with. Now the new placeholders can be added as a next step for learners to go further.

Set up a project structure

Right-click your course and choose New | Framework Lesson to start your project. Create a new task in the created lesson and add all the project files under the task directory. Add answer placeholders to one or more files you want learners to start with.

Course Sharing

Keep up with your learning materials and share them with your students or co-workers.

Preview course

Before sharing your course, it's good to view it from a learner's perspective and to test it. Right-click on the course view and go to Course Creator ⟶ Preview Course to open your course in learner mode.

Integration with JetBrains Marketplace

JetBrains Marketplace is a course repository where educators from all over the world can share their knowledge and skills. As a course creator, you can edit all of the information on your course page and monitor statistics on your course downloads.

We are excited to hear from you!

If you have any questions about using EduTools as an educator, email us at for help.