21 citations · 45 across the 15 of their papers we have counts for
16 papers
AI-Generated Traces for Novice Programmers: Learning Effects and Learner Differences in a Multi-Institutional Study
Yuri Noviello, Naaz Sibia, Anastasiia Birillo +3
Introductory programming (CS1) courses often struggle to support students' understanding of program execution. While visualizations can make execution processes explicit, their eff…
ANVIL: Analogies and Videos for Lecturers
Yuri Noviello, Anastasiia Birillo, Gosia Migut
We present ANVIL, a multimodal generative system that automates the production of analogy-based instructional animations for computer science topics. Given a concept definition, AN…
Enhancing Debugging Skills with AI-Powered Assistance: A Real-Time Tool for Debugging Support
Elizaveta Artser, Daniil Karol, Anna Potriasaeva +6
Debugging is a crucial skill in programming education and software development, yet it is often overlooked in CS curricula. To address this, we introduce an AI-powered debugging as…
Understanding Student Interaction with AI-Powered Next-Step Hints: Strategies and Challenges
Anastasiia Birillo, Aleksei Rostovskii, Yaroslav Golubev +1
Automated feedback generation plays a crucial role in enhancing personalized learning experiences in computer science education. Among different types of feedback, next-step hint f…
Everything You Need to Know About CS Education: Open Results from a Survey of More Than 18,000 Participants
Katsiaryna Dzialets, Aleksandra Makeeva, Ilya Vlasov +4
Computer science education is a dynamic field with many aspects that influence the learner's path. While these aspects are usually studied in depth separately, it is also important…
KOALA: a Configurable Tool for Collecting IDE Data When Solving Programming Tasks
Daniil Karol, Elizaveta Artser, Ilya Vlasov +3
Collecting data of students solving programming tasks is incredibly valuable for researchers and educators. It allows verifying that the students correctly apply the features and c…
In-IDE Programming Courses: Learning Software Development in a Real-World Setting
Anastasiia Birillo, Ilya Vlasov, Katsiaryna Dzialets +2
While learning programming languages is crucial for software engineers, mastering the necessary tools is equally important. To facilitate this, JetBrains recently released the JetB…
One Step at a Time: Combining LLMs and Static Analysis to Generate Next-Step Hints for Programming Tasks
Anastasiia Birillo, Elizaveta Artser, Anna Potriasaeva +6
Students often struggle with solving programming problems when learning to code, especially when they have to do it online, with one of the most common disadvantages of working onl…
Clustering MOOC Programming Solutions to Diversify Their Presentation to Students
Elizaveta Artser, Anastasiia Birillo, Yaroslav Golubev +4
In many MOOCs, whenever a student completes a programming task, they can see previous solutions of other students to find potentially different ways of solving the problem and to l…
Bridging Education and Development: IDEs as Interactive Learning Platforms
Anastasiia Birillo, Maria Tigina, Zarina Kurbatova +4
In this work, we introduce a novel approach to programming education - in-IDE courses implemented for IntelliJ-based IDEs via the JetBrains Academy Plugin. The primary objective of…
Detecting Code Quality Issues in Pre-written Templates of Programming Tasks in Online Courses
Anastasiia Birillo, Elizaveta Artser, Yaroslav Golubev +4
In this work, we developed an algorithm for detecting code quality issues in the templates of online programming tasks, validated it, and conducted an empirical study on the datase…
Analyzing the Quality of Submissions in Online Programming Courses
Maria Tigina, Anastasiia Birillo, Yaroslav Golubev +3
Programming education should aim to provide students with a broad range of skills that they will later use while developing software. An important aspect in this is their ability t…
Lupa: A Framework for Large Scale Analysis of the Programming Language Usage
Anna Vlasova, Maria Tigina, Ilya Vlasov +3
In this paper, we present Lupa - a framework for large-scale analysis of the programming language usage. Lupa is a command line tool that uses the power of the IntelliJ Platform un…
Reflekt: a Library for Compile-Time Reflection in Kotlin
Anastasiia Birillo, Elena Lyulina, Maria Malysheva +2
Reflection in Kotlin is a powerful mechanism to introspect program behavior during its execution at run-time. However, among the variety of practical tasks involving reflection, th…
Hyperstyle: A Tool for Assessing the Code Quality of Solutions to Programming Assignments
Anastasiia Birillo, Ilya Vlasov, Artyom Burylov +5
In software engineering, it is not enough to simply write code that only works as intended, even if it is free from vulnerabilities and bugs. Every programming language has a style…
TaskTracker-tool: a Toolkit for Tracking of Code Snapshots and Activity Data During Solution of Programming Tasks
Elena Lyulina, Anastasiia Birillo, Vladimir Kovalenko +1
The process of writing code and use of features in an integrated development environment (IDE) is a fruitful source of data in computing education research. Existing studies use re…