Using model checking tool for teaching concurrent programming concepts
IIT'09 Proceedings of the 6th international conference on Innovations in information technology
Hi-index | 0.00 |
Both teaching and learning multithreaded programming are complex tasks, due to the abstraction of the concepts, the non-determinism of the scheduler, the impossibility of using classical strategies adopted in procedural programming and the need to develop a practical vision of concurrency problems. In order to overcome these difficulties we developed JThreadSpy, an educational tool that collects execution traces and displays them with a selectable level of detail using an augmented UML sequence diagram, thus providing a synoptic representation of the execution. In this article, we show the experimental results about the effectiveness of using JThreadSpy in undergraduate and graduate courses, explaining how it helps students to solve concurrency problems. JThreadSpy is also useful in the teaching process, because it can concretely show some malicious programming patterns that lead to race conditions or deadlocks.