JetBrains Academy Plugin News Project-Based Learning Tools for Teaching

Teachers at JetBrains: Insights About Online Computer Science Education

As we prepare to celebrate World Teachers’ Day this week, we want to express our appreciation to all the teachers around the world for their diligent efforts and the important role they play in developing the future generations.

This year, the theme for World Teachers’ Day is “the transformation of education begins with teachers”, which calls attention to the new challenges educators must face as educational formats continue to transform rapidly in the modern digital world.

In this interview, we talked with two educators from JetBrains who have vast experience in a range of formats and with various teaching tools, and we asked them some questions about computer science education.

Alexander Kulikov

Head of the Educational Program in University Relations and the founder of the Computer Science Center (St. Petersburg), a non-profit organization providing free high-quality CS education.
Co-author of the “Data Structures and Algorithms” and “Introduction to Discrete Mathematics for Computer Science” online courses, which are available on Coursera and edX.

Konstantin Chaika

Researcher at the Mobile Robot Algorithms Laboratory and a co-author of the “C Programming Workshop” and “AVR Microcontroller Programming Workshop” online courses.
Lecturer on computer architecture at
Jacobs University Bremen (JUB).


From your perspective as an educator with a lot of experience, what’s the most important thing to keep in mind when starting to teach coding online?

Alexander: In an online course, learners’ backgrounds vary greatly. For this reason, it is important to state the prerequisites for the course as clearly as possible, as well as to design problem sets of varying difficulty.

Konstantin: With online formats, the importance of visual aids is often overlooked.
Be sure to prepare diagrams and add them to the theoretical sections. Often even a very simple illustration makes explaining the material much easier.

What’s the biggest difference between offline and online education, from a teacher’s perspective?

Alexander: I see the following as the pros of massive open online courses:
– Every student learns at their own pace.
– If course assignments are graded automatically, then the course scales easily to any number of students.
– With carefully prepared quizzes in a course, students can check their understanding of a new concept right after it is introduced.

On the other hand, traditional offline classes have some advantages as well:
– Since the students are physically in the classroom, it is easier to engage with them.
– It is easier for students to get feedback from the instructor.
– Some types of assignments, like verifying a proof of a theorem, are hardly automatizable, so they can only really be used in an offline course.

Konstantin: The downside of online classes is that there’s not enough eye contact with the students. When you don’t see the students’ reactions, it’s harder to know how well they understand and how tired they are. The offline audience is usually more active when it comes to engaging and asking questions.

What value do you see for teachers in JetBrains Educational Products?

Alexander: What I like about EduTools, in particular, is that it allows students to get used to a professional programming environment (which they will definitely be using when they get a job) from the very beginning. A few years ago, when teaching algorithms online at Coursera, I noticed that many students submit solutions that don’t even compile or pass sample tests, even though they were reminded a few times to make sure they do. To make the process of solving an algorithmic challenge more streamlined for the learners, I implemented all the challenges in PyCharm Edu.

This way, the learners can implement, test, and debug their solutions right in the IDE. They can also use many of the beautiful PyCharm IDE’s other smart features. Following this experience, it will be difficult for them to imagine coding in another environment.

Konstantin: In order to remember any new material, you need to apply the knowledge in practice many times. Using platforms that allow you to prepare a set of different problems for students to solve individually makes your course really practical.

What does the future of computer science education look like to you?

Alexander: In terms of university education, we’ll see more flipped classes combining the best of both worlds – offline and online. In terms of educational materials, we’ll see more interactive textbooks that allow learners not only to read the material, but also to play around with animations and check their understanding immediately.

Konstantin: It seems to me that the most promising thing is for the students to be able to individually specify what goal they are aiming for, and to choose an individual track that is specific to this goal – one that contains a large set of practical tasks of increasing complexity. Skills can be developed only with a huge amount of practice.

What’s your biggest challenge in teaching programming? How do you overcome it?

Konstantin: I think the most important thing is to structure explanations so that no detail looks like inexplicable magic to the students. Of course, it is impossible to break everything down at once, but I try to structure each explanation in such a way that at least a general picture of how this or that thing works is formed. For me, it is very hard to get a real grasp if there are some dark areas or knowledge gaps.

Thank you, Alexander and Konstantin, for sharing your thoughts on teaching programming with us. Happy World Teachers’ Day!

With our Educational Products, we strive to equip educators with innovative methods for teaching computer science, helping them give their students practical tasks and support even when teaching remotely. Learn more about JetBrains tools for educators:

Your Educational Products team

image description