Presentation is loading. Please wait.

Presentation is loading. Please wait.

Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with.

Similar presentations


Presentation on theme: "Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with."— Presentation transcript:

1 Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University 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/esehttps://sites.google.com/site/asergrp/projects/ese

2 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.com https://www.codehunt.com

3 Agenda Background Coding Duels Educational Platform Experiences Conclusion

4 Agenda Background Coding Duels Educational Platform Experiences Conclusion

5 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

6 http://research.microsoft.com/pex/

7 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… T F T F F a==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&Monitor Solve Choose next path Observed constraints a==null a!=null && !(a.Length>0) a==null && a.Length>0 && a[0]!=1234567890 a==null && a.Length>0 && a[0]==1234567890 Done: There is no path left. Dynamic Symbolic Execution in Pex http://pex4fun.com/HowDoesPexWork

8 Coding Duels 1,463,179 clicked 'Ask Pex!'

9 Coding Duels Pex computes “semantic diff” in cloud secret reference implementation vs. code written in browser You 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 http://web.engr.illinois.edu/~taoxie/publications/icse13see-pex4fun.pdf

10 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”); } behavior Secret Impl == Player Impl 10

11 Coding Duels Fun and Engaging Iterative gameplay Adaptive Personalized No cheating Clear winning criterion

12 Social Experience Community High score lists, leaderboard Live feed http://pex4fun.com/Community.aspx http://pex4fun.com/Livefeed.aspx

13 Agenda Background Coding Duels Educational Platform Experiences Conclusion

14 Teaching and Learning

15 Skills Being Trained Induction Problem solving/debugging Program understanding/programming Testing Specification writing

16 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

17 Coding Duel Competition @ICSE 2011 http://pexforfun.com/icse2011

18 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

19 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

20 Code Hunt: Resigned As Game https://www.codehunt.com/

21 End-User Programming On Mobile Devices V.S. TouchDevelop: Bring your own devices, program anywhere, run immediately on devices 21 https://www.touchdevelop.com/

22 TouchDevelop 22 https://www.touchdevelop.com/

23 TouchDevelop 23 https://www.touchdevelop.com/

24 TouchDevelop 24 https://www.touchdevelop.com/

25 TouchDevelop 25 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. 26 Full-fledged platform for EUP on Mobile Devices https://www.touchdevelop.com/

27 Rapid Increase of TouchDevelop Popularity 27 Oct 2013 vs. 17322 scripts Feb 2013

28 Summary: Testing Tool  Educational Gaming DSE/Pex secret Pex for Fun: Interactive Gaming for Teaching and Learning Support https://www.touchdevelop.com/ http://pex4fun.com https://www.codehunt.com

29 Testing Tool  Educational Gaming secret Support http://research.microsoft.com/pex/ http://pex4fun.com Related Papers/Resources: https://sites.google.com/site/asergrp/projects/esehttps://sites.google.com/site/asergrp/projects/ese Q & A Thank you! Contact: taoxie@illinois.edu http://www.cs.illinois.edu/homes/taoxie/

30 Summary: Testing Tool  Educational Gaming DSE/Pex secret Pex for Fun: Interactive Gaming for Teaching and Learning Support https://www.touchdevelop.com/ http://pex4fun.com https://www.codehunt.com


Download ppt "Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with."

Similar presentations


Ads by Google