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

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

Post on 30-Dec-2015

214 views

Category:

Documents

0 download

TRANSCRIPT

PowerPoint Presentation

Teaching and Learning Programming and Software Engineering via Interactive GamingTao 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.comRelated Papers/Resources: https://sites.google.com/site/asergrp/projects/ese Testing Tool Educational GamingDynamic Symbolic Execution (Pex)

secret

Pex for Fun: Interactive Gaming for Teaching and Learning

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

https://www.codehunt.comAgendaBackgroundCoding DuelsEducational PlatformExperiencesConclusionAgendaBackgroundCoding DuelsEducational PlatformExperiencesConclusion

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 pathsBackground

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>0a[0]==123TFTFFa==nullTConstraints to solve

a!=null a!=null &&a.Length>0 a!=null &&a.Length>0 &&a[0]==123456890Input

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 Pexhttp://pex4fun.com/HowDoesPexWork7777Coding 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 differencessecretFor more info, see our ICSE 2013 SEE paper: http://web.engr.illinois.edu/~taoxie/publications/icse13see-pex4fun.pdf

Behind the Scene of Pex for FunSecret Implementation class Secret { public static int Puzzle(int x) { if (x

Recommended

View more >