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

18
Educational Software Engineering: Where Software Engineering, Education, and Gaming Meet Tao Xie North Carolina State University Nikolai Tillmann, Jonathan de Halleux Microsoft Research secret http://pex4fun.co

Upload: tao-xie

Post on 14-Nov-2014

1.260 views

Category:

Technology


1 download

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

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

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

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

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

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

Example Education Tasks

• Automated Grading• Intelligent Tutoring System• Automatic Problem Generation• Plagiarism Detection

MathProgramming/Software Engineering

…For

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

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

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

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

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

Example: Pex for Fun/Coding Duels

1,220,547 clicked 'Ask Pex!'

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

Coding Duels

Pex computes “semantic diff” in cloudsecret reference implementation vs.code written in browserYou win when Pex finds no differences

secret

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

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

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

Coding DuelsFun and Engaging

Iterative gameplayAdaptivePersonalizedNo cheatingClear winning criterion

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

Social Experience

CommunityHigh score lists, leaderboardLive feed

http://pex4fun.com/Community.aspxhttp://pex4fun.com/Livefeed.aspx

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

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

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

Coding Duel Competition @ICSE 2011

http://pexforfun.com/icse2011

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

Teaching and Learning

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

Coding Duels for Automatic Grading @Grad Software Engineering Course

http://pexforfun.com/gradsofteng

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

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!

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

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.

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

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

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

Auto-Completion