- Helping the Helpers: A Toolkit for Mobile Humanitarian Assistance Apps (M. Eng. Thesis)
Author: Weihua Li
My research investigates the following question How can relief workers be empowered to create useful mobile apps to support the work of first responder teams? Mobile devices are reshaping the disaster management domain and they make fast and targeted support possible. However there is the major obstacle of relief workers and volunteers often lacking the technical abilities to build and deploy the right mobile app in response to a particular disaster. In addition, data interoperability is often missing in many of the applications since they were developed without any prior agreement on the data schema. Linked Data technology solves the data interoperability problem by defining a method of publishing structured data and these structured data can be interlinked and become more useful. In order to explore and provide a solution to the gap between the knowledge of the relief workers and volunteers and the technical abilities needed to create an app, I conducted a participatory design workshop with the people at the International Committee of Red Cross and developed two mobile applications with one of the project managers there. In addition, I have created a DoItYourself (DIY) toolkit that includes: (1) a Mobile Linked Data App Kit: a streamlined process for creating mobile apps and (2) an appbuilding methodology: a set of principles for relief workers to follow while creating apps using the toolkit. The goal of this toolkit is to enable aid workers to create vital and necessary mobile apps and to empower the humanitarian community. User testing of the framework with first responders has shown that the idea of “using, modifying, and creating” an app is greatly favored by our participants, that mobile Linked Data applications can aid humanitarian organizations by increasing their impact and effectiveness, and that humanitarian workers can successfully develop and deploy mobile applications by using this toolkit.
- Evaluating and Improving the Usability of MIT App Inventor (M. Eng. Thesis)
Author: Aubrey Colter
MIT App Inventor is a blocks-based programming language for Android apps designed to teach programming skills to middle school and high school students. We aim to make app development accessible for all. Anyone learning to program must learn computational thinking methods; App Inventor users must also learn how to use the service. Our target users, teenagers and people without programming experience, often con ate the two learning processes: they think App Inventor is hard because learning to program is hard. As such, App Inventor needs a user interface that matches the conventions of commercially- available software our users already know how to use. Such an interface will allow them to focus on learning how to program and to transfer their knowledge and skills to other programming languages and environments. I designed several tasks and conducted a usability study on the existing, publicly- available App Inventor service. Users encountered 75 unique issues and a total of 157 issues. This is an average of 5 unique issues and 10.5 total issues per user. I made changes to the App Inventor source code that addressed 34 of the most common issues encountered. My intent was to make App Inventor both more usable to novice programmers and more similar to the programming environments that experienced programmers use. Finally, I conducted a usability study with the same tasks on the modi ed version of App Inventor. Users encountered 65 unique issues, including 19 issues encountered in the first study, and 107 total issues. Based on user comments and behavior, I conclude that my solutions resolved 21 of the original issues, partially mitigated 9 issues, and did not improved the usability of 4 issues.
- Progression of Computational Thinking Skills Demonstrated
by App Inventor Users (M. Eng. Thesis)
Author: Benjamin Xie
Abstract: I analyze skill progression in MIT App Inventor, an open, online learning environment with over 4.7 million users and 14.9 million projects/apps created. My objective is to understand how people learn computational thinking concepts while creating mobile applications with App Inventor. In particular, I am interested in the relationship between the development of sophistication in using App Inventor functionality and the development of sophistication in using computational thinking concepts as learners create more apps. I take steps towards this objective by modeling the demonstrated sophistication of a user along two dimensions: breadth and depth of capability. Given a sample of 10,571 random users who have each created at least 20 projects, I analyze the relationship between demonstrating domain-specific skills by using App Inventor functionality and generalizable skills by using computational thinking concepts.
I cluster similar users and compare differences in using computational concepts. My findings indicate a common pattern of expanding breadth of capability by using new skills over the first 10 projects, then developing depth of capability by using previously introduced skills to build more sophisticated apps. From analyzing the clustered users, I order computational concepts by perceived complexity. This concept complexity measure is relative to how users interact with components. I also identify differences in learning computational concepts using App Inventor when compared to learning with a text-based programming language such as Java. In particular, statements (produce action) and expressions (produce value) are separate blocks because they have different connections with other blocks in App Inventor’s visual programming language. This may result in different perceptions of computational concepts when compared to perceptions from using a text-based programming language, as statements are used more frequently in App Inventor than expressions.
This work has implications to enable future computer science curriculum to better leverage App Inventor’s blocks-based programming language and events-based model to offer more personalized guidance and learning resources to those who learn App Inventor without an instructor.
- Understanding App Inventor Forums (M. Eng. Thesis)
Author: Sylvan Tsai
MIT App Inventor is a visual blocks language that allows users to create mobile applications for Android. App Inventor users have the option of posting in a public support forum to discuss anything from specific programming issues to education is- sues. In order to leverage the information on the forums to improve App Inventor, we must first understand what is being discussed. In this thesis, we used unsupervised machine learning methods to automate discovery of discussion topics. First, we transformed posts into feature vectors using a bag-of-words model. Next, we clustered posts using k-means clustering and evaluated our results both quantitatively, by calculating the average silhouette of the posts, and qualitatively, by simply looking at the clusters of posts. Finally, we used LDA topic modeling to determine the topics being discussed and compared the extracted topic words to a manual evaluation of each cluster. Using this technique, we were able to uncover common problems with App Inventor that users encountered. We hope to use this information to improve users’ experience with App Inventor.
- A system of Applications for the Integration of
BLE Beacons in Museums (M. Eng. Thesis)
Author: Kristin Asmus
There is great potential for BLE beacon technology to be incorporated into museum exhibits to provide more enriching content to visitors and gather feedback to improve the museum overall. I developed a system of three applications to accomplish these goals: one for museum sta to easily deploy and update beacons, another for visitors to engage with the supplemental material transmitted by beacons at various exhibits, and a third for museum sta to understand visitors’ interactions and feedback provided by the beacons. I implemented two versions of the system according to two different beacon protocols: Eddystone- UID, which broadcasts to a dedicated mobile app; and Eddystone-URL, which broadcasts to mobile browsers via the Physical Web. Each system was tested in a real-world context through experiments hosted by the MIT Museum. I analyzed the success and potential of such systems based on observations, participant responses, and data gathered via the system during the experiments. The reliability of BLE connections remains an issue, and beacon content only appealed to a small subset of visitors; however, those who interacted with the system valued the experience highly and the MIT Museum expressed interest in providing a richer experience for these visitors.
- Measuring the Usability and Capability of App Inventor to Create Mobile Applications
Authors: Benjamin Xie, Isra Shabir, Hal Abelson
Abstract: MIT App Inventor is a web service that enables users with little to no previous programming experience to create mobile applications using a visual blocks language. We analyze a sample of 5,228 random projects from the corpus of 9.7 million and group projects by functionality. We then use the number of unique blocks in projects as a metric to better understand the usability and realized capability of using App Inventor to implement specific functionalities. We introduce the notion of a usability score and our results indicate that introductory tutorials heavily influence the usability of App Inventor to implement particular functionalities. Our findings suggest that the sequential nature of App Inventor's learning resources results in users realizing only a portion of App Inventor's capabilities and propose improvements to these learning resources that are transferable to other programming environments and tools.
PROMOTO 2015, October 2015
- Analyzing Year One of a CS Principles PD Project
Authors: Ralph Morelli, Chinma Uche, Pauline Lake, Lawrence Baldwin
Abstract: The Mobile Computer Science Principles (Mobile CSP) project is an NSF-funded CS 10K project. Its goal is to train a new cohort of high school computer science teachers to teach an Advanced Placement (AP) level course based on the emerging Computer Science Principles (CSP) framework. Mobile CSP uses App Inventor, a graphical programming language for Android devices, to engage students in app building as a means to get them interested in computer science. This paper reports on the first year of this effort. In addition to describing the project’s Professional Development (PD) course, a 6-week, full-time summer course for teachers, and the Mobile CSP curriculum, the paper provides a preliminary analysis of demographic and performance data obtained from high school students who took the course during the 2013-2014 academic year.
SIGCSE 2015, March 2015
- Events-first programming in App Inventor
Authors: Franklyn Turbak, Mark Sherman, Fred Martin, David Wolber, and Shaileen Crawford Pokress
Abstract: Events are a central concept in computer science. They are becoming more important with the prevalence of mobile and web platforms that use event-based programming. Yet, events are typically taught late in the CS curriculum -- e.g., in a web programming or operating systems course. We have introduced events to CS0 students from day one using MIT App Inventor, a blocks-based programming environment that enables students to create apps for Android devices. This paper presents the system's event-based model, along with typical coding problems and best-practice approaches for solving them. We advocate for increasing early emphasis on events in the CS curriculum.
Journal of Computing Sciences in Colleges, 29(6), June 2014, p. 81–89.
- PrivacyInformer: An Automated Privacy Description Generator for the MIT App Inventor (M.S. thesis)
Author: Daniela Yidan Miao
Abstract: With the Advent of “smart” mobile phones and ubiquitous mobile applications, the pace at which people generate, access, and acquire data has accelerated significantly. In this thesis, we first examine how privacy concerns in the mobile apps market compromise the well-being of both app consumers and developers. Then, we study the problem with the lack of usable privacy documents in mobile apps. Subsequently, we propose a technical solution named PrivacyInformer, as an extension to the MIT App Inventor, a do-it-yourself mobile app building platform. This platform has a vast international user base, as well as a growing impact on the democratizing of mobile app building. We show that by analyzing the source code of mobile apps, PrivacyInformer can produce simple and useful privacy descriptions in both human-readable and machine-readable format. Finally, we conduct an exploratory user study to evaluate the effectiveness of PrivacyInformer from the app developer's perspective, as well as discuss the policy impact of such a tool in the mobile app development community.
- Democratizing Computing with App Inventor
Authors: David Wolber, Hal Abelson, Mark Friedman
Abstract: MIT App Inventor is a visual blocks language that enables beginners and non-programmers to create apps for theirphones and tablets. It has empowered thousands to create software with real-world usefulness, and see themselves as creators rather than only consumers in the mobile computing environment. Educationally, it offers a ”gateway drug”that can help broaden and diversify participation in computing education.
Mobile Computing and Communications Review, vol. 18, no. 4, October 2014
- Live Programming of Mobile Apps in App Inventor
Authors: Jeffrey Schiller, Franklyn Turbak, Mark Friedman, Hal Abelson, Johann Okerlund, José Dominguez, Andrew McKinney
Abstract: MIT App Inventor is a programming environment that lowers the barriers to creating mobile apps for Android devices, especially for people with little or no programming experience. App Inventor apps for a mobile device are constructed by arranging components with a WYSIWYG editor in a computer web browser, where the development computer is connected to the device by WiFi or USB. The behavior of the components is specified using a blocks-based graphical programming language. A key feature in making App Inventor accessible to beginning programmers is live programming: Developers interact directly with the state of the evolving program as it is being constructed, and changes made in the web browser are realized instantaneously in the running app on the device. This paper describes the live programming features of App Inventor and explains how they are implemented.
PROMOTO 2014, October 2014
- Understanding People's Preferences for Disclosing Contextual Information to Smartphone Apps
Authors: Shih, Fuming and Boortz, Julia Abstract: Smartphones have become the primary and most intimate computing devices that people rely on for their daily tasks. Sensor-based and network technologies have turned smartphones into a “context-aware” information hub and a vehicle for information exchange. These information provide apps and third party with a wealth of sensitive information to mine and profile user behavior. However, the Orwellian implications created by context-awareness technology have caused uneasiness to people when using smartphone applications and reluctance of using them . To mitigate people’s privacy concerns, previous research suggests giving controls to people on how their information should be collected, accessed and shared. However, deciding who (people or the application) gets to access to what (types of information) could be an unattainable task. In order to develop appropriate applications and privacy policies it is important to understand under what circumstances people are willing to disclose information.
- No Surprises: Measuring Intrusiveness of Smartphone Applications By Detecting Objective Context Deviations
Authors: Shih, Fuming, Zhang, Frances, and Weitzner, Daniel
ACM CCS Workshop on Privacy in the Electronic Society, (WPES 2013) We address the challenge of improving transparency for smartphone applications by creating tools that assesses privacy risk. Specifically, we invented a framework for qualitatively assessing and quantitatively measuring the intrusiveness of smartphone applications based on their data access behaviors. Our framework has two essential components. The first component is the Privacy Fingerprint, a novel visualization that is concise yet holistic. It captures each app's unique access patterns to sensitive personal data, including which types of behaviors and under which privacy-relevant usage contexts the data are collected. The second component is a new Intrusiveness Score that numerically measures out-of-context data collection, based on real data accesses gathered from empirical testing on 33 popular Android apps across 4 app categories. Specific attention is paid to the proportion of data accesses that occurs while the user is idle, raising the perceived level of intrusiveness and exposing the profiling potential of an app. Together, these components will help smartphone users decide whether to install an app because they will be able to easily and accurately assess the relative intrusiveness of apps. Our study also demonstrates that the Intrusiveness Score is helpful to compare apps that exhibit similar types of data accesses.
- Information Accountability for Mobile Financial Applications (M. Eng. thesis)
Author: Arun Karthik Saigal
Abstract:In this thesis, I designed and built three sets of applications for three different demographics - young people, elderly people, and people in the developing world - to enable them to be involved in their personal banking. Members of these demographics are not actively involved in their personal banking when compared to others. We believe that part of the discrepancy lies in the lack of convenience and accountability. Thus, we have developed applications, whereby the issues of convenience and accountability are addressed. The applications are built around mobile devices, which will likely make them accessible since members of these demographics are often on mobile devices. The applications are also built around rules that can be set by a responsible party, so that the users know exactly what can and cannot be done with their money (such as a father restricting the amount of money his son can withdraw, or what the money can be used for). Finally, we keep a history of every transaction, who initiated it, and an explanation given by the initiator so we can understand why it occurred. Using our applications, built around convenience and accountability, will allow banks to reach youth, elderly people, and people in the developing world in ways that they have not been able to previously.
- Democratizing Mobile App Development for Disaster Management
Authors: Shih, Fuming, Seneviratne, Oshani, Miao, Daniela, Liccardi, Ilaria, Kagal, Lalana, Patton, Evan, Meier, Patrick, and Castillo, Carlos
IJCAI Workshop on Semantic Cities
Abstract: Smartphones are being used for a wide range of activities including messaging, social networking, calendar and contact management as well as loca- tion and context-aware applications. The ubiquity of handheld computing technology has been found to be especially useful in disaster management and relief operations. Our focus is to enable developers to quickly deploy applications that take advantage of key sources that are fundamental for today’s net- worked citizens, including Twitter feeds, Facebook posts, current news releases, and government data. These applications will also have the capability of empowering citizens involved in crisis situations to contribute via crowdsourcing, and to communicate up-to-date information to others. We will leverage several technologies to develop this application framework, namely (i) Linked Data principles for structured data, (ii) existing data sources and ontologies for disaster management, and (iii) App Inventor, which is a mobile application development framework for non-programmers. In this paper, we describe our motivating use cases, our architecture, and our prototype implementation.
- Teaching the CS principles curriculum with App Inventor (abstract only)
Authors: Ralph Morelli, David Wolber, Shaileen Pokress, Franklyn Turbak and Fred Martin
Proceeding: SIGCSE '13 Proceeding of the 44th ACM technical symposium on Computer science education
Abstract: The CS Principles Project is an NSF-funded initiative to develop a breadth-first advanced placement (AP) course in computer science. App Inventor is a visual, blocks-based programming language that makes sophisticated computing concepts accessible to a broad range of students. This hands-on workshop, aimed at high school and undergraduate teachers, will introduce participants to lessons, homework exercises, project assignments, and assessment materials (quizzes, grading rubrics) that can be used in an App Inventor-based CS0 course. Participants will develop simple Android apps, using devices provided by the workshop, and will use them in the context of lessons and assignments that fit within the CS Principles framework.
- MIT App Inventor: Enabling Personal Mobile Computing
Authors: Shaileen Crawford Pokress, José Juan Dominguez Veiga
Abstract: MIT App Inventor is a drag-and-drop visual programming tool for designing and building fully functional mobile apps for Android. App Inventor promotes a new era of personal mobile computing in which people are empowered to design, create, and use personally meaningful mobile technology solutions for their daily lives, in endlessly unique situations. App Inventor's intuitive programming metaphor and incremental development capabilities allow the developer to focus on the logic for programming an app rather than the syntax of the coding language, fostering digital literacy for all. Since it was moved from Google to MIT, a number of improvements have been added, and research projects are underway.
PRoMoTo 2013 proceedings, October 2013
- Unlocking Smartphone Data for Educational Use in Teaching and Learning Environment
Authors: Shih, Fuming and Li, Weihua
Abstract:We address the challenges of applying smartphone data to improve the experiences of teaching and learning in the university environment. Specifically, we cre- ated a framework to collect, monitor and analyze student behavioral data and increase social interactions for educational uses. The framework has three essential components. The first component is App Inventor, a web-based platform with drag-and-drop tools for novices to create mobile apps that collect personal and environmental data. The sec- ond component is Reactive Data Store, an intuitive mechanism that connects multiple data sources and automates the tasks for analyzing personal data. The third compo- nent is a push notification mechanism that delivers personalized or group messages as the results of the real-time analysis and triggers more actions accordingly. Together, these components will transform people's campus experiences by unleashing the values of smartphone data. Lastly, we introduced the framework to a group of teachers in higher education with a focus group discussion to identify the plausible use cases in terms of performance assessments, pedagogy design and collaborative learning.
Smart University Workshop in Eighth International and Interdisciplinary Conference on Modeling and Using Context, November 2013
- Android Game Development with App Inventor
Abstract: Ever since App Inventor found a new home at MIT's Center for Mobile Learning in early 2012 (it was previously housed at Google), it has been receiving significant attention from educational communities that hope to use the tool to facilitate technology learning in the classroom and beyond. Much of App Inventor's current user base is teachers in high-schools and colleges, and as the tool continues to attract more users, it is likely that many of these users will be teachers of students in grades 3 thru 12 (i.e. students who are old enough to know how to use computers and design/develop apps, yet not experienced enough to get their hands dirty with the Android SDK). Students of this age group are quite fond of gaming, and so we anticipate that there will be a strong demand for developing graphically appealing, interactive single-player and multiplayer games using App Inventor in the coming years. It is therefore important that the App Inventor team at MIT prepare for the imminent growth of the App Inventor game development community. Accordingly, this thesis looks at where App Inventor currently stands with respect to game development and how its game development capabilities can be improved and extended.
- Blocks Languages for Creating Tangible Artifacts
Authors: Franklyn Turbak, Smaranda Sandu, Olivia Kotsopoulos, Emily Erdman, Erin Davis, and Karishma Chadha
Computer Science Department, Wellesley College, Wellesley, Massachusetts, USA
Abstract: Logo turtles and Henderson’s picture language have long been used to teach computational thinking by inspiring learners to construct programs that create complex geometric designs. We have developed visual blocks-based versions of these languages, TurtleBlocks and PictureBlocks, that allow users to transform their designs into tangible artifacts produced by laser cutters and vinyl cutters. Our languages embody two novel features. First, they use constructive area geometry to convert the geometric designs generated by our programs into formats suitable for laser and vinyl cutters. Second, they leverage static typing and polymorphism to provide a new way to reference the names of procedure parameters and local variables in a blocks language.
- Saathimobile and the rapid deployment of prototypes to build applications for social enterprise in the developing world
Authors: Arun K. Saigal and Amrita Saigal
Abstract:This paper describes a sales, marketing, and inventory management application, SaathiMobile, for the distribution of low-cost sanitary napkins, made out of waste banana fiber, to women in rural areas. It is being pilot tested in Hubli, Karnataka. This product has the potential to have great impact on the health and economic welfare of women in these areas. The product was developed using App Inventor, a rapid prototype deployment environment for Android.
Published in Proceeding ACWR '11 Proceedings of the 1st International Conference on Wireless Technologies for Humanitarian Relief, 2011 Pages 351-356
- Building Blocks for Mobile Games: A Multiplayer Framework for App Inventor for Android
Author: Bill Magnuson Thesis, Feb 2010
Abstract: Building Blocks for Mobile Games is a client-server multiplayer game building framework for the App Inventor for Android platform. The framework includes an App Inventor component and a game server running on Google App Engine. The client side component packages the complexity of web service calls, data transfer and game state management into a set of graphical code blocks that allow users without programming experience to create Android applications that can access the game server API. The default game server provides basic functionality that can be used to create simple multiplayer games and message passing applications, such as a multi user bulletin board. By using custom server modules, the game server can be enhanced to provide server commands that implement a wide range of operations. Custom modules were used with the system to develop a multi- player card game, a version of Bulls and Cows with a shared scoreboard, an ap- plication that accesses Amazon’s book search API and a pair of applications for creating, managing and voting in polls. Using App Inventor and the game framework, each of these applications can be created with only a basic understanding of mobile phones and client-server principles.