Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with.

Slides:



Advertisements
Similar presentations
Qwizdoms Rapid Learning Environment (RLE) helps accelerate and improve learning through the use of interactive software, instant feedback, and Click Play.
Advertisements

TouchDevelop Create apps ON your phone! Peli de Halleux (Senior Software Developer) Microsoft Research.
TouchDevelop: Productive Scripting on and for Mobile Devices and Web Services Thomas Ball Sebastian Burckhardt, Peli de Halleux, Michał Moskal, Nikolai.
Tutorial Pex4Fun: Teaching and Learning Computer Science via Social Gaming Nikolai Tillmann, Jonathan de Halleux, Judith Bishop, Michal.
Tao Xie University of Illinois at Urbana-Champaign Part of the research work described in this talk was done in collaboration with the Pex team (Nikolai.
Kai Pan, Xintao Wu University of North Carolina at Charlotte Generating Program Inputs for Database Application Testing Tao Xie North Carolina State University.
Cross-Curricular activity By Carlos Ueno Jacue. School: IES LA VEGA DE SAN JOSÉ Teacher(s): Carlos Ueno / Jerónimo / Margarita Form/N. of students: Up.
1 Path Finder Webinar mLevel’s Scenario-based Game.
CSE503: SOFTWARE ENGINEERING SYMBOLIC TESTING, AUTOMATED TEST GENERATION … AND MORE! David Notkin Spring 2011.
Pexxxx White Box Test Generation for
Computer Science 162 Section 1 CS162 Teaching Staff.
Analysis of Complex Data Structures with PEX Vadim Mutilin Evgeniy Gerlits Vladimir Fedotov Mentor: Patrice Godefroid.
Technology Day May 5, 2012 Dawn Cox Best practices for new instructors.
8/13/2015 Online Internet Training for Classroom Teachers Level One Click Here for More Info.
We are a team looking forward to the integration of technology in the classroom. We are not the only ones who want this to happen. We are trying to get.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Human-Tool, Tool-Tool, and Human-Human Cooperations to Get the Job Done Tao Xie North Carolina State University Raleigh, NC, USA.
Deep Dive into Pex How Pex works, implications for design of Code Hunt puzzles Nikolai Tillmann Principal Software Engineering Manager Microsoft, Redmond,
Path C: The Integrated Classroom Lead Teacher: Wendy Freebersyser.
Networking E-Learning Dr. Aram Aristakesyan.  Web-Information Platform (CMS)  Teaching and learning content  MOODLE (e-learning platform) (LMS)  MOOC.
Separation of Concerns Tao Xie Peking University, China North Carolina State University, USA In collaboration with Nikolai Tillmann, Peli de Halleux, Wolfram.
Tao Xie North Carolina State University Supported by CACC/NSA Related projects supported in part by ARO, NSF, SOSI.
Tao Xie (North Carolina State University) Nikolai Tillmann, Jonathan de Halleux, Wolfram Schulte (Microsoft Research, Redmond WA, USA)
Automated Developer Testing: Achievements and Challenges Tao Xie North Carolina State University contact:
DySy: Dynamic Symbolic Execution for Invariant Inference.
Tao Xie University of Illinois at Urbana-Champaign Part of the research work described in this talk was done in collaboration with the Pex team (Nikolai.
Tao Xie Automated Software Engineering Group Department of Computer Science North Carolina State University
Student Information. Q: What is Study Island?? A. An island kids are sent to when they don’t do their homework B. A place where students go when daydreaming.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Collaborating with iPlant.
Collider IT Project. Project Requirements  Create a fun and addictive online multiplayer game  Implement an Open Source physics engine (box2D)  The.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Tao Xie University of Illinois at Urbana-Champaign,USA SBQS 2013.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
IPlant Collaborative Tools and Services Workshop iPlant Collaborative Tools and Services Workshop Collaborating with iPlant.
Tao Xie North Carolina State University Nikolai Tillmann, Peli de Halleux, Wolfram Schulte Microsoft Research.
Tao Xie (North Carolina State University) Peli de Halleux, Nikolai Tillmann, Wolfram Schulte (Microsoft Research)
Mining Gigabytes of Dynamic Traces for Test Generation Suresh Thummalapenta North Carolina State University Peli de Halleux and Nikolai Tillmann Microsoft.
Code Hunt: Experience with Coding Contests at Scale Judith Bishop, R Nigel Horspool, Tao Xie, Nikolai Tillmann, Jonathan de Halleux Microsoft Research,
Nikolai Tillmann, Jonathan de Halleux Tao Xie Microsoft Research Univ. Illinois at Urbana-Champaign.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Reactive learning Objects for Distributed e-Learning environments Patrick Duval, Agathe Merceron, Michel Scholl Computer Science Department Engineering.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Cooperative Developer Testing: Tao Xie North Carolina State University In collaboration with Xusheng ASE and Nikolai Tillmann, Peli de
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
SUBMITTED BY JESNA J AM.EN.P2ELT14003 LEARNING MANAGEMENT SYSTEM.
Hebrew in the Online Learning Center Student & Family Information.
A Test Case + Mock Class Generator for Coding Against Interfaces Mainul Islam, Christoph Csallner Software Engineering Research Center (SERC) Computer.
Parameterized Unit Testing in the Open Source Wild Wing Lam (U. Illinois) In collaboration with Siwakorn Srisakaokul, Blake Bassett, Peyman Mahdian and.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Why Can't A Computer Be More Like A Brain?. Outline Introduction Turning Test HTM ◦ A. Theory ◦ B. Applications & Limits Conclusion.
By: Dr. Vivek Gupta Lecturer in Physics Govt. Girls’ Sen. Sec. School Portmore (Shimla) Ph:
1 Course Summary Spring 2007 CS 101 Aaron Bloomfield.
Symbolic Execution in Software Engineering By Xusheng Xiao Xi Ge Dayoung Lee Towards Partial fulfillment for Course 707.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION SYMBOLIC TESTING Autumn 2011.
Microsoft in the Classroom Shane Mann | Rathkeale College |
Play to Learn: Playing Games to Learn how to Design Games Session M301 Sharon Boller Indianapolis, IN.
 How can we find/refer to objects at runtime?  This must be dynamic because objects may come and go.  How can we solve this problem?
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
QR Codes “Scan Your Way to Engagement” Pamala Heller Woodland High School – Henry County
ICT in Schools, Universities and Colleges. Learning Objectives To learn what CAL is To learn what CBL is To learn what CAA is.
Co-funded by the Horizon 2020 Framework Programme of the European Union No One Left Behind Yolanda Ursa Wolfgang Slany Bernadette Spieler.
Comp1202: Conclusions Revision Session. Coming up Key Concepts - The Pillars HashMaps Exceptions The Exam Some Last Words.
ChengXiang (“Cheng”) Zhai Department of Computer Science
Dynamic Symbolic Execution
ICT in Schools, Universities and Colleges
A Test Case + Mock Class Generator for Coding Against Interfaces
Preliminary Analysis of Contestant Performance for a Code Hunt Contest
Smart Learning concepts to enhance SMART Universities in Africa
Google Apps and a little Bit of eCLASS
Presentation transcript:

Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with Nikolai Tillmann, Jonathan de Halleux, and Judith Bishop (Microsoft Research) secret Related Papers/Resources:

Testing Tool  Educational Gaming Dynamic Symbolic Execution (Pex) secret Pex for Fun: Interactive Gaming for Teaching and Learning Support

Agenda Background Coding Duels Educational Platform Experiences Conclusion

Agenda Background Coding Duels Educational Platform Experiences Conclusion

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 Background

void CoverMe(int[] a) { if (a == null) return; if (a.Length > 0) if (a[0] == ) throw new Exception("bug"); } a.Length>0 a[0]==123… T F T F F a==null T Constraints to solve a!=null a!=null && a.Length>0 a!=null && a.Length>0 && a[0]== Input null {} {0} {123…} Execute&Monitor Solve Choose next path Observed constraints a==null a!=null && !(a.Length>0) a==null && a.Length>0 && a[0]!= a==null && a.Length>0 && a[0]== Done: There is no path left. Dynamic Symbolic Execution in Pex

Coding Duels 1,463,179 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 secret For more info, see our ICSE 2013 SEE paper:

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 10

Coding Duels Fun and Engaging Iterative gameplay Adaptive Personalized No cheating Clear winning criterion

Social Experience Community High score lists, leaderboard Live feed

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 Software Engineering Course Observed Benefits Automatic Grading Real-time Feedback (for Both Students and Teachers) Fun Learning Experiences

Coding Duel

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

Usage Scenarios of Pex4Fun Massive Open Online Courses (MOOC) Course assignments (students/professionals) Student/professional competitions Assessment of testing, programming, problem solving skills for job applicants

Code Hunt: Resigned As Game

End-User Programming On Mobile Devices V.S. TouchDevelop: Bring your own devices, program anywhere, run immediately on devices 21

TouchDevelop 22

TouchDevelop 23

TouchDevelop 24

TouchDevelop 25

Simple script language – No user-defined type – No class inheritance Rich API support – Easy access to various sensors and resources Powerful cloud services – Download/publish scripts – Store information of entities (e.g., scripts, users) – Answer queries TouchDevelop cont. 26 Full-fledged platform for EUP on Mobile Devices

Rapid Increase of TouchDevelop Popularity 27 Oct 2013 vs scripts Feb 2013

Summary: Testing Tool  Educational Gaming DSE/Pex secret Pex for Fun: Interactive Gaming for Teaching and Learning Support

Testing Tool  Educational Gaming secret Support Related Papers/Resources: Q & A Thank you! Contact:

Summary: Testing Tool  Educational Gaming DSE/Pex secret Pex for Fun: Interactive Gaming for Teaching and Learning Support