Teachers and Students in Charge

Using Annotated Model Solutions in a Functional Programming Tutor
  • Alex Gerdes
  • Bastiaan Heeren
  • Johan Jeuring
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7563)


We are developing Ask-Elle, a programming tutor that supports students practising functional programming exercises in Haskell. Ask-Elle supports the stepwise construction of a program, can give hints and worked-out solutions at any time, and can check whether or not a student is developing a program similar to one of the model solutions for a problem. An important goal of Ask-Elle is to allow as much flexibility as possible for both teachers and students. A teacher can specify her own exercises by giving a set of model solutions for a problem. Based on these model solutions our tutor generates feedback. A teacher can adapt feedback by annotating model solutions. A student may use her own names for functions and variables, and may use different, but equivalent, language constructs. This paper shows how we track intermediate student steps in Ask-Elle and how we avoid the state space explosion we get when analysing intermediate, incomplete, student answers.


Functional programming tutoring Haskell 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anderson, J.R., Conrad, F.G., Corbett, A.T.: Skill acquisition and the LISP tutor. Cognitive Science 13, 467–505 (1986)CrossRefGoogle Scholar
  2. 2.
    Anderson, J.R., Corbett, A.T., Koedinger, K.R., Pelletier, R.: Cognitive tutors: Lessons learned. Journal of the Learning Sciences 4(2), 167–207 (1995)CrossRefGoogle Scholar
  3. 3.
    Corbett, A.T., Anderson, J.R., Patterson, E.J.: Problem compilation and tutoring flexibility in the LISP tutor. In: Proceedings of ITS 1988: 4th International Conference on Intelligent Tutoring Systems, pp. 423–429 (1988)Google Scholar
  4. 4.
    Gerdes, A., Heeren, B., Jeuring, J.: Constructing Strategies for Programming. In: Cordeiro, J., Shishkov, B., Verbraeck, A., Helfert, M. (eds.) Proceedings of the First International Conference on Computer Supported Education, pp. 65–72. INSTICC Press (March 2009)Google Scholar
  5. 5.
    Gerdes, A., Heeren, B., Jeuring, J.: Teachers and students in charge — using annotated model solutions in a functional programming tutor. Technical Report UU-CS-2012-007, Utrecht University, Department of Computer Science (2012)Google Scholar
  6. 6.
    Gerdes, A., Jeuring, J., Heeren, B.: An interactive functional programming tutor. In: Proceedings of ITICSE 2012: the 17th Annual Conference on Innovation and Technology in Computer Science Education (to appear, 2012); Also available as technical report Utrecht University, UU-CS-2012-002Google Scholar
  7. 7.
    Hattie, J., Timperley, H.: The power of feedback. Review of Educational Research 77(1), 81–112 (2007)CrossRefGoogle Scholar
  8. 8.
    Heeren, B., Jeuring, J., Gerdes, A.: Specifying rewrite strategies for interactive exercises. Mathematics in Computer Science 3(3), 349–370 (2010)zbMATHCrossRefGoogle Scholar
  9. 9.
    Holland, J., Mitrovic, T., Martin, B.: J-Latte: a constraint-based tutor for Java. In: Proceedings of ICCE 2009: the 17th International on Conference Computers in Education, pp. 142–146 (2009)Google Scholar
  10. 10.
    Jeuring, J., Gerdes, A., Heeren, B.: ASK- ELLE: A Haskell Tutor Demonstration. In: Ravenscroft, A., Lindstaedt, S., Delgado Kloos, C., Hernández-Leo, D. (eds.) EC-TEL 2012. LNCS, vol. 7563, pp. 453–458. Springer, Heidelberg (2012)Google Scholar
  11. 11.
    McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y.B., Laxer, C., Thomas, L., Utting, I., Wilusz, T.: A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. In: Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education, ITiCSE-WGR 2001, pp. 125–180. ACM (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Alex Gerdes
    • 1
  • Bastiaan Heeren
    • 1
  • Johan Jeuring
    • 1
    • 2
  1. 1.School of Computer ScienceOpen Universiteit NederlandHeerlenThe Netherlands
  2. 2.Department of Information and Computing SciencesUniversiteit UtrechtThe Netherlands

Personalised recommendations