Upload
may-doyle
View
246
Download
0
Embed Size (px)
Citation preview
Teaching and Learning Programming and Software Engineering via Interactive Gaming
Tao XieUniversity of Illinois at Urbana-Champaign
In collaboration with Nikolai Tillmann, Jonathan de Halleux, and Judith Bishop(Microsoft Research)
secret
http://pex4fun.com
https://www.codehunt.com
Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
Testing Tool Educational Gaming
Dynamic Symbolic Execution (Pex)
secret
Pex for Fun: Interactive Gaming for Teaching and Learning
Support
http://research.microsoft.com/pex/ http://pex4fun.comhttps://www.codehunt.com
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
http://research.microsoft.com/pex/
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
Background
http://research.microsoft.com/pex/
void CoverMe(int[] a){ if (a == null) return; if (a.Length > 0) if (a[0] == 1234567890) throw new Exception("bug");}
a.Length>0
a[0]==123…
TF
T
F
Fa==null
T
Constraints to solve
a!=null a!=null &&a.Length>0
a!=null &&a.Length>0 &&a[0]==123456890
Input
null{}
{0}
{123…}
Execute&MonitorSolve
Choose next path
Observed constraints
a==nulla!=null &&!(a.Length>0)a==null &&a.Length>0 &&a[0]!=1234567890a==null &&a.Length>0 &&a[0]==1234567890
Done: There is no path left.
Dynamic Symbolic Execution in Pex
http://pex4fun.com/HowDoesPexWork
Coding Duels
1,463,179 clicked 'Ask Pex!'
Coding Duels
Pex computes “semantic diff” in cloudsecret reference implementation vs.code written in browserYou win when Pex finds no differences
secret
For more info, see our ICSE 2013 SEE paper: http://web.engr.illinois.edu/~taoxie/publications/icse13see-pex4fun.pdf
Behind the Scene of Pex for Fun
Secret Implementation
class Secret { public static int Puzzle(int x) { if (x <= 0) return 1; return x * Puzzle(x-1); }}
Player Implementation
class Player { public static int Puzzle(int x) { return x; }}
class Test {public static void Driver(int x) { if (Secret.Puzzle(x) != Player.Puzzle(x)) throw new Exception(“Mismatch”); }}
behaviorSecret Impl == Player Impl
10
Coding DuelsFun and Engaging
Iterative gameplayAdaptivePersonalizedNo cheatingClear winning criterion
Social Experience
CommunityHigh score lists, leaderboardLive feed
http://pex4fun.com/Community.aspxhttp://pex4fun.com/Livefeed.aspx
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
Teaching and Learning
Skills Being Trained
InductionProblem solving/debuggingProgram understanding/programmingTestingSpecification writing
Coding Duels for Course Assignments
@Grad Software Engineering Course
http://pexforfun.com/gradsofteng
Observed Benefits• Automatic Grading• Real-time Feedback (for Both Students and Teachers)• Fun Learning Experiences
Example User Feedback
“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!”
“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.”
“I’m afraid I’ll have to constrain myself to spend just an hour or so a day on this really exciting stuff, as I’m really stuffed with work.”
Released since 2010
X
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
Code Hunt: Resigned As Gamehttps://www.codehunt.com/
21
End-User Programming On Mobile Devices
V.S.TouchDevelop:Bring your own devices, program anywhere, run immediately on devices
https://www.touchdevelop.com/
22
TouchDevelop
https://www.touchdevelop.com/
23
TouchDevelop
https://www.touchdevelop.com/
24
TouchDevelop
https://www.touchdevelop.com/
25
TouchDevelop
https://www.touchdevelop.com/
26
• Simple script language– No user-defined type– No class inheritance
• Rich API support– Easy access to various sensors and resources
• Powerful cloud services– Download/publish scripts– Store information of entities (e.g., scripts, users)– Answer queries
TouchDevelop cont.
Full-fledged platform for EUP on Mobile Devices
https://www.touchdevelop.com/
27
Rapid Increase of TouchDevelop Popularity
Oct 2013 vs. 17322 scripts Feb 2013
Summary: Testing Tool Educational Gaming
DSE/Pex
secret
Pex for Fun:
Interactive Gaming for
Teaching and Learning
Support
https://www.touchdevelop.com/ http://pex4fun.comhttps://www.codehunt.com
Testing Tool Educational Gaming
secretSupport
http://research.microsoft.com/pex/ http://pex4fun.com
Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
Q & AThank you!
Contact: [email protected] http://www.cs.illinois.edu/homes/taoxie/
Summary: Testing Tool Educational Gaming
DSE/Pex
secret
Pex for Fun:
Interactive Gaming for
Teaching and Learning
Support
https://www.touchdevelop.com/ http://pex4fun.comhttps://www.codehunt.com