Conference Paper

Engage Your Students by Teaching Computer Science Using Only Mobile Devices with TouchDevelop

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

We are experiencing a technology shift: powerful and easy-to-use touchscreen-based mobile devices such as smartphones and tablets are becoming more prevalent than traditional PCs and laptops. Many mobile devices are going to be the first and, in less developed countries, possibly the only computing devices that virtually all people would own and carry with them at all times. We propose to reflect this new reality in how computer science is taught in the classroom. In this tutorial, participants will learn about developing software directly on smartphones without a PC using TouchDevelop on Windows Phone, a novel application-creation environment from Microsoft Research. Its typed, structured programming language is built around the idea of using only a touchscreen as the input device to author code. Easy access to the rich sensor and personal data available on a mobile device results in a fun and engaging programming experience for students.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... Given the context of learning about computers, it is normal that many learning activities are accomplished and conveyed by means of computing devices. Consequently, several computer science courses integrate mobile learning, and many mobile learning environments have been developed for the field [23][24][25][26][27]. Moreover, familiarizing students with mobile applications in computer science education could help them establish a link between the learning content, the practical applications, and the devices they use daily [28]. ...
... TouchDevelop [25,84,85] TouchDevelop is an application-creation environment aimed at aiding learners to develop applications directly on smartphones. TouchDevelop has a typed, structured programming language built around the idea of using only a touchscreen as the input device to author code. ...
Book
Full-text available
This research focuses on the development of a mobile learning system in the context of Nigerian higher education institution. Mobile learning is an important component of the digital-age educational sector, and plays a key role in ubiquitous learning. Similarly, mobile learning is an increasingly important area in computer science discipline. Although several definitions of the term mobile learning exist, in this research mobile learning refers to teaching and learning approach that employs wireless technologies and mobile devices to support access to learning resources, promotes student direct engagement and interaction regardless of time, place, and context. The changes experienced by mobile learning over the past decade remain unprecedented. However, practical development and contextualization of mobile learning systems are rather inadequate. Recent developments in mobile learning have heightened the need for a mobile learning application that will aid the pedagogy of several topics in computer science education. Moreover, developing countries such as Nigeria have a shortage of mobile learning environments. Therefore, this dissertation seeks to explain the development of mobile learning system for computer science education in Nigerian context. The study stimulates good practice and promotes theoretical underpinning of mobile learning. Part of the aim of this study is to develop an application that will support learning of computing courses on mobile devices and offer guiding principles for integrating mobile learning into mainstream education. This dissertation follows a design science research, with in depth analysis of existing systems, development of a mobile learning application, MobileEdu, testing the application in concrete settings and evaluation of the system for state-of-the-art. After several initial exploratory studies and systematic literature survey, MobileEdu was developed to aid teaching and learning of computer science courses on mobile devices. The concrete settings for both demonstration and evaluation of MobileEdu are mainly Nigerian Universities. Furthermore, the study applied both qualitative and quantitative methods to investigate whether the use of MobileEdu improved learning achievement, pedagogical experience, and students’ attitude towards computer science education. The findings from the evaluation are encouraging, and indicate that MobileEdu aided improvement in learning achievement of students. Besides, students’ pedagogical experience and attitudes towards computer science education were positive. Therefore, this study makes a major contribution to research on mobile learning by demonstrating a contextualized artifact. In addition, it offers a theoretical extension of work related to implementing successfully a mobile learning-supported computer science education.
... The motives are believed to offer the most intuitive explanation for online game excessive use (Lee, Cheung, & Chan, 2014), and explain why some ITs are more addictive than others (Turel & Serenko, 2012). In this study, we expect that smartphone users are often motivated to achieve instant gratification by using various mobile applications (Tillmann, Moskal, de Halleux, Fähndrich, & Xie, 2012). Lee, Chang, Lin, and Cheng (2014) and Lee, Cheung, et al. (2014) revealed that checking repetition on smartphones can be reinforced because of the quickly accessible gratifications. ...
... Instant gratification highlights the extent to which utilitarian needs can be fulfilled instantly. In the context of smartphones, users are prone to achieve instant gratification by using the devices' various functions (Tillmann et al., 2012). Prior research posits that if a system is designed to be capable of meeting users' needs (e.g., immediate feedback), then users are more likely to be satisfied and reach to the flow state (Chou & Ting, 2003). ...
Article
Smartphones have gained significant popularity. With the rising concerns of compulsive smartphone use, understanding how smartphone users develop compulsive behaviors is crucial. In this study, we aim to investigate the role of flow in the formation of compulsive smartphone use. Drawing upon the flow theory, we incorporate the psychological state of flow as a key factor in our research model. We identify its determinants based on the desirability–feasibility perspective and reinforcement sensitivity theory. We empirically test our model by conducting an online survey with 384 valid responses. We expect that our findings can provide noteworthy insights on the formation of compulsive smartphone use.
... Ayrıca, Microsoft firmasının araştırmacıları tarafından yazılan bir makalede, programlama eğitiminin geleceğinin mobil cihazların üstünde olması öngörülmektedir [3]. Mobil Yazılım Mühendisliği eğitim ve öğretim konularında birçok uluslararası makale yayınlanmıştır [3][4][5][6][7][8][9][10][11][12]. Bunlara örnek olarak, [4,6,7,12] makalelerindeki çalışmalardan aşağıda kısaca bahsedilecektir. ...
... Mobil yazılım dersleri [3][4][5][6][7][8][9][10][11][12] ...
... • CodePads [52] • Mobidev [53,61] • TouchDevelop [5,7,35,67,69] • Code Space [12] • Touching Factor [23] • RefactorPad [58] • GROPG [48] • Touchifying an IDE [11] • Deverywhere [19] • Syntax-directed keyboard extension [2,3] • Programming-specific gestures [6] • Java-learning application [38] • Examples of Visual Programming [14,15,21,25,28,40,64,65] • Examples of Static code annotation [4,27,41,55] • Examples of aids for code comprehension [9,36,54,66] 18 research papers (and additional example papers on visual programming and code annotation) to guide practitioners in this area. We also review two aspects of the design processes in the papers whose consideration is important for future research on this topic -the tradeoffs in enabling programming support on mobile devices and employing HCI methods particularly in the design of programming tools on mobile devices. ...
Conference Paper
"What design innovations can the ubiquity and features of mobile devices bring to the programming realm?" has been a long-standing topic of interest within the human-computer interaction community. Yet, the important design considerations for using mobile devices in programming contexts have not been analyzed systematically. Towards this goal, we review a sample of the existing research work on this topic and present a design space covering (i) the target contexts for the designed programming tools, (ii) the types of programming functionality supported, and (iii) the key design decisions made to support the programming functionality on the mobile devices. We also review the design processes in the existing work and discuss objectives for future research with respect to (i) the trade-offs in enabling programming support given the constraints of mobile devices and (ii) applying human-centered methods particularly in the design and evaluation of programming tools on mobile devices.
... App Inventor seems to be a promising technology for quickly boot strapping with little programming experience into mobile application design, while powerful enough at the same time to engage more experienced learners (MacKellar, 2012). TouchDevelop makes it possible to write application directly on mobile devices without the need for a separate computer (Tillmann et al. 2012a). However, several less frequently cited mobile apps in existing literature seem to suggest that researchers are developing their own platforms as alternatives to the most frequently used App Inventor and TouchDevelop in computing education. ...
Article
The majority of the existing research regarding mobile learning in computing education has primarily focused on studying the effectiveness of, and in some cases reporting about, implemented mobile learning solutions. However, it is equally important to explore development and application perspectives on the integration of mobile learning into computing education and identify practical implications for learning and teaching practices. In this study, the authors performed a systematic review of scientific publications related to mobile learning in computing education. After identifying relevant publications, they analysed them from three main aspects: Technology and development, design of mobile learning solutions and applications, and implications for learning. The authors' study reveals that mobile learning in computing education has the potential to increase several affective traits of learners. In addition, mobile learning in computing education has matured enough to be mainly concerned with the mainstreaming of the computing curriculum rather than basic research.
... They found that for small tasks, a programmer was more productive in writing TouchDevelop apps than writing Android apps. Tillmann et al. [10], [11] presented their successful experience on teaching middle and high school students programming using TouchDevelop, and proposed to switch future programming teaching to mobile devices. ...
Conference Paper
Full-text available
TouchDevelop represents a new programming environment that enables users to develop mobile applications directly on mobile devices. TouchDevelop has successfully drawn a huge number of end users, who have published thousands of TouchDevelop scripts online. To enhance end-user programming on mobile devices, we conduct a comprehensive field study of 17322 TouchDevelop scripts and 4275 users. Our study consists of an overall study on the characteristics of scripts (e.g., structural features, code reuse) and users (e.g., expertise), and a longitudinal study on how they evolve over time. Our study results show important characteristics of scripts such as dense external method calls, high code-reuse ratio, and also reveal interesting evolution patterns of users. The findings and implications in our study provide valuable guidelines for improving tool support or services for end users and increasing the popularity of end-user programming on mobile devices.
... There is some other work that includes an introduction and summary of TouchDevelop [5] as well as a report on the accessibility of TouchDevelop for high school and middle school students [9], [10]. The report finds great success with teaching high school and middle school students using TouchDevelop. ...
Article
Full-text available
TouchDevelop is a new programming environment that allows users to create applications on mobile devices. Applications created with TouchDevelop have continued to grow in popularity since TouchDevelop was first released to public in 2011. This paper presents a field study of 31,699 applications, focusing on different characteristics between 539 game scripts and all other non-game applications, as well as what make some game applications more popular than others to users. The study provides a list of findings on characteristics of game scripts and also implications for improving end-user programming of game applications.
Data
Full-text available
Conference Paper
Full-text available
When distributed clients query or update shared data, eventual consistency can provide better availability than strong consistency models. However, programming and implementing such systems can be difficult unless we establish a reasonable consistency model, i.e. some minimal guarantees that programmers can understand and systems can provide effectively. To this end, we propose a novel consistency model based on eventually consistent transactions. Unlike serializable transactions, eventually consistent transactions are ordered by two order relations (visibility and arbitration) rather than a single order relation. To demonstrate that eventually consistent transactions can be effectively implemented, we establish a handful of simple operational rules for managing replicas, versions and updates, based on graphs called revision diagrams. We prove that these rules are sufficient to guarantee correct implementation of eventually consistent transactions. Finally, we present two operational models (single server and server pool) of systems that provide eventually consistent transactions.
Article
Full-text available
A common problem faced by modern mobile-device platforms is that third-party applications in the marketplace may leak private information without notifying users. Existing approaches adopted by these platforms provide little information on what applications will do with the private information, failing to effectively assist users in deciding whether to install applications and in controlling their privacy. To address this problem, we propose a transparent privacy control approach, where an automatic static analysis reveals to the user how private information is used inside an application. This flow information provides users with better insights, enabling them to determine when to use anonymized instead of real information, or to force script termination when scripts access private information. To further reduce the user burden in controlling privacy, our approach provides a default setting based on an extended information flow analysis that tracks whether private information is obscured before escaping through output channels. We built our approach into TouchDevelop, a novel application-creation environment that allows users to write application scripts on mobile devices, share them in a web bazaar, and install scripts published by other users. To evaluate our approach, we plan to study a portion of published scripts in order to evaluate the effectiveness and performance of information flow analysis. We also plan to carry out a user survey to evaluate the usability of our privacy control and guide our future design.
Article
Full-text available
The number of applications available in mobile marketplaces is increasing rapidly. It's very easy to become overwhelmed by the sheer size of their codebase. We propose to use code clone analysis to help manage existing applications and develop new ones. First, we propose an automatic application ranking scheme based on (dis)similarity. Traditionally, applications in app stores are ranked manually, by user or moderator input. We argue that automatically computed (dis)similarity information can be used to reinforce this ranking and help in dealing with possible application cloning. Second, we consider code snippet search, a task commonly performed by application developers. We view it as a special instance of the clone detection problem which allows us to perform precise search with little to no configuration and completely agnostic of code formatting, variable renamings, etc. We built a prototype of our approach in TouchDevelop, a novel application development environment for Windows Phone, and will use it as a testing ground for future evaluation.
Article
Full-text available
Scratch is a visual programming environment that allows users (primarily ages 8 to 16) to learn computer programming while working on personally meaningful projects such as animated stories and games. A key design goal of Scratch is to support self-directed learning through tinkering and collaboration with peers. This article explores how the Scratch programming language and environment support this goal.
Article
Full-text available
The world is experiencing a technology shift. In 2011, more touchscreen-based mobile devices like smartphones and tablets will be sold than desktops, laptops, and netbooks combined. In fact, in many cases incredibly powerful and easy-to-use smart phones are going to be the first and, in less developed countries, possibly the only computing devices which virtually all people will own, and carry with them at all times. Furthermore, mobile devices do not only have touchscreens, but they are also equipped with a multitude of sensors, such as location information and acceleration, and they are always connected to the cloud. TouchDevelop is a novel application creation environment for anyone to script their smartphones anywhere -- you do not need a separate PC. TouchDevelop allows you to develop mobile device applications that can access your data, your media, your sensors and allows using cloud services including storage, computing, and social networks. TouchDevelop targets students, and hobbyists, not necessarily the professional developer. Typical TouchDevelop applications are written for fun, or for personalizing the phone. TouchDevelop's typed, structured programming language is built around the idea of only using a touchscreen as the input device to author code. It has built-in primitives which make it easy to access the rich sensor data available on a mobile device. In our vision, the state of the program is automatically distributed between mobile clients and the cloud, with automatic synchronization of data and execution between clients and cloud, liberating the programmer from worrying (or even having to know about) the details. We report on our experience with our first prototype implementation for the Windows Phone 7 platform, which already realizes a large portion of our vision. It is available on the Windows Phone Marketplace.