Code Hunt: Experience with Coding Contests at Scale Judith Bishop, R Nigel Horspool, Tao Xie, Nikolai Tillmann, Jonathan de Halleux Microsoft Research,

Slides:



Advertisements
Similar presentations
A Guide to INCTR s Portal Enhancing international communication in the service of global cancer control.
Advertisements

Tutorial Pex4Fun: Teaching and Learning Computer Science via Social Gaming Nikolai Tillmann, Jonathan de Halleux, Judith Bishop, Michal.
BUSINESS DRIVEN TECHNOLOGY Decision Analysis Tools in Excel
McGraw-Hill/Irwin ©2008 The McGraw-Hill Companies, All Rights Reserved TECHNOLOGY PLUG-IN T4 PROBLEM SOLVING USING EXCEL Goal Seek, Solver & Pivot Tables.
Decision Analysis Tools in Excel
Exploring Office Grauer and Barber 1 Committed to Shaping the Next Generation of IT Experts. Chapter 1 – Introduction to Excel: What is a Spreadsheet?
Experiments on Query Expansion for Internet Yellow Page Services Using Log Mining Summarized by Dongmin Shin Presented by Dongmin Shin User Log Analysis.
Using CourseCompass Features You must already be registered or enrolled in a current class.
1 CSC 221: Computer Programming I Fall 2006 See online syllabus (also accessible via Blackboard): Course goals:  To develop.
Pexxxx White Box Test Generation for
1 ADVANCED MICROSOFT WORD Lesson 15 – Creating Forms and Working with Web Documents Microsoft Office 2003: Advanced.
BY: Phung Phan Kayla Sweers Electronic GradeBook.
Recent Advances in Software Engineering in Microsoft Research Judith Bishop Microsoft Research University of Nanjing, 28 May 2015.
Using the Internet in the Math Classroom Internet Workshops, Internet Projects, Internet Inquires, & Webquests Allison Duncan Canyons School District.
2 pt 3 pt 4 pt 5pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt 2pt 3 pt 4pt 5 pt 1pt 2pt 3 pt 4 pt 5 pt 1 pt 2 pt 3 pt 4pt 5 pt 1pt Networking Can you find it? Apps.
Study Island Teacher Demo
Deep Dive into Pex How Pex works, implications for design of Code Hunt puzzles Nikolai Tillmann Principal Software Engineering Manager Microsoft, Redmond,
Exploring Excel 2003 Revised - Grauer and Barber 1 Committed to Shaping the Next Generation of IT Experts. Chapter 1 – Introduction to Excel: What is a.
Abstract Introduction Results and Discussions James Kasson  (Dr. Bruce W.N. Lo)  Information Systems  University of Wisconsin-Eau Claire In a world.
Separation of Concerns Tao Xie Peking University, China North Carolina State University, USA In collaboration with Nikolai Tillmann, Peli de Halleux, Wolfram.
ENTERPRISE RESEARCH PLATFORM One Solution. One Flat Price. Survey Analytics is a suite of interconnected and easy- to-use information collection and analysis.
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)
DySy: Dynamic Symbolic Execution for Invariant Inference.
CPSC 171 Introduction to Computer Science 3 Levels of Understanding Algorithms More Algorithm Discovery and Design.
SDMAY02 Personal Effort James McCollum (leader) EE 180 hours Scott Seieroe EE 165 hours Josh Nielsen EE 165 hours Scott Keister (reporter) EE 120 hours.
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
1 CSC 221: Introduction to Programming Fall 2013 See online syllabus (also accessible via BlueLine2): Course goals:  To develop.
Development and Transition in Results: January – June Print issue produced pageviews Roma content used by 8 media outlets in Hungary.
Teaching and Learning Programming and Software Engineering via Interactive Gaming Tao Xie University of Illinois at Urbana-Champaign In collaboration with.
Wiley eGrade. What is eGrade? Web-based software that enables instructors to automate the process of assigning and grading homework and quiz assignments.
ABI Instructions- Setting up your Gradebooks *skip to slide 10 for setting up a new quarter By Sarah Rosenkrantz
C# Tutorial -1 ASP.NET Web Application with Visual Studio 2005.
My.umich.edu Partial Integration of Dynamic Services with Visual Design.
Tao Xie North Carolina State University Nikolai Tillmann, Peli de Halleux, Wolfram Schulte Microsoft Research.
Indulge into Mathematics Mrs. Puckett 3 rd Grade Winter 2010.
10 August 2005Benchmark/Mentor Student Guide Page 1 CPS Benchmark/Mentor Student Guide Internet Edition.
Visual Basic Programming
1 CSC 221: Computer Programming I Fall 2005 See online syllabus (also accessible via Blackboard): 
Mining Gigabytes of Dynamic Traces for Test Generation Suresh Thummalapenta North Carolina State University Peli de Halleux and Nikolai Tillmann Microsoft.
Tutorial 2 Developing a Web Site. XP Objectives Learn how to storyboard various Web site structures Create links among documents in a Web site Understand.
Nikolai Tillmann, Jonathan de Halleux Tao Xie Microsoft Research Univ. Illinois at Urbana-Champaign.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Welcome To MOODLE Getting Started. Introductions Christa McLaughlin – High School math teacher and high school lead teacher of technology Jason Grubbs.
Chapter 9 Putting together a complete system. This chapter discusses n Designing a complete system. n Overview of the design and implementation process.
Cooperative Developer Testing: Tao Xie North Carolina State University In collaboration with Xusheng ASE and Nikolai Tillmann, Peli de
1 CSC 221: Computer Programming I Fall 2009 See online syllabus (also accessible via BlueLine): Course goals:  To develop.
INSTRUCTOR: JOAN RABIDEAU Unit 5 ~ CS119 is the fastest way to reach me to get assistance and support! AIM – joanlrabideau.
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.
GdI/ICS 1 WS 2009/2010 Telecooperation/RBG Prof. Dr. Max Mühlhäuser Dr. Guido Rößling Dr. Dirk Schnelle-Walka, Stefan Radomski.
CIS Intro to JAVA Lecture Notes Set July-05 GUI Programming –TextField Action Listeners, JEditorPane action listeners, HTML in a JEditorPane,
Model Counting with Applications to CodeHunt Willem Visser Stellenbosch University South Africa.
Improving Structural Testing of Object-Oriented Programs via Integrating Evolutionary Testing and Symbolic Execution Kobi Inkumsah Tao Xie Dept. of Computer.
LISTS. LEARNING OBJECTIVES Create a block that accepts a parameter Create a block that returns a value Create scripts that manipulates lists Incorporate.
16. CONCLUSIONS Rocky K. C. Chang 25 November 2015.
INTRODUCTION: WELCOME TO STAT 200 January 5 th, 2009.
11 Using the Keyboard in XNA Session 9.1. Session Overview  Discover more detail on how the XNA keyboard is implemented  Find out how to use arrays.
Symbolic Execution in Software Engineering By Xusheng Xiao Xi Ge Dayoung Lee Towards Partial fulfillment for Course 707.
Experience with Code Hunt in K-12 Alfred Thompson Bishop Guertin High School
POWERTEACHER PRO Quick Start – To get started immediately and begin taking advantage of PTP, perform the following tasks… Greetings Grader and welcome.
Dynamic Symbolic Execution
Information Technology Deanship
Study Island Teacher Training
Preliminary Analysis of Contestant Performance for a Code Hunt Contest
DevOps - Visual Studio Release Management Jump Start
Diagnostic Evaluation
Tableau Desktop depends on the breakthrough technology that lets you drag and drop to analyze data. You can associate with information.
Presentation transcript:

Code Hunt: Experience with Coding Contests at Scale Judith Bishop, R Nigel Horspool, Tao Xie, Nikolai Tillmann, Jonathan de Halleux Microsoft Research, University of Victoria and UIUC

Working and learning for fun Enjoyment adds to long term retention on a task Discovery is a powerful driver, contrasting with direct instructions Gaming joins these two, and is hugely popular Can we add these elements to coding? Code Hunt can!

Websites Game Project Community Data Release Blogs research.microsoft.com/codehunt research.microsoft.com/codehuntcommunity github.com/microsoft/code-hunt Linked on the Project page

The Code Hunt Game

Code Hunt Is a serious programming game Works in C# and Java (Python coming) Appeals to coders wishing to hone their programming skills And also to students learning to code Code Hunt has had over 300,000 users since launching in March 2014 with around 1,000 users a day Stickiness (loyalty) is very high

The Story

Gameplay 1.User writes code in browser 2.Cloud analyzes code – test cases show differences As long as there are differences: User must adapt code, repeat When they are no more differences: User wins level! secret code test cases

It’s a game! 1.iterative gameplay 2.adaptive 3.personalized 4.no cheating 5.clear winning criterion Score is based on how many puzzles solved, how well solved, and when solved secret code test cases

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

Available in Visual Studio since 2010 (as Pex and Smart Unit Tests) Powered by a IntelliTest in Visual Studio 2015 Nikolai Tillmann, Jonathan de Halleux, Tao Xie: Transferring an automated test generation tool to practice: from pex to fakes and code digger. ASE 2014: Jonathan de HalleuxTao XieASE 2014

Code Hunt Contests

Code Hunt PropertiesCode Hunt Contests Browser-basedHave world-wide reach on all platforms Automatic gradingAre cost effective Cloud based hostingScale to 100,000s players Clear scoring criteriaDetermine winners precisely Results availableCan identify top coders The game is fun, fresh and different.

The ah-ha moment Code Hunt can identify top coders

30 Contests in the past year

What the player sees

Dashboard and Leaderboard Publically visible when the contest ends Visible only to the organizer

Puzzles and Analytics

Puzzles About 400 puzzles Classified and rated by difficulty Puzzle Bank is highly protected PuzzleGroupDescriptionSource Difficult y Calculat edPlayers P249-1numbersCompute 23*X-42NH21335 P277stringConvert N to base 4 stringNH23332 P115arrayConvert array of scores to letter gradesAPCS32329 P002arrayCount occurrences of a string in an arrayAPCS12325 P260-1boolsCompute x && (y || !z)NH12325 Number: P067 Group: Arrays Description: Remove duplicates from an array Source: NH Difficulty: 2

Puzzle Bank Statistics Modify the Calculated rating based on user experience. D = a + tries * b + tries * c * distance where a, b and c are constants with values a = 1 b = 0.02c = 0.05 tries is the average attempts for all players who solved the puzzle distance is the number of levels solved so far. Tries does depend on Mix of students who enter The internet speed Whether students use an IDE in addition

Laser, Sept 2014 Original Difficulty Average Calculated Difficulty s Total Try Count Average Try Count Max Try Count Total Solved Users

How players perceive difficulty Beauty of ProgrammingSubjective difficulty Perceived difficulty Players who started Qualification Preliminary A Preliminary B Semi-Final CSTA and TEALSSubjective difficulty Calculated difficulty Players who scored Students Teachers

Code Hunt - the APCS (default) Zone Opened in March problems covering the Advanced Placement Computer Science course By August 2014, over 45,000 users started.

Effect of difficulty on drop off in sectors 1- 3 Yellow – Division Blue – Operators Green - Sectors

Aug 2014 and Feb 2015 PuzzleLevelAugFeb-A Compute -X Compute 4 / X Compute X-Y Compute X/Y Compute X% Compute 10%X Construct a list of numbers 0..N Construct a list of multiples of N Compute x^y Compute X! the factorial of X Compute sum of i*(i+1)/

One week 3-10 October, 2014 One year May 2014 – April 2015

Survey results – before and after contest season How much did the puzzle aspect of Code Hunt keep you interested in reaching a solution? Till Sept 2014 Sept 2014 – May 2015

Survey Results cont. In your opinion, were your final solutions well-structured code? Till Sept 2014 Sept 2014 – May 2015

Gender and Code Hunt FemaleMale Respondents12%80% Played as practice for a course in C# 11%18% Played as practice for a course in Java 40%23% Played for own enjoyment 47%57% Open survey with 850 respondents

Beyond contests

Towards a Course Experience

Total Try Count Average Try Count Max Try Count Total Solved Users Public Data release in open source For ImCupSept 257 users x 24 puzzles x approx. 10 tries = about 13,000 programs For experimentation on how people program and reach solutions Github.com/microsoft/code-hunt

Upcoming events PLOOC 2015 PLOOC 2015 at PLDI 2015, June , Portland, OR, USA PLDI 2015 CHESE 2015CHESE 2015 at ISSTA 2015, July 14, 2015, Baltimore, MD, USAISSTA 2015 Worldwide intern and summer school contests Public Code Hunt Contests are over for the summer Special ICSE attendees Contest. Register at aka.ms/ICSE2015 Code Hunt Workshop February 2015

Summary: Code Hunt: A Game for Coding 1.Powerful and versatile platform for coding as a game 2.Unique in working from unit tests not specifications 3.Contest experience fun and robust 4.Large contest numbers with public data sets from cloud data Enables testing of hypotheses and making conclusions about how players are mastering coding, and what holds them up 5.Has potential to be a teaching platform collaborators needed

Websites Game Project Community Data Release Blogs Office Mix ICSE Contest research.microsoft.com/codehunt research.microsoft.com/codehuntcommunity github.com/microsoft/code-hunt Linked on the Project page mix.office.com aka.ms/icse2015 to register Aka.ms/icse2015codehunt to play Grazie!

Appendix

Results and rewards Detailed results are presented Ranking is always based on score, not on time or attempts Score is based on how many puzzles solved, how well solved, and when solved Special rewards for contests

Comparing Code Hunt Code Hunt A serious online coding game Built on symbolic execution Addressing various audiences Data available in the cloud IPCC Annual programming contest Scored by unit testing Addressing university students Questions available on the web

BoP China 2014