teaching and learning programming and software engineering via interactive gaming tao xie university...

Post on 30-Dec-2015

245 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Coding Duel Competition @ICSE 2011

http://pexforfun.com/icse2011

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: taoxie@illinois.edu 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

top related