160 likes | 274 Views
secret. Pex4Fun: A Web-Based Environment for Educational Gaming via Automated Test Generation. http://pex4fun.com. Nikolai Tillmann Jonathan de Halleux Microsoft Research . Tao Xie North Carolina State University. Judith Bishop Microsoft Research .
E N D
secret Pex4Fun: A Web-Based Environment for Educational Gaming via Automated Test Generation http://pex4fun.com Nikolai Tillmann Jonathan de Halleux Microsoft Research Tao Xie North Carolina State University Judith Bishop Microsoft Research
Testing Tool Educational Gaming Dynamic Symbolic Execution (Pex) secret Support Pex for Fun:Interactive Gaming for Teaching and Learning http://research.microsoft.com/pex/ http://pex4fun.com
Background • Dynamic Symbolic Execution (DSE) • aka. Concolic Testing • [Godefroid et al. 05][Sen et al. 05][Tillmann et al. 08] • Instrument code to explore feasible paths http://research.microsoft.com/pex/
Coding Duels 1,378,742 clicked 'Ask Pex!'
Example User Feedback Released since 2010 “I used to love the first person shooters and the satisfaction of blowing away a whole team of Noobies playing Rainbow Six, but this is far more fun.” X “I’m afraid I’ll have to constrain myselfto spend just an hour or so a day on this really exciting stuff, as I’m really stuffed with work.” “It really got me *excited*. The part that got me most is about spreading interest in teaching CS: I do think that it’s REALLY great for teaching | learning!”
Coding Duels Pex computes “semantic diff” in cloud secret reference implementation vs. code written in browser You win when Pex finds no differences secret
Behind the Scene of Pex for Fun behavior Secret Impl== Player Impl Player Implementation class Player { public static int Puzzle(int x) { return x; } } Secret Implementation class Secret { public static int Puzzle(int x) { if (x <= 0) return 1; return x * Puzzle(x-1); } } class Test { public static void Driver(int x) { if (Secret.Puzzle(x) != Player.Puzzle(x)) throw new Exception(“Mismatch”); } }
Coding DuelsFun and Engaging Iterative gameplay Adaptive Personalized No cheating Clear winning criterion
Coding Duel Competition@ICSE 2011 http://pexforfun.com/icse2011
Usage Scenarios of Pex4Fun • Massive Open Online Courses (MOOC) • Course assignments (students/professionals) • Student/professional competitions • Assessment of testing, programming, problem solving skills for job applicants
Summary: Testing Tool Educational Gaming DSE/Pex secret Support Pex for Fun: Interactive Gaming for Teaching and Learning http://research.microsoft.com/pex/ http://pex4fun.com
Coding Duels for Course Assignments@Grad Software Engineering Course • Observed Benefits • Automatic Grading • Real-time Feedback (for Both Students and Teachers) • Fun Learning Experiences http://pexforfun.com/gradsofteng
Skills Being Trained Induction Problem solving/debugging Program understanding/programming Testing Specification writing