2014 · 63 citations · 5 references
ComputingComputer ScienceEducational TechnologyArtificial IntelligencePlay-based LearningSoftware EngineeringCode GenerationEducational Game DesignGame PlayingGame-based LearningSoftware TestingSymbolic ExecutionAutomated Test GenerationDynamic Symbolic ExecutionEducational ImpactSearch-based Software TestingTest CasesTest Data GenerationTest GenerationWhite-box Testing
Learning to code can be made more effective and sustainable if it is perceived as fun by the learner. Code Hunt uses puzzles that players have to explore by means of clues presented as test cases. Players iteratively modify their code to match the functional behavior of secret solutions. This way of learning to code is very different to learning from a specification. It is essentially re-engineering from test cases. Code Hunt is based on the test/clue generation of Pex, a white-box test generation tool that uses dynamic symbolic execution. Pex performs a guided search to determine feasible execution paths. Conceptually, solving a puzzle is the manual process of conducting search-based test generation: the “test data” to be generated by the player is the player’s code, and the “fitness values” that reflect the closeness of the player’s code to the secret code are the clues (i.e., Pex-generated test cases). This paper is the first one to describe Code Hunt and its extensions over its precursor Pex4Fun. Code Hunt represents a high-impact educational gaming platform that not only internally leverages fitness values to guide test/clue generation but also externally offers fun user experiences where search-based test generation is manually emulated. Because the amount of data is growing all the time, the entire system runs in the cloud on Windows Azure.
5
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · 2005 · 1.5K citations
Fitness-guided path exploration in dynamic symbolic execution
Tao Xie, Nikolai Tillmann, Jonathan de Halleux et al. · 2009 · 239 citations
Using storytelling to motivate programming
Caitlin Kelleher, Randy Pausch · Communications of the ACM · 2007 · 226 citations · Full text
Teaching and learning programming and software engineering via interactive gaming
Nikolai Tillmann, Jonathan de Halleux, Tao Xie et al. · 2013 · 89 citations