Figure 1. Gidget's level design mode (the Gidget character is circled). In this mode, learners design their own levels for others to solve. Players write code (left) that can include graphics (right), and see animated results (middle), and graphics for the level are on the right. Corvallis, Oregon, USA Abstract-Although there are many systems designed to engage people in programming, few explicitly teach the subject, expecting learners to acquire the necessary skills on their own as they create programs from scratch. We present a principled approach to teach programming using a debugging game called Gidget, which was created using a unique set of seven design principles. A total of 44 teens played it via a lab study and two summer camps. Principle by principle, the results revealed strengths, problems, and open questions for the seven principles. Taken together, the results were very encouraging: learners were able to program with conditionals, loops, and other programming concepts after using the game for just 5 hours.
Abstract-MicrosoftTouchDevelop is a programming environment enabling users use their phones to create scripts that run on the mobile phones. This is achieved via a semi-structured editor and a programming language with several distinctive features, such as support for using smartphone hardware. In order to uncover opportunities for future tool development aimed at facilitating end-user programming of phones on phones, we have investigated the kinds of scripts that people are creating with the current tool set as well as what problems they ask for help with solving. This paper is the first to study how end-user programmers "in the wild" are programming mobile phones. In particular, no previous study has investigated the ways in which end users programmatically use mobile phones' special hardware (e.g., GPS, accelerometer, gyroscope) for practical everyday purposes. We discovered that, in essence, people are using TouchDevelop to create apps: downloadable applications with small, fairly reliable feature sets that take advantage of mobile hardware. In addition, we identified several areas for further innovation aimed at enhancing the programming tool and the online repository where users share scripts with one another.
Many systems are designed to help novices who want to learn programming, but few support those who are not interested in learning (more) programming. This paper targets the subset of end-user programmers (EUPs) in this category. We present a set of principles on how to help EUPs like this learn just a little when they need to overcome a barrier. We then in stantiate the principles in a prototype and empirically investigate the principles in two studies: a formative think-aloud study and a pair of summer camps attended by 42 teens. Among the surpris ing results were the complementary roles of implicitly actionable hints versus explicitly actionable hints, and the importance of both context-free and context-sensitive availability. Under these principles, the camp participants required significantly less in person help than in a previous camp to learn the same amount of material in the same amount of time.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.