Intelligent Educational Systems for Teaching Programming

Lin Qiu · 2004

Do you remember the moment when just beginning to learn a programming language and you got stuck in writing a program? You had a hard time figuring out what the syntax of an expression should be, which function you should use, or what structures your program should follow. You wished there was someone looking over your shoulder giving you the answer. It would have saved you hours and hours wandering by yourself. But unfortunately, such help was not available. Do you remember as a teacher or TA for a programming class the times when piles of student assignments arrived waiting for you to grade them? You read through them making personalized comments on their problems and how to correct them. But this only happened to the first few assignments. After a while, you realized that this would cost you too much time and effort. Addressing the same mistake again and again became tedious. So, you gradually reduced the amount of feedback and scanned through the rest routinely. The above scenarios are often seen in learning and teaching programming. In fact, individualized feedback is rarely available in school because reviewing student work and personalizing critiques are labor-intensive and time-consuming. But since programming is a skill that can only be learned through practice, providing just-in-time and individualized feedback during practice is highly valuable. Several software systems have been developed to solve this challenge. In the following, we will describe three intelligent systems, each of which represents a different approach.

Read the paper · More papers on PaperTik