Download Research Tools
Well, now it is. Today, we are pleased to announce the launch of Code Hunt, a browser-based game for anyone who is interested in coding. We built Code Hunt to take advantage of the fact that any task can be more effective and sustainable when it’s fun. And Code Hunt is fun! It uses puzzles, which players explore by means of clues presented as test cases. Players iteratively modify their code to match the functional behavior of secret solutions. Once their code matches, lights flash and sounds play, letting players know that they have “captured” the code. Players then get a score, which depends on how elegant their solution is, and are encouraged to move on to the next puzzle or level.
When we demoed Code Hunt a few months ago, we were amazed at the interest it elicited across groups at Microsoft, from those involved with K-12 education to those focused on college recruiting. However, today we want to talk about how Microsoft Research Asia used Code Hunt during their annual Beauty of Programming (BOP) event, a competition that attracts thousands of students in the Greater China Region (GCR).
In the past, the BOP competition gave students specifications for problems and then checked their solutions automatically using a test suite. This is the traditional approach: students pit their wits against each other—and against the clock—to create a solution to a defined problem. While this kind of coding is similar to what they will encounter in courses or later in their careers, it isn’t necessarily fun.
Code Hunt is different. Instead of giving students a problem and comparing their solutions to a set of fixed test cases, Code Hunt does the opposite: it presents an empty slate to the user and a set of constantly changing test cases. It thus teaches coding as a by-product of solving a problem that is presented as pattern matching inputs and outputs. The fun is in finding the pattern. Fun is seen as a vital ingredient in accelerating learning and retaining interest during what might be a long and sometimes boring journey towards obtaining a necessary skill—or in this case, winning a competition. The GCR team recognized that Code Hunt would not only make the BOP competition more fun, but it would also enable them to check the solutions more quickly and accurately.
With considerable optimism, we opened Code Hunt to BOP competitors in April. In three rounds, 2,353 students scored in the game, and the contestants solved an average of 55.7% of the puzzles. Since Code Hunt runs on Microsoft Azure, we have all the statistics. We could see that, on average, it took players 41 tries to capture the code for puzzles. However, we were really interested in the 350 top students who solved all of the puzzles—even the most difficult ones. These students needed only 7.6 tries on average to solve a puzzle, showing that Code Hunt can reliably surface the better coders. From these students, 13 were selected to proceed to the finals, and we wish them luck.
Code Hunt was developed by a team in Microsoft Research led by Principal Development Lead Nikolai Tillmann and Principal Research Software Engineer Peli de Halleux. It is based on Pex, Microsoft Research’s state-of-the-art implementation of dynamic symbolic execution (analyzing a program to determine what inputs cause each part of a program to execute), which is available as a Power Tool in Microsoft Visual Studio.
We look forward to Code Hunt’s further application and would be happy to receive inquiries regarding competitions or courses. But remember, anyone can play Code Hunt—for fun or to hone their coding skills. Just go to www.codehunt.com and start coding!
—Judith Bishop, Director of Computer Science, Microsoft Research, and Guobin Wu, Research Program Manager, Microsoft Research Asia
Millions of people worldwide live with type 1 diabetes, a potentially devastating disease with no known cure. People who have type 1 diabetes do not produce insulin in their pancreas, so they must constantly monitor their blood sugar levels while balancing food intake against insulin intake. It’s a mentally taxing, painful process that must be repeated throughout the day.
A collaboration between Associate Professor Babak Parviz at the University of Washington (UW) and Microsoft Senior Researcher Desney Tan is focused on developing a non-invasive, technological solution that promises to improve both the health and overall quality of life for people with diabetes: a contact lens that monitors blood glucose levels. The functional lens technology is representative of a trend in technology known as Natural User Interface (NUI).
NUI technology has the potential to provide user benefits without being obvious to others or intrusive to the user. We believe it has tremendous potential in the healthcare industry, where technology is a necessary, but not always pleasant, part of a patient’s diagnosis or care. The functional contact lens is an excellent example of how NUI can change patient monitoring from “snapshots” of information to continuous health monitoring that could potentially improve the wearer’s overall health—especially for those with a chronic disease, such as diabetes.
Today, people with type 1 diabetes use needles to draw blood from their fingers multiple times throughout the day—every day, including meal times—to check their blood glucose levels. By monitoring their glucose levels, they can more easily ensure that they maintain an acceptable glucose level, which is critical to optimal health and longevity for diabetes patients.
The Daily Impact of Diabetes
Daily, repeated blood draws are a painful necessity for people with diabetes. This process has limitations because the monitoring is only periodic. Diabetics may experience glucose fluctuations that require correction—for example, by increasing insulin intake or eating a piece of candy to raise their blood sugar level—anytime of the day. Regular glucose monitoring, in addition to sensible dietary choices, are part of daily life for Kevin McFeely, who was diagnosed with type 1 diabetes 30 years ago, and his two young children, who also have diabetes.
“If I don’t check my blood sugar, or my children don’t check their blood sugar daily, there are some different things that could potentially happen,” he explained. “If my blood sugar gets too high, I have noticed that my vision begins to blur, I begin feeling nauseous, very, very tired, and just almost physically sick. And potentially, if I let that go, I could pass out from having high blood glucose.”
Low blood sugar also presents a danger to people with diabetes. If glucose falls too low, a diabetic may begin to sweat, suffer an elevated heart rate, and potentially lose consciousness. So it is critical that diabetics monitor their blood glucose on a regular basis throughout the day. McFeely’s children, who are ages seven and ten, are responsible for managing their disease and monitoring themselves at school throughout the day.
“I’m used to testing myself six to eight times per day. I’ve been doing it for 30 years,” McFeely says. “But boy, when I think about my children… I mean, you have a spring-loaded needle that’s coming into your finger, and it hurts them. I can see their faces [when they test], and I can see them cringe.”
A New Approach to Monitoring Health
As envisioned, the lens would be worn daily, just like regular contact lenses. But instead of, or in addition to, correcting vision, the lens would monitor the wearer’s glucose level through their tears. Much of the information that can be obtained through blood testing is also accessible on the surface of the eye. The functional lens is being designed to sample eye fluid, analyze it, and transmit the information to a reporting machine. A tiny radio transmitter embedded in the lens will handle the information transfer.
Parviz’s team at UW has built a variety of contact lenses with small radios and antennas built in, enabling them to draw power as well as send and receive information through radio frequencies. Also, the UW team has been able to place a glucose sensor on the contact lens and demonstrate that it can detect glucose at levels that are found in the tear film. The goal is to unite these elements to develop a contact lens that constantly monitors the blood glucose level and records information that can be accessed later by the patient’s doctor.
McFeely is hopeful that technology, like the functional contact lens, can improve the monitoring and care options available to his children. “Thinking about the functional contact lens for my children who are both type 1 diabetic—I think that would be incredible,” he said. “Given that my children are diagnosed at such a young age, it does have the potential to help them live a longer, healthier life.”
Visualizing Future Applications
Ideally, the lens will do more than just record information. The UW team envisions a way to automatically display important information—including abnormal glucose or insulin alerts—in the lens wearer’s view. It could alert the wearer when they should stop eating due to glucose levels, or remind them when it’s time to get a snack. This real-time feedback would empower the user to react quickly, avoiding health-threatening or uncomfortable episodes. The visual information would be dormant the rest of the time, adhering to the NUI idea of being unobtrusive until needed.
Once fully developed, the technology could be used to replace virtually any screening or diagnostics that currently depend upon blood draws. Additionally, the researchers who are involved in the project envision a future in which contact lenses deliver medicine directly into the bloodstream through the cornea.
—Kristin Tolle, Director, Natural User Interface, Microsoft Research Connections
Today, we are excited to announce the latest release of Try F#, a set of resources that makes it easy to learn and program with F# in your browser. It’s available over a wide range of platforms and doesn’t require a download of Microsoft Visual Studio. Try F# quickly reveals the value of the versatile F# programming language.
Try F# enables users to learn F# through new tutorials that focus on solving real-world problems, including analytical programming quandaries of the sort that are encountered in finance and data science. But Try F# is much more than a set of tutorials. It lets users write code in the browser and share it with others on the web to help grow a community of F# developers.
This latest release of Try F# is an evolution that keeps the tool in synch with the new experiences and information-rich programming features that are available in F# 3.0, the latest version of the language. The tutorials incorporate many domains, and help users understand F#’s new powerful “type providers” for data and service programming in the browser-based experience.
F# has become an invaluable tool in accessing, integrating, visualizing, and sharing data analytics. Try F# thus has the potential to become the web-based data console for bringing “big and broad data,” including the associated metadata, from thousands of sources (eventually millions) to the fingertips of developers and data scientists. Try F# helps fill the need for robust tools and applications to browse, query, and analyze open and linked data. It promotes the use of open data to stimulate innovation and enable new forms of collaboration and knowledge creation.
For example, to answer a straightforward question such as, “Is US healthcare cost-effective?” researchers now need to look at several datasets, going back and forth between an integrated development environment (IDE) and webpages to figure out if they’ve found what they need.
With Try F#, a researcher can quickly and easily access thousands of schematized and strongly-typed datasets. This presents huge opportunities in today’s data-driven world, and we strongly encourage all developers and data scientists to use Try F# to seamlessly discover, access, analyze, and visualize big and broad data.
—Evelyne Viegas, Director of Semantic Computing, Microsoft Research Connections—Kenji Takeda, Solutions Architect, Microsoft Research Connections