Where do contracts — specification elements embedded in executable code — come from? To produce them, should we rely on the programmers, on automatic tools, or some combinati...
It is generally acknowledged that developing correct multithreaded codes is difficult, because threads may interact with each other in unpredictable ways. The goal of this work i...
The errors that Java programmers are likely to encounter can roughly be categorized into three groups: compile-time (semantic and syntactic), logical, and runtime (exceptions). Wh...
Christian Murphy, Eunhee Kim, Gail E. Kaiser, Adam...
Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a s...
We report on a continuing study into teaching programming to pre-teens school-children, with some as young as seven years old. As part of the study we aim to test childrens’ alg...