Prutor A Tutoring System for Introductory Programming

Prutor is a software system for teaching introductory programming. It comprises among other things, an interface where students can solve programming problems, and receive immediate feedback on their solutions, while solving the problems. What makes Prutor unique is the ability to integrate feedback generation tools into the system in order to provide instant feedback. There are a lot of other tools which can be integrated into the system for simplification of tutoring tasks, such as grading, problem generation and test-case generation.

For more details, visit a short summary or a longer description.

Prutor Dataset

Prutor's data is being used by several researchers for understanding the way student's learn programming, the kind of mistakes they make often, and gain other insights to improve teaching of introductory programming courses. The results have been published at various conferences and technical reports. We are releasing dataset used by some of these projects. The data is anonymized to make sure that the students can not be identified. If you use the data below, kindly give due credits to both Prutor and the particular research group. You can use details given in the "Credits" link against each project.
  1. DeepFix [data] [credits]
  2. FSE 2017 [data] [credits]

Prutor in Action

A Demo

You can play with Prutor for a virtual classroom to test its features. Please contact for credentials.


Analytics: Assignments

Analytics: Code Viewer


Rajdeep Das

Department of Computer Science and Engineering
IIT Kanpur

Umair Z Ahmed

Department of Computer Science and Engineering
IIT Kanpur

Amey Karkare

Department of Computer Science and Engineering
IIT Kanpur

Sumit Gulwani

Microsoft Research, Redmond
(External Guide to Rajdeep, Umair)


  1. Prutor for a virtual classroom
  2. Rajdeep's Master's Thesis
  3. CodeHunt Workshop PDF
  4. CodeHunt Workshop Video
  5. CodeHunt Workshop Link