educational software engineering: where software engineering, education, and gaming meet
DESCRIPTION
Talk slides on "Educational Software Engineering: Where Software Engineering, Education, and Gaming Meet." at the 3rd International Workshop on Games and Software Engineering (GAS 2013), San Francisco, CA, May 2013.TRANSCRIPT
Educational Software Engineering:Where Software Engineering, Education, and Gaming Meet
Tao XieNorth Carolina State University
Nikolai Tillmann, Jonathan de HalleuxMicrosoft Research
secret
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
MathProgramming/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 cloudsecret reference implementation vs.code written in browserYou win when Pex finds no differences
secret
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
8
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
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
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 Engineeringdevelops software engineering (+gaming) technologies for general educational tasks
secret
http://pex4fun.com
Q & AThank 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