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.
Teach Java with the help of simple “fill in the missing code” exercises
Teach Kotlin with clear task descriptions
Teach Python with your integrated tests
Teach Scala with the help of simple “fill in the missing code” exercises
Teach Rust with your integrated tests
Teach JavaScript with clear task descriptions
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Stepik, a learning management and MOOC platform, helps you easily store and share your courses. You can upload your course to Stepik, update it anytime you need, and share it either publicly or privately.
If you have any questions about using EduTools as an educator, email us at academy@jetbrains.com for help.