educational software engineering: where software engineering, education, and gaming meet

Post on 14-Nov-2014

1.260 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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 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

top related