SlideShare a Scribd company logo
1 of 40
Gamifying Teaching and 
Learning of Software 
Engineering and 
Programming 
Tao Xie 
University of Illinois at Urbana-Champaign 
In collaboration with Nikolai Tillmann, Jonathan de Halleux, and Judith Bishop 
(Microsoft Research) 
http://pex4fun.com 
https://www.codehunt.com 
Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
Working for fun 
Enjoyment adds to long term retention on a task 
Discovery is a powerful driver, contrasting with 
direct instructions 
Gaming joins these two, and is hugely popular 
Can we add these elements to coding? 
Write a program to determine all the sets of 
effectively identical rooms in a maze. (A page of 
background, sample input and output given)
Testing Tool  Educational Gaming 
Dynamic Symbolic Execution (Pex) 
Pex for Fun: 
Interactive Gaming for 
Teaching and Learning 
Support 
https://www.codehunt.com 
http://research.microsoft.com/pex/ http://pex4fun.com
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] 
Instrument code to explore feasible paths 
http://research.microsoft.com/pex/
http://research.microsoft.com/pex/
Dynamic Symbolic Execution in Pex 
void CoverMe(int[] a) 
{ 
if (a == null) return; 
if (a.Length > 0) 
if (a[0] == 1234567890) 
throw new Exception("bug"); 
} 
F 
a.Length>0 
F T 
a[0]==123… 
T 
F 
a==null 
T 
Choose next path 
Solve Execute&Monitor 
Constraints to solve 
a!=null 
a!=null && 
a.Length>0 
a!=null && 
a.Length>0 && 
a[0]==123456890 
Input 
null 
{} 
{0} 
{123…} 
Observed constraints 
a==null 
a!=null && 
!(a.Length>0) 
a==null && 
a.Length>0 && 
a[0]!=1234567890 
a==null && 
a.Length>0 && 
a[0]==1234567890 
Done: There is no path left. 
http://pex4fun.com/HowDoesPexWork
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
Coding Duels 
1,594,092 clicked 'Ask Pex!'
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
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”); 
} 
} 
behavior 
Secret Impl == Player Impl 
12 
1,594,092
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Code Hunt Programming Game
Leaderboard and Dashboard 
Publically visible, updated during the contest 
Visible only to the organizer
It’s a game! 
iterative gameplay 
adaptive 
personalized 
no cheating 
clear winning criterion 
code 
test cases
Audiences 
Students: proceed through a sequence on 
puzzles to learn and practice. 
Educators: exercise different parts of a 
curriculum, and track students’ progress 
Recruiters: use contests to inspire communities 
and results to guide hiring 
Researchers: mine extensive data in Azure to 
evaluate how people code and learn
Social Experience 
Community 
High score lists, leaderboard 
Live feed 
http://pex4fun.com/Community.aspx 
http://pex4fun.com/Livefeed.aspx
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 Feedback (for Both Students and Teachers) 
• Fun Learning Experiences 
http://pexforfun.com/gradsofteng
Coding Duels for Training Testing 
public static string Puzzle(int[] elems, int capacity, int elem) { 
if ((maxsize <= 0) || (elems == null) || (elems.Length > (capacity + 1))) 
return "Assumption Violation!"; 
Stack s= new Stack(capacity); 
for (int i = 0; i < elems.Length; i++) 
s.Push(elems[i]); 
int origSize = s.GetNumOfElements(); 
//Please fill in below test scenario on the s stack 
//The lines below include assertions to assert the program behavior 
PexAssert.IsTrue(s.GetNumOfElements() == origSize + 1); 
PexAssert.IsTrue(s.Top() == elem); PexAssert.IsTrue(!s.IsEmpty()); 
PexAssert.IsTrue(s.IsMember(elem)); 
return s.GetNumOfElements().ToString() + "; “ + s.Top().ToString() + "; “ 
+ s.IsMember(elem).ToString() + "; " + s.IsEmpty(); 
} 
Set up a stack with some elements 
Cache values used in assertions
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 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!”
Recap: Code Hunt: A Game for Coding 
For individuals (K12, introductory courses, geeks) 
For competitions at any level, world-wide or in house 
Based on long-term research on symbolic program 
analysis (Pex, Z3) 
Works with Java and C# 
Runs in any modern browser 
Now working on tablets and phones 
www.codehunt.com
Summary: Testing Tool Educational Gaming 
DSE/Pex 
Pex for Fun: 
Interactive Gaming for 
Teaching and Learning 
Support 
https://www.codehunt.com 
http://pex4fun.com
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
Summary: Testing Tool Educational Gaming 
DSE/Pex 
Pex for Fun: 
Interactive Gaming for 
Teaching and Learning 
Support 
https://www.codehunt.com 
http://pex4fun.com

More Related Content

Similar to Gamifying Teaching and Learning of Software Engineering and Programming

Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehunt
Tao Xie
 
Amol Bhawar Resume 2016
Amol Bhawar Resume 2016Amol Bhawar Resume 2016
Amol Bhawar Resume 2016
Amol Bhawar
 

Similar to Gamifying Teaching and Learning of Software Engineering and Programming (20)

Computer coding resources for your library
Computer coding resources for your library Computer coding resources for your library
Computer coding resources for your library
 
E content development and editing
E content development and  editingE content development and  editing
E content development and editing
 
TCEA 2016 creating a game design sequence
TCEA 2016 creating a game design sequenceTCEA 2016 creating a game design sequence
TCEA 2016 creating a game design sequence
 
Tcea 2014 Video Game Design for New TEKS
Tcea 2014   Video Game Design for New TEKSTcea 2014   Video Game Design for New TEKS
Tcea 2014 Video Game Design for New TEKS
 
Fetc 2015 educational video game design
Fetc 2015   educational video game designFetc 2015   educational video game design
Fetc 2015 educational video game design
 
01.intro
01.intro01.intro
01.intro
 
Fetc 2016 creating a game design sequence
Fetc 2016 creating a game design sequenceFetc 2016 creating a game design sequence
Fetc 2016 creating a game design sequence
 
Acte 2015 creating a game design sequence
Acte 2015 creating a game design sequenceActe 2015 creating a game design sequence
Acte 2015 creating a game design sequence
 
Project Connect: Connect & Collaborate: Session A: Sept 18
Project Connect: Connect & Collaborate: Session A: Sept 18Project Connect: Connect & Collaborate: Session A: Sept 18
Project Connect: Connect & Collaborate: Session A: Sept 18
 
Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehunt
 
Ttt Techfinal
Ttt TechfinalTtt Techfinal
Ttt Techfinal
 
LTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom SyllabusLTMS 510 Multiplayer Classroom Syllabus
LTMS 510 Multiplayer Classroom Syllabus
 
Amol Bhawar Resume 2016
Amol Bhawar Resume 2016Amol Bhawar Resume 2016
Amol Bhawar Resume 2016
 
Next level learning NSW Roadshow presentation deck
Next level learning NSW Roadshow presentation deckNext level learning NSW Roadshow presentation deck
Next level learning NSW Roadshow presentation deck
 
GAME QUIZ - Quem Quer Ser Informático
GAME QUIZ - Quem Quer Ser InformáticoGAME QUIZ - Quem Quer Ser Informático
GAME QUIZ - Quem Quer Ser Informático
 
Hexlet Deck
Hexlet DeckHexlet Deck
Hexlet Deck
 
Apr20 presentation
Apr20 presentationApr20 presentation
Apr20 presentation
 
Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)Illustrated Code (ASE 2021)
Illustrated Code (ASE 2021)
 
OpenEd 2013: Designing Open Badges and an Open Course to Enhance and Extend...
OpenEd  2013: Designing Open Badges and an Open Course  to Enhance and Extend...OpenEd  2013: Designing Open Badges and an Open Course  to Enhance and Extend...
OpenEd 2013: Designing Open Badges and an Open Course to Enhance and Extend...
 
Introduction to 3DHive
Introduction to 3DHiveIntroduction to 3DHive
Introduction to 3DHive
 

More from Tao Xie

More from Tao Xie (20)

MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
MSR 2022 Foundational Contribution Award Talk: Software Analytics: Reflection...
 
DSML 2021 Keynote: Intelligent Software Engineering: Working at the Intersect...
DSML 2021 Keynote: Intelligent Software Engineering: Working at the Intersect...DSML 2021 Keynote: Intelligent Software Engineering: Working at the Intersect...
DSML 2021 Keynote: Intelligent Software Engineering: Working at the Intersect...
 
Intelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software EngineeringIntelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software Engineering
 
Diversity and Computing/Engineering: Perspectives from Allies
Diversity and Computing/Engineering: Perspectives from AlliesDiversity and Computing/Engineering: Perspectives from Allies
Diversity and Computing/Engineering: Perspectives from Allies
 
Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...Intelligent Software Engineering: Synergy between AI and Software Engineering...
Intelligent Software Engineering: Synergy between AI and Software Engineering...
 
MSRA 2018: Intelligent Software Engineering: Synergy between AI and Software ...
MSRA 2018: Intelligent Software Engineering: Synergy between AI and Software ...MSRA 2018: Intelligent Software Engineering: Synergy between AI and Software ...
MSRA 2018: Intelligent Software Engineering: Synergy between AI and Software ...
 
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
SETTA'18 Keynote: Intelligent Software Engineering: Synergy between AI and So...
 
ISEC'18 Tutorial: Research Methodology on Pursuing Impact-Driven Research
ISEC'18 Tutorial: Research Methodology on Pursuing Impact-Driven ResearchISEC'18 Tutorial: Research Methodology on Pursuing Impact-Driven Research
ISEC'18 Tutorial: Research Methodology on Pursuing Impact-Driven Research
 
ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...
ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...
ISEC'18 Keynote: Intelligent Software Engineering: Synergy between AI and Sof...
 
Intelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software EngineeringIntelligent Software Engineering: Synergy between AI and Software Engineering
Intelligent Software Engineering: Synergy between AI and Software Engineering
 
Software Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and SecuritySoftware Analytics: Data Analytics for Software Engineering and Security
Software Analytics: Data Analytics for Software Engineering and Security
 
Planning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful ResearchPlanning and Executing Practice-Impactful Research
Planning and Executing Practice-Impactful Research
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
 
Transferring Software Testing Tools to Practice (AST 2017 Keynote)
Transferring Software Testing Tools to Practice (AST 2017 Keynote)Transferring Software Testing Tools to Practice (AST 2017 Keynote)
Transferring Software Testing Tools to Practice (AST 2017 Keynote)
 
Advances in Unit Testing: Theory and Practice
Advances in Unit Testing: Theory and PracticeAdvances in Unit Testing: Theory and Practice
Advances in Unit Testing: Theory and Practice
 
Common Technical Writing Issues
Common Technical Writing IssuesCommon Technical Writing Issues
Common Technical Writing Issues
 
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William EnckHotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
 
Transferring Software Testing and Analytics Tools to Practice
Transferring Software Testing and Analytics Tools to PracticeTransferring Software Testing and Analytics Tools to Practice
Transferring Software Testing and Analytics Tools to Practice
 
User Expectations in Mobile App Security
User Expectations in Mobile App SecurityUser Expectations in Mobile App Security
User Expectations in Mobile App Security
 
Impact-Driven Research on Software Engineering Tooling
Impact-Driven Research on Software Engineering ToolingImpact-Driven Research on Software Engineering Tooling
Impact-Driven Research on Software Engineering Tooling
 

Recently uploaded

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Recently uploaded (20)

Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Third Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptxThird Battle of Panipat detailed notes.pptx
Third Battle of Panipat detailed notes.pptx
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 

Gamifying Teaching and Learning of Software Engineering and Programming

  • 1. Gamifying Teaching and Learning of Software Engineering and Programming Tao Xie University of Illinois at Urbana-Champaign In collaboration with Nikolai Tillmann, Jonathan de Halleux, and Judith Bishop (Microsoft Research) http://pex4fun.com https://www.codehunt.com Related Papers/Resources: https://sites.google.com/site/asergrp/projects/ese
  • 2. Working for fun Enjoyment adds to long term retention on a task Discovery is a powerful driver, contrasting with direct instructions Gaming joins these two, and is hugely popular Can we add these elements to coding? Write a program to determine all the sets of effectively identical rooms in a maze. (A page of background, sample input and output given)
  • 3. Testing Tool  Educational Gaming Dynamic Symbolic Execution (Pex) Pex for Fun: Interactive Gaming for Teaching and Learning Support https://www.codehunt.com http://research.microsoft.com/pex/ http://pex4fun.com
  • 4. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  • 5. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  • 6. 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/
  • 8. Dynamic Symbolic Execution in Pex void CoverMe(int[] a) { if (a == null) return; if (a.Length > 0) if (a[0] == 1234567890) throw new Exception("bug"); } F a.Length>0 F T a[0]==123… T F a==null T Choose next path Solve Execute&Monitor Constraints to solve a!=null a!=null && a.Length>0 a!=null && a.Length>0 && a[0]==123456890 Input null {} {0} {123…} Observed constraints a==null a!=null && !(a.Length>0) a==null && a.Length>0 && a[0]!=1234567890 a==null && a.Length>0 && a[0]==1234567890 Done: 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 Duels 1,594,092 clicked 'Ask Pex!'
  • 11. 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
  • 12. 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”); } } behavior Secret Impl == Player Impl 12 1,594,092
  • 26. Leaderboard and Dashboard Publically visible, updated during the contest Visible only to the organizer
  • 27. It’s a game! iterative gameplay adaptive personalized no cheating clear winning criterion code test cases
  • 28. Audiences Students: proceed through a sequence on puzzles to learn and practice. Educators: exercise different parts of a curriculum, and track students’ progress Recruiters: use contests to inspire communities and results to guide hiring Researchers: mine extensive data in Azure to evaluate how people code and learn
  • 29. Social Experience Community High score lists, leaderboard Live feed http://pex4fun.com/Community.aspx http://pex4fun.com/Livefeed.aspx
  • 30. Agenda Background Coding Duels Educational Platform Experiences Conclusion
  • 32. Skills Being Trained Induction Problem solving/debugging Program understanding/programming Testing Specification writing
  • 33. 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
  • 34. Coding Duels for Training Testing public static string Puzzle(int[] elems, int capacity, int elem) { if ((maxsize <= 0) || (elems == null) || (elems.Length > (capacity + 1))) return "Assumption Violation!"; Stack s= new Stack(capacity); for (int i = 0; i < elems.Length; i++) s.Push(elems[i]); int origSize = s.GetNumOfElements(); //Please fill in below test scenario on the s stack //The lines below include assertions to assert the program behavior PexAssert.IsTrue(s.GetNumOfElements() == origSize + 1); PexAssert.IsTrue(s.Top() == elem); PexAssert.IsTrue(!s.IsEmpty()); PexAssert.IsTrue(s.IsMember(elem)); return s.GetNumOfElements().ToString() + "; “ + s.Top().ToString() + "; “ + s.IsMember(elem).ToString() + "; " + s.IsEmpty(); } Set up a stack with some elements Cache values used in assertions
  • 35. Coding Duel Competition @ICSE 2011 http://pexforfun.com/icse2011
  • 36. 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!”
  • 37. Recap: Code Hunt: A Game for Coding For individuals (K12, introductory courses, geeks) For competitions at any level, world-wide or in house Based on long-term research on symbolic program analysis (Pex, Z3) Works with Java and C# Runs in any modern browser Now working on tablets and phones www.codehunt.com
  • 38. Summary: Testing Tool Educational Gaming DSE/Pex Pex for Fun: Interactive Gaming for Teaching and Learning Support https://www.codehunt.com http://pex4fun.com
  • 39. 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
  • 40. Summary: Testing Tool Educational Gaming DSE/Pex Pex for Fun: Interactive Gaming for Teaching and Learning Support https://www.codehunt.com http://pex4fun.com

Editor's Notes

  1. 8