Gamifying Teaching and Learning of Software Engineering and Programming

  • Published on
    01-Jul-2015

  • View
    341

  • Download
    3

DESCRIPTION

Talk slides presented at Software Engineering Educators Symposium (SEES) 2014, Hong Kong, November 17, 2014. http://cs.nju.edu.cn/changxu/sees/

Transcript

1. Gamifying Teaching andLearning of SoftwareEngineering andProgrammingTao XieUniversity of Illinois at Urbana-ChampaignIn collaboration with Nikolai Tillmann, Jonathan de Halleux, and Judith Bishop(Microsoft Research)http://pex4fun.comhttps://www.codehunt.comRelated Papers/Resources: https://sites.google.com/site/asergrp/projects/ese 2. Working for funEnjoyment adds to long term retention on a taskDiscovery is a powerful driver, contrasting withdirect instructionsGaming joins these two, and is hugely popularCan we add these elements to coding?Write a program to determine all the sets ofeffectively identical rooms in a maze. (A page ofbackground, sample input and output given) 3. Testing Tool  Educational GamingDynamic Symbolic Execution (Pex)Pex for Fun:Interactive Gaming forTeaching and LearningSupporthttps://www.codehunt.comhttp://research.microsoft.com/pex/ http://pex4fun.com 4. AgendaBackgroundCoding DuelsEducational PlatformExperiencesConclusion 5. AgendaBackgroundCoding DuelsEducational PlatformExperiencesConclusion 6. BackgroundDynamic Symbolic Execution (DSE)aka. Concolic Testing[Godefroid et al. 05][Sen et al. 05][Tillmann et al. 08]Instrument code to explore feasible pathshttp://research.microsoft.com/pex/ 7. http://research.microsoft.com/pex/ 8. Dynamic Symbolic Execution in Pexvoid CoverMe(int[] a){if (a == null) return;if (a.Length > 0)if (a[0] == 1234567890)throw new Exception("bug");}Fa.Length>0F Ta[0]==123…TFa==nullTChoose next pathSolve Execute&MonitorConstraints to solvea!=nulla!=null &&a.Length>0a!=null &&a.Length>0 &&a[0]==123456890Inputnull{}{0}{123…}Observed constraintsa==nulla!=null &&!(a.Length>0)a==null &&a.Length>0 &&a[0]!=1234567890a==null &&a.Length>0 &&a[0]==1234567890Done: There is no path left.http://pex4fun.com/HowDoesPexWork 9. Pex is Part of Visual Studio 2015!• As new feature of “Smart Unit Tests”http://www.visualstudio.com/en-us/news/vs2015-preview-vs#Testing 10. Coding Duels1,594,092 clicked 'Ask Pex!' 11. Coding DuelsPex computes “semantic diff” in cloudsecret reference implementation vs.code written in browserYou win when Pex finds no differencesFor more info, see our ICSE 2013 SEE paper:http://web.engr.illinois.edu/~taoxie/publications/icse13see-pex4fun.pdf 12. Behind the Scene of Pex for FunSecret Implementationclass Secret {public static int Puzzle(int x) {if (x

Recommended

View more >