teaching and learning programming and software engineering via interactive gaming
DESCRIPTION
secret. https:// www.codehunt.com. Teaching and Learning Programming and Software Engineering via Interactive Gaming. http://pex4fun.com. Tao Xie University of Illinois at Urbana-Champaign. In collaboration with Nikolai Tillmann , Jonathan de Halleux , and Judith Bishop - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/1.jpg)
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
![Page 2: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/2.jpg)
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
![Page 3: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/3.jpg)
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
![Page 4: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/4.jpg)
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
![Page 5: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/5.jpg)
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
![Page 6: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/6.jpg)
http://research.microsoft.com/pex/
![Page 7: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/7.jpg)
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&MonitorSolveChoose 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
![Page 8: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/8.jpg)
Coding Duels
1,463,179 clicked 'Ask Pex!'
![Page 9: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/9.jpg)
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
![Page 10: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/10.jpg)
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
![Page 11: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/11.jpg)
Coding DuelsFun and Engaging
Iterative gameplayAdaptivePersonalizedNo cheatingClear winning criterion
![Page 12: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/12.jpg)
Social Experience
CommunityHigh score lists, leaderboardLive feed
http://pex4fun.com/Community.aspxhttp://pex4fun.com/Livefeed.aspx
![Page 13: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/13.jpg)
Agenda
Background
Coding Duels
Educational Platform
Experiences
Conclusion
![Page 14: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/14.jpg)
Teaching and Learning
![Page 15: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/15.jpg)
Skills Being Trained
InductionProblem solving/debuggingProgram understanding/programmingTestingSpecification writing
![Page 16: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/16.jpg)
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
![Page 18: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/18.jpg)
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
![Page 19: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/19.jpg)
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
![Page 20: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/20.jpg)
Code Hunt: Resigned As Gamehttps://www.codehunt.com/
![Page 21: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/21.jpg)
21
End-User Programming On Mobile Devices
V.S.TouchDevelop:Bring your own devices, program anywhere, run immediately on devices
https://www.touchdevelop.com/
![Page 22: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/22.jpg)
22
TouchDevelop
https://www.touchdevelop.com/
![Page 23: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/23.jpg)
23
TouchDevelop
https://www.touchdevelop.com/
![Page 24: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/24.jpg)
24
TouchDevelop
https://www.touchdevelop.com/
![Page 25: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/25.jpg)
25
TouchDevelop
https://www.touchdevelop.com/
![Page 26: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/26.jpg)
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/
![Page 27: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/27.jpg)
27
Rapid Increase of TouchDevelop Popularity
Oct 2013 vs. 17322 scripts Feb 2013
![Page 28: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/28.jpg)
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
![Page 29: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/29.jpg)
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/
![Page 30: Teaching and Learning Programming and Software Engineering via Interactive Gaming](https://reader035.vdocument.in/reader035/viewer/2022062218/56815eda550346895dcd7a2c/html5/thumbnails/30.jpg)
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