ABSTRACT
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.
- Godefroid, P., Klarlund, N., and Sen, K. DART: directed automated random testing. In Proc. PLDI (2005), 213–223. Google ScholarDigital Library
- Kelleher, C., and Pausch, R. F.: Using storytelling to motivate programming. Comm. ACM, July 2007/Vol. 50, No. 7, 58-64. Google ScholarDigital Library
- Tillmann, N., and de Halleux, J. Pex – white box test generation for .NET. In Proc. TAP (2008), 134–153. Google ScholarDigital Library
- Tillmann, N., de Halleux, J., Xie, T., Gulwani, S., and Bishop, J., Teaching and Learning Programming and Software Engineering via Interactive Gaming. In Proc. ICSE (2013), 1117–1126. Google ScholarDigital Library
- Xie, T., Tillmann, N., de Halleux, J. and Schulte, J., Fitness-Guided Path Exploration in Dynamic Symbolic Execution, in Proc. the 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2009), IEEE, June 2009Google ScholarCross Ref
- Lakhotia, K. En Garde: Winning Coding Duels Through Genetic Programming. In Proc. ICSTW SBST (2013), 421 - 424 Google ScholarDigital Library
Index Terms
- Code hunt: searching for secret code for fun
Recommendations
Code hunt: gamifying teaching and learning of computer science at scale
L@S '14: Proceedings of the first ACM conference on Learning @ scale conferenceCode Hunt (http://www.codehunt.com/) is an educational coding game (that runs in a browser) for teaching and learning computer science at scale. The game consists of a series of worlds and levels, which get increasingly challenging. In each level, the ...
Constructing coding duels in Pex4Fun and code hunt
ISSTA 2014: Proceedings of the 2014 International Symposium on Software Testing and AnalysisPex is an automatic white-box test-generation tool for .NET. We have established that games can be built on top of Pex to open the tool to students and to the general public. In particular, we have released Pex4Fun (www.pexforfun.com) and its successor ...
Code hunt: experience with coding contests at scale
ICSE '15: Proceedings of the 37th International Conference on Software Engineering - Volume 2Mastering a complex skill like programming takes many hours. In order to encourage students to put in these hours, we built Code Hunt, a game that enables players to program against the computer with clues provided as unit tests. The game has become ...
Comments