Educational
Software Engineering:
Where Software
Engineering, Education, and Gaming
Meet
Tao Xie
North Carolina State University
Nikolai Tillmann, Jonathan de Halleux
Microsoft Research
http://pex4fun.com
Educational Software Engineering
develops software engineering (+gaming)
technologies for general educational
tasks, going beyond educational tasks for
software engineering (e.g., software
engineering education)
aka. Software Engineering for Education
Example Education Tasks
• Automated Grading
• Intelligent Tutoring System
• Automatic Problem Generation
• Plagiarism Detection
Math
Programming/Software Engineering
…
…
For
Relationship/Analogy to Other Fields
• Educational Software Engineering
– Use Software Engineering for Education
• Educational Gaming (Gamification of Education)
– Use Gaming for Education
• Educational Data Mining
– Use Data Mining for Education
• Mining Software Repositories
– Use Data Mining for Software Engineering
Broader Scope(?)
• Currently, software engineering technologies as
infrastructure support for educational tools
– E.g., Pex for Fun
• Software engineering for developing educational
games or generally educational tools
– E.g., SQA for educational-game software
• Software engineering tools or processes to assist
development of educational tools
Example: Pex for Fun/Coding Duels
1,220,547 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
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
8
Coding Duels
Fun and Engaging
Iterative gameplay
Adaptive
Personalized
No cheating
Clear winning criterion
Social Experience
Community
High score lists, leaderboard
Live feed
http://pex4fun.com/Community.aspx
http://pex4fun.com/Livefeed.aspx
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
Coding Duel Competition
@ICSE 2011
http://pexforfun.com/icse2011
Teaching and Learning
Coding Duels for Automatic Grading
@Grad Software Engineering Course
http://pexforfun.com/gradsofteng
Usage Scenarios of Pex4Fun
• Massive Open Online Courses (MOOC): Challenges
– Grading, addressed by Pex4Fun
– Cheating [Open Challenge]
• Course assignments (students/professionals)
– E.g., intro programming, software engineering
• Student/professional competitions
– E.g., coding-duel competition at ICSE 2011
• Assessment of testing/programming/problem
solving skills for job applicants
– Not just final results of problem solving but also process!
Educational Software Engineering
develops software engineering (+gaming)
technologies for general educational tasks
http://pex4fun.com
Q & A
Thank you!
Acknowledgments: NSF grants CCF-0845272, CCF-0915400, CNS-0958235, CNS-1160603,
a Microsoft Research SEIF Award, and a Microsoft Research Award.
Limitations
16K characters of code (single file / editor window)*
Single-threaded only
No environment interactions*
No non-determinism*
Try to avoid floating-point computations
Max. 20s total exploration time*
* Limitation only applies to pex4fun.com, but not standalone Pex tool
Auto-Completion

Educational Software Engineering: Where Software Engineering, Education, and Gaming Meet

  • 1.
    Educational Software Engineering: Where Software Engineering,Education, and Gaming Meet Tao Xie North Carolina State University Nikolai Tillmann, Jonathan de Halleux Microsoft Research http://pex4fun.com
  • 2.
    Educational Software Engineering developssoftware engineering (+gaming) technologies for general educational tasks, going beyond educational tasks for software engineering (e.g., software engineering education) aka. Software Engineering for Education
  • 3.
    Example Education Tasks •Automated Grading • Intelligent Tutoring System • Automatic Problem Generation • Plagiarism Detection Math Programming/Software Engineering … … For
  • 4.
    Relationship/Analogy to OtherFields • Educational Software Engineering – Use Software Engineering for Education • Educational Gaming (Gamification of Education) – Use Gaming for Education • Educational Data Mining – Use Data Mining for Education • Mining Software Repositories – Use Data Mining for Software Engineering
  • 5.
    Broader Scope(?) • Currently,software engineering technologies as infrastructure support for educational tools – E.g., Pex for Fun • Software engineering for developing educational games or generally educational tools – E.g., SQA for educational-game software • Software engineering tools or processes to assist development of educational tools
  • 6.
    Example: Pex forFun/Coding Duels 1,220,547 clicked 'Ask Pex!'
  • 7.
    Coding Duels Pex computes“semantic diff” in cloud secret reference implementation vs. code written in browser You win when Pex finds no differences
  • 8.
    Behind the Sceneof 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 8
  • 9.
    Coding Duels Fun andEngaging Iterative gameplay Adaptive Personalized No cheating Clear winning criterion
  • 10.
    Social Experience Community High scorelists, leaderboard Live feed http://pex4fun.com/Community.aspx http://pex4fun.com/Livefeed.aspx
  • 11.
    Example User Feedback “Itreally 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
  • 12.
    Coding Duel Competition @ICSE2011 http://pexforfun.com/icse2011
  • 13.
  • 14.
    Coding Duels forAutomatic Grading @Grad Software Engineering Course http://pexforfun.com/gradsofteng
  • 15.
    Usage Scenarios ofPex4Fun • Massive Open Online Courses (MOOC): Challenges – Grading, addressed by Pex4Fun – Cheating [Open Challenge] • Course assignments (students/professionals) – E.g., intro programming, software engineering • Student/professional competitions – E.g., coding-duel competition at ICSE 2011 • Assessment of testing/programming/problem solving skills for job applicants – Not just final results of problem solving but also process!
  • 16.
    Educational Software Engineering developssoftware engineering (+gaming) technologies for general educational tasks http://pex4fun.com Q & A Thank you! Acknowledgments: NSF grants CCF-0845272, CCF-0915400, CNS-0958235, CNS-1160603, a Microsoft Research SEIF Award, and a Microsoft Research Award.
  • 17.
    Limitations 16K characters ofcode (single file / editor window)* Single-threaded only No environment interactions* No non-determinism* Try to avoid floating-point computations Max. 20s total exploration time* * Limitation only applies to pex4fun.com, but not standalone Pex tool
  • 18.

Editor's Notes

  • #3 http://www.insidehighered.com/news/2012/08/02/conventional-online-universities-consider-strategic-response-moocshttp://conferences.computer.org/cseet/
  • #4 http://stcolmcilles.ie/maths/library.htmlhttp://www.donationcoder.com/Reviews/http://blog.zintro.com/2013/04/18/will-automated-grading-systems-replace-professors/http://www.meta-guide.com/home/bibliography/google-scholar/intelligent-tutoring-systems-2010http://scratch.mit.edu/projects/1761560/
  • #5 http://www.knewton.com/blog/knewton/education-technology/2012/02/21/the-gamification-of-education-infographic/http://research.microsoft.com/en-us/projects/confapp/msr2011.aspxhttp://blip.tv/teachers-college-columbia-university/educational-data-mining-predict-the-future-change-the-future-6427568
  • #17 http://www.insidehighered.com/news/2012/08/02/conventional-online-universities-consider-strategic-response-moocshttp://conferences.computer.org/cseet/