Download Research Tools
Launched a year ago, Code Hunt is a coding game that challenges players first to deduce a hidden problem from clues presented as unit tests and then to write a program to solve it. The game has been enormously successful, attracting more than 150,000 players from around the world and achieving amazing stickiness—99 percent of players return to the game within a week. In the process, it has become much more than an intriguing game. It has inspired Code Hunt competitions around the world and has become a vehicle for identifying top coding talent. It has also established itself as an educational presence, both as a tool for teaching coding and as a resource for analyzing how students learn to code.
Code Hunt challenges players to display their coding skills.
As bridge fanatics and crossword puzzle fans know, intellectual games breed competition, and Code Hunt was no exception. Soon, we were organizing weekend Code Hunt contests for students. Under the banner of Imagine Cup, we advertised the contests worldwide and offered them monthly from September 2014 through April 2015. Interest and involvement ran high.
Adam Żychowski of the Warsaw University of Technology typifies many contestants. “I really love Code Hunt Challenge and every month I wait for it with excitement,” says Żychowski. “In Poland, the challenge starts at 1:00 A.M., so it is very busy night for me.” Microsoft Imagine program lead John Scott Tynes adds, “Code Hunt has been very good for Imagine Cup—it drove thousands of new students to the main competition.” Our next set of challenges has a regional and local flavor, with contests specifically for China and India, as well as universities—starting with the University of Washington.
Imagine Cup Code Hunt Contest winners and new Puzzle Masters Dawid Bugajewski (Military University of Technology, Warsaw) and Vincent Hsiao (University of Maryland) with Puzzle Master Nigel Horspool in background
Code Hunt has an integrated scoring system, which rewards better-written programs. Top scores attract attention, and one successful player, Alexey Kolesnichenko from ETH Zurich, has recently been hired by the Microsoft Trustworthy Computing group. Other tech companies have contests to find top coders, but Code Hunt is unique in that it mixes the game with real learning, teaching students how to manage perplexing coding problems. But how does one help students who are baffled by a problem? While others have conducted research into building hint systems, most of these systems provide specific, built-in hints—which may not address each of the thousands of players’ different needs.
By contrast, the Code Hunt hint system, built by Microsoft intern Daniel Perelman, takes advantage of the game’s foundation of symbolic execution and data in the cloud. Since we have access to close to a million attempts from our players, we use data mining and program synthesis to generate hints that are relevant to the student’s progress. We thus take advantage of all the solutions in the cloud to assist students working on any solution strategy, including ones the teacher might not have chosen as the reference—or may not even have been aware of. Of course, hints are turned off during contests!
Example of the hint system in action
Believe it or not, scale and success bring their own problems. It is a challenge for us to continually devise new problems. To help us, we invited the top coders themselves to start submitting puzzles, and we now have a cohort of eager young Puzzle Masters. When first approached to be a Puzzle Master, Josua Meier from Karlsruhe University of Technology responded, “Using a gaming approach to teach coding paradigms is a very amazing concept. Making a contribution to this, however small, would be great.”
Faculty and researchers design new puzzles and games for Code Hunt. Pictured from left to right: Rishabh Singh (Microsoft Research), Armando Solar-Lezama (MIT), Amey Karkare (University of Kanpur), Alexey Kolesnichenko (ETH Zurich), Alessandro Orso (Georgia Tech), Nikolai Tillmann (Microsoft), and Willem Visser (University of Stellenbosch)
Now, with all the data we have, we can analyze it in order to find out how students learn and improve. In early February at the Code Hunt Workshop, we presented our first results showing that such simple concepts as division can be real obstacles that discourage students from continuing to code. Now, we have publicly released a data set of 13,000 programs on GitHub so that academics can continue to analyze the coding process.
So don’t wait for a contest to come to your school or region. Join the community at one of our upcoming workshops, try Code Hunt on your own, or download the data set and get into some deep analysis of how students learn to code.
—Judith Bishop, Director of Computer Science, Microsoft Research
As any student can tell you, university life can be stressful. Many freshmen find it difficult to adjust during their first months on campus. In addition, students who come from families with limited income may worry about living within their restricted budget. It’s no surprise, then, that many anxiety-ridden students develop poor eating and sleeping habits.
Researchers at the University of Science and Technology of China (USTC) and Microsoft Research are using Microsoft Azure and some clever coding to make life less stressful for students. Recognizing that a university campus resembles a miniature city, the researchers connected with the Microsoft Research Smart City initiative to build a collection of applications, called Smart Campus, to help beleaguered students.
The Palm USTC platform aggregates 15 widely used apps.
Now, incoming freshmen at USTC can download a suite of mobile apps that use location services and push notifications to familiarize themselves with the campus. These apps—which are useful to all students, not just freshmen—include an interactive map and location finder, campus bus schedules, and information on the availability of library resources and classrooms.
The smartphone apps work across several mobile operating systems, including Windows Phone, iOS, and Android. To make the apps more easily downloadable, the researchers have built a distribution platform called Palm USTC that includes the most popular apps.
Resource-constrained students, meanwhile, can take advantage of apps that monitor their shopping expenses and can automatically transfer available money to their campus smartcard, while all students benefit from apps that keep track of their coursework, grades, and borrowed library books.
Graduate student Wang Dan checks his lifestyle report on the Smart Campus website.
Some of the most valuable apps are those that help students stay healthy. These rely on the lifestyle analysis work of Microsoft senior researcher Xing Xie, and they include a website that allows easy access to the computing back end, complete with a crawler and behavior analyzer. Drawing data from the usage of campus smartcards, email, and social networks, the website can provide students with individualized health recommendations based on their habits. Graduate student Wang Dan, for example, uses the Smart Campus website to make sure that he eats regularly and doesn’t stay up too late.
Building a platform such as Smart Campus, which involves mobile services, a scalable website, and the technology to perform sophisticated data analytics, demands an enormous infrastructure and a massive investment of work hours—huge hurdles for universities, most of which have limited infrastructure and technology resources. But Microsoft Azure has made it possible to execute Smart Campus as an affordable, scalable, and easy-to-use suite of cloud services.
The developers, who include graduate students at USTC, deployed the data crawler and analysis programs by using A7 virtual machine instances, which are the core of Microsoft Azure’s IaaS (infrastructure as a service) model. The student developers benefited immensely from Azure’s industrial-grade development environment, which makes the creation of Azure Virtual Machine instances easy and permits everyone to work in the same environment.
Crawled data is saved on an independent Azure SQL Database, an architecture that ensures low-latency data transfer. In addition, the Azure-hosted web interface supports mainstream web development language and frameworks, while making it easy for students to bind their accounts and retrieve lifestyle reports.
A student's daily activity report provides the basis for lifestyle recommendations.
Xing Xie loves the practical aspect of the Smart Campus project. “It’s brought my lifestyle analysis research down to earth,” he says. Professor Guang-Zhong Sun, who leads the project at USTC, adds, “Microsoft Azure makes it convenient to try ideas quickly without wasting resources.”
Smart Campus is already providing USTC students with intelligent services, but the researchers are eager to make it even better. They are now collecting student feedback, with the intention to enhance the lifestyle advice apps and design a motivation mechanism that encourages students to use the system and heed its recommendations.
—Guobin Wu, Program Manager, Microsoft Research
Leaving an infirm, elderly relative alone at home can be a torment for both the senior citizen, who may face inconvenient or even life-threatening situations, and the family, who worries about the health and safety of their loved one. Unfortunately, this troubling scenario is becoming common in China and other Asian countries, as these nations join the worldwide trend of aging populations. China’s Harbin Institute of Technology (HIT) has launched a program to aid senior citizens who live alone. Called Smart Home Technologies, the program uses the Microsoft Research Lab of Things (LoT), a platform that facilitates research involving connected devices in homes. The program builds on the impressive progress that has been made in using technology for safety monitoring and emergency detection, and it offers great hope to elderly people and their loved ones.
Professor Nie controls the lights in room via the Smart Home platform based on LoT.
Joining the Lab of Things community
At the core of the program is a model smart home equipped with sensors that compile data on the well-being of the home’s inhabitants. This model home serves as a test environment for researchers from China and other Asian countries. HIT Professor Lanshun Nie, the program’s primary investigator, explains that the goal is to create alternatives to full-time home surveillance systems, which are prohibitively expensive for most families.
The first step for HIT researchers was to see how home sensors are being used to monitor senior citizens in Western countries. Then the HIT program developed a smart home environment that took into account cultural nuances specific to the behaviors and treatment of the aging populations in Asian societies. Nie worked with Arjmand Samuel, Microsoft Research’s senior research program manager for LoT, to design this Asian-specific test environment. Samuel also connected Nie with LoT researchers around the world, so that the HIT team could evaluate and adapt their deployment approaches. “With its diverse, global research community, Lab of Things enables research rooted in particular cultural contexts but driven by global trends”, says Samuel.
Nie and Samuel stress that it is critical to study different software frameworks connecting multiple heterogonous devices and multiple networks. Furthermore, these frameworks must support many concurrent applications; enable reliable data collection; and communicate between home devices, the cloud, and smartphones—and they must make it easy for developers to create third-party applications. The beauty of LoT, says Nie, is that it helps HIT researchers build such frameworks to provide a closed-loop service that enables researchers to focus on the sensor and data service, while LoT manages tasks like sensor registration, monitoring, and data transition.
Professor Nie and his student, Xue Li, test the robotic trolley.
Smart home in action: the robotic trolley
One of the first prototypes to emerge from the Smart Home Technologies is an intelligent robotic trolley that provides medical support to elderly people—sort of like an early version of the healthcare robot, Baymax, from the recent animated movie Big Hero 6. The trolley is designed to carry medications and offer reminders to take them on time. “Taking medicines is important, but sometimes older folks forget,” observes Nie. “We are also designing the trolley to recognize and react to some urgent situations,” he adds. “When the sensors detect a medical emergency—for instance, an asthma attack—the trolley will be activated and deliver the medicine the patient needs.” Nie further explains that the trolley might also use data from a Kinect sensor to detect and respond to abnormal situations, such as when an older adult falls or convulses.
According to Nie, the Kinect sensor, shown here, could help detect emergencies.
Getting from the trolley to a full-blown health and safety home monitoring system will take some work, but the HIT team and their LoT collaborators at Microsoft Research are convinced that Smart Home Technologies is on the right track. And for countless elderly shut-ins and their anxious families, that day cannot come too soon.
—Bei Li, Research Program Manager, Microsoft Research