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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

Agenda

Background

Coding Duels

Educational Platform

Experiences

Conclusion

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

Agenda

Background

Coding Duels

Educational Platform

Experiences

Conclusion

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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

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

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

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

Coding Duels

1,463,179 clicked 'Ask Pex!'

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

Coding DuelsFun and Engaging

Iterative gameplayAdaptivePersonalizedNo cheatingClear winning criterion

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

Agenda

Background

Coding Duels

Educational Platform

Experiences

Conclusion

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

Teaching and Learning

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

Skills Being Trained

InductionProblem solving/debuggingProgram understanding/programmingTestingSpecification writing

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

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 17: Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with

Coding Duel Competition @ICSE 2011

http://pexforfun.com/icse2011

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

Code Hunt: Resigned As Gamehttps://www.codehunt.com/

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

22

TouchDevelop

https://www.touchdevelop.com/

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

23

TouchDevelop

https://www.touchdevelop.com/

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

24

TouchDevelop

https://www.touchdevelop.com/

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

25

TouchDevelop

https://www.touchdevelop.com/

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

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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 Tao Xie University of Illinois at Urbana-Champaign In collaboration with

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


Top Related