The doctoral dissertations of the former Helsinki University of Technology (TKK) and Aalto University Schools of Technology (CHEM, ELEC, ENG, SCI) published in electronic format are available in the electronic publications archive of Aalto University - Aaltodoc.

Understanding and Debugging Concurrent Programs Through Visualisation

Jan Lönnberg

Doctoral dissertation for the degree of Doctor of Science in Technology to be presented with due permission of the School of Science for public examination and debate in Auditorium T2 at the Aalto University School of Science (Espoo, Finland) on the 16th of March 2012 at 12 noon.

Overview in PDF format (ISBN 978-952-60-4530-6)   [2453 KB]
Dissertation is also available in print (ISBN 978-952-60-4529-0)


In this thesis, the development and evaluation of a visualisation system intended to support students in understanding and debugging concurrent programs is presented. The first phase of development consisted of examining how students understand and develop concurrent programs through phenomenographic research. The resulting outcome spaces included the students' understandings of tuple spaces, the purpose of a programming assignment and what developing, debugging and testing a concurrent program involves. The outcome spaces included categories ranging from simple understandings containing only what is necessary to complete the assignments to understandings that placed the program in a larger context beyond the assignment.

These outcome spaces were used in a classification of defects in students' concurrent programs. The defects found in the students' programs were classified by the underlying human error and by the type of program failure the defect causes. This analysis of defects was used to determine appropriate measures to support students in avoiding such defects. Many of the students' defects were related to misunderstanding the goals of the assignment, so they were rewritten to clarify the goals. To give the students a more concrete demonstration of the situations their programs had to deal with, test packages were provided to them.

Many of the students' defects were related to incorrect use of concurrency. To help students understand and correct these defects and learn from their mistakes, the visualisation system Atropos was developed. Atropos is intended to help students understand concurrent program behaviour in Java. Atropos supports backward debugging of concurrent Java programs through interactive exploration of a dynamic dependence graph. A solution for replay and dynamic dependence analysis of concurrent Java programs that may include data races was devised.

Atropos was evaluated through a mixed-methods analysis of the behaviour of pairs of students using Atropos to debug concurrent programs. The results include a description of the ways in which students successfully made use of Atropos and suggestions for how it could be improved to better support their debugging approaches. While students appear to understand the dependence graph representation and how to apply it in debugging, they need more support from Atropos for eliding the implementation of data structures in order to examine their use.

This thesis consists of an overview and of the following 6 publications:

  1. Jan Lönnberg and Anders Berglund. Students' understandings of concurrent programming. In Proceedings of the Seventh Baltic Sea Conference on Computing Education Research (Koli Calling 2007), pp 77-86, Koli, Finland, April 2008. © 2008 Australian Computer Society. By permission.
  2. Jan Lönnberg, Anders Berglund and Lauri Malmi. How students develop concurrent programs. In Proceedings of the Eleventh Australasian Computing Education Conference (ACE2009), pp 129-138, Wellington, New Zealand, January 2009. © 2009 Australian Computer Society. By permission.
  3. Jan Lönnberg. Defects in Concurrent Programming Assignments. In Proceedings of the Ninth Koli Calling International Conference on Computing Education Research (Koli Calling 2009), pp 11-20, Koli, Finland, November 2009. © 2009 Association for Computing Machinery (ACM). By permission.
  4. Jan Lönnberg, Mordechai Ben-Ari and Lauri Malmi. Java Replay for Dependence-based Debugging. In Proceedings of PADTAD IX – Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, pp 15-25, Toronto, Ontario, Canada, July 2011. © 2011 Association for Computing Machinery (ACM). By permission.
  5. Jan Lönnberg, Mordechai Ben-Ari and Lauri Malmi. Visualising Concurrent Programs with Dynamic Dependence Graphs. In Proceedings of 6th IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT 2011), 4 pp, Williamsburg, Virginia, USA, September 2011. © 2011 Institute of Electrical and Electronics Engineers (IEEE). By permission.
  6. Jan Lönnberg, Lauri Malmi and Mordechai Ben-Ari. Evaluating a Visualisation of the Execution of a Concurrent Program. Proceedings of the Eleventh Koli Calling International Conference on Computing Education Research, pp 39-48, Koli, Finland, November 2011. © 2011 Association for Computing Machinery (ACM). By permission.

Errata of publications 1, 4 and 6

Keywords: software visualisation, concurrent programming, dynamic dependence analysis, computer science education, phenomenography

This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.

© 2012 Aalto University

Last update 2014-03-26