https://www.codehunt.com

Teaching and Learning
Programming and
Software Engineering
via Interactive Gaming

http://pex4fu...
Testing Tool  Educational Gaming

Support

Dynamic Symbolic Execution (Pex)
http://research.microsoft.com/pex/

Pex for F...
Agenda
Background
Coding Duels
Educational Platform

Experiences
Conclusion
Agenda
Background
Coding Duels
Educational Platform

Experiences
Conclusion
Background
Dynamic Symbolic Execution (DSE)
aka. Concolic Testing
[Godefroid et al. 05][Sen et al. 05][Tillmann et al. 08]...
http://research.microsoft.com/pex/
Dynamic Symbolic Execution in Pex
Choose next path
Solve

void CoverMe(int[] a)
{
if (a == null) return;
if (a.Length > 0)...
Coding Duels

1,463,179

clicked 'Ask Pex!'
Coding Duels

Pex computes “semantic diff” in cloud
secret reference implementation vs.
code written in browser
You win wh...
Behind the Scene of Pex for Fun
behavior

Secret Impl ==
Secret Implementation
class Secret {
public static int Puzzle(int...
Coding Duels
Fun and Engaging
Iterative gameplay
Adaptive
Personalized
No cheating
Clear winning criterion
Social Experience
Community
High score lists, leaderboard
Live feed

http://pex4fun.com/Community.aspx
http://pex4fun.com/...
Agenda
Background
Coding Duels
Educational Platform

Experiences
Conclusion
Teaching and Learning
Skills Being Trained
Induction
Problem solving/debugging
Program understanding/programming
Testing
Specification writing
Coding Duels for Course Assignments
@Grad Software Engineering Course

Observed Benefits
• Automatic Grading
• Real-time F...
Coding Duel Competition

@ICSE 2011

http://pexforfun.com/icse2011
Example User Feedback
Released since 2010

“I used to love the first person shooters and the
satisfaction of blowing away ...
Usage Scenarios of Pex4Fun
• Massive Open Online Courses (MOOC)
• Course assignments (students/professionals)
• Student/pr...
Code Hunt: Resigned As Game
https://www.codehunt.com/
End-User Programming
On Mobile Devices

TouchDevelop:
Bring your own devices,
program anywhere,
run immediately on devices...
TouchDevelop

https://www.touchdevelop.com/

22
TouchDevelop

https://www.touchdevelop.com/

23
TouchDevelop

https://www.touchdevelop.com/

24
TouchDevelop

https://www.touchdevelop.com/

25
TouchDevelop cont.
• Simple script language
– No user-defined type
– No class inheritance

Full-fledged platform for
• Ric...
Rapid Increase of TouchDevelop Popularity
Oct 2013 vs. 17322 scripts Feb 2013

27
Summary: Testing Tool Educational Gaming

Support

DSE/Pex

Pex for Fun:

Interactive Gaming for
Teaching and Learning
ht...
Testing Tool  Educational Gaming
http://research.microsoft.com/pex/

http://pex4fun.com

Support

Q&A
Thank you!
Contact:...
Summary: Testing Tool Educational Gaming

Support

DSE/Pex

Pex for Fun:

Interactive Gaming for
Teaching and Learning
ht...
Upcoming SlideShare
Loading in …5
×

Teaching and Learning Programming and Software Engineering via Interactive Gaming

881 views
766 views

Published on

Pex4Fun (http://www.pex4fun.com/) is a web-based educational gaming environment for teaching and learning programming and software engineering. Pex4Fun can be used to teach and learn programming and software engineering at many levels, from high school all the way through graduate courses. With Pex4Fun, a student edits code in any browser – with Intellisense – and Pex4Fun executes it and analyzes it in the cloud. Pex4Fun connects teachers, curriculum authors, and students in a unique social experience, tracking and streaming progress updates in real time. In particular, Pex4Fun finds interesting and unexpected input values (with Pex, an advanced test-generation tool) that help students understand what their code is actually doing. The real fun starts with coding duels where a student writes code to implement a teacher's secret specification (in the form of sample-solution code not visible to the student). Pex4Fun finds any discrepancies in behavior between the student’s code and the secret specification. Such discrepancies are given as feedback to the student to guide how to fix the student’s code to match the behavior of the secret specification. In early 2014, Code Hunt (https://www.codehunt.com/) has been released as a redesign of Pex4Fun as game.

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
881
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Teaching and Learning Programming and Software Engineering via Interactive Gaming

  1. 1. 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 (Microsoft Research) Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
  2. 2. Testing Tool  Educational Gaming Support Dynamic Symbolic Execution (Pex) http://research.microsoft.com/pex/ Pex for Fun: Interactive Gaming for Teaching and Learning https://www.codehunt.com http://pex4fun.com
  3. 3. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  4. 4. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  5. 5. 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/
  6. 6. http://research.microsoft.com/pex/
  7. 7. Dynamic Symbolic Execution in Pex Choose next path Solve void CoverMe(int[] a) { if (a == null) return; if (a.Length > 0) if (a[0] == 1234567890) throw new Exception("bug"); } F F a.Length>0 a==null Execute&Monitor Constraints to solve Input Observed constraints a!=null null {} a==null a!=null && !(a.Length>0) a==null && a.Length>0 && a[0]!=1234567890 a==null && a.Length>0 && a[0]==1234567890 a!=null && a.Length>0 a!=null && a.Length>0 && a[0]==123456890 T T {0} {123…} Done: There is no path left. a[0]==123… F T http://pex4fun.com/HowDoesPexWork
  8. 8. Coding Duels 1,463,179 clicked 'Ask Pex!'
  9. 9. Coding Duels Pex computes “semantic diff” in cloud secret reference implementation vs. code written in browser You win when Pex finds no differences For more info, see our ICSE 2013 SEE paper: http://web.engr.illinois.edu/~taoxie/publications/icse13see-pex4fun.pdf
  10. 10. Behind the Scene of Pex for Fun behavior Secret Impl == 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”); } } Player Impl Player Implementation class Player { public static int Puzzle(int x) { return x; } } 10
  11. 11. Coding Duels Fun and Engaging Iterative gameplay Adaptive Personalized No cheating Clear winning criterion
  12. 12. Social Experience Community High score lists, leaderboard Live feed http://pex4fun.com/Community.aspx http://pex4fun.com/Livefeed.aspx
  13. 13. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  14. 14. Teaching and Learning
  15. 15. Skills Being Trained Induction Problem solving/debugging Program understanding/programming Testing Specification writing
  16. 16. 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
  17. 17. Coding Duel Competition @ICSE 2011 http://pexforfun.com/icse2011
  18. 18. 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 myself to 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!”
  19. 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. 20. Code Hunt: Resigned As Game https://www.codehunt.com/
  21. 21. End-User Programming On Mobile Devices TouchDevelop: Bring your own devices, program anywhere, run immediately on devices V.S. https://www.touchdevelop.com/ 21
  22. 22. TouchDevelop https://www.touchdevelop.com/ 22
  23. 23. TouchDevelop https://www.touchdevelop.com/ 23
  24. 24. TouchDevelop https://www.touchdevelop.com/ 24
  25. 25. TouchDevelop https://www.touchdevelop.com/ 25
  26. 26. TouchDevelop cont. • Simple script language – No user-defined type – No class inheritance Full-fledged platform for • Rich API support EUP on Mobile Devices – Easy access to various sensors and resources • Powerful cloud services – Download/publish scripts – Store information of entities (e.g., scripts, users) – Answer queries https://www.touchdevelop.com/ 26
  27. 27. Rapid Increase of TouchDevelop Popularity Oct 2013 vs. 17322 scripts Feb 2013 27
  28. 28. Summary: Testing Tool Educational Gaming Support DSE/Pex Pex for Fun: Interactive Gaming for Teaching and Learning https://www.touchdevelop.com/ https://www.codehunt.com http://pex4fun.com
  29. 29. Testing Tool  Educational Gaming http://research.microsoft.com/pex/ http://pex4fun.com Support Q&A Thank you! Contact: taoxie@illinois.edu http://www.cs.illinois.edu/homes/taoxie/ Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
  30. 30. Summary: Testing Tool Educational Gaming Support DSE/Pex Pex for Fun: Interactive Gaming for Teaching and Learning https://www.touchdevelop.com/ https://www.codehunt.com http://pex4fun.com

×