Students’ Experiences from the use of MIT App Inventor in classroom Katerina Perdikuri 2nd Senior High School of Salamina, Greece Introduction - research work objectives This research work investigates whether MIT App Inventor : could be used for teaching programming could be used as a facility to develop computing skills and computational thinking to senior high school students The paper reports advantages and disadvantages of its use in classroom through students’ and teacher’s experiences A comparative study among other Android Application Development Tools Related research work Several research work has explored whether App Inventor could be a suitable environment for bringing computational thinking to K-12 and a number of projects have funded efforts to engage K-12 teachers interested in bringing computational thinking into their classrooms in USA. During school year 2013-2014 a teaching hour was devoted in several schools in Greece, named as “the coding hour”, to introduce programming to students from different educational levels. A number of teachers used App Inventor as an easily accessible platform to teach programming to their students. However, to better understand such possibilities, more data from actual classroom implementation are needed. The research reported in this work is an attempt to address this issue. An Introduction to MIT App Inventor (i) Developed at Google Labs by MIT’s Hal Abelson in 2009; It is now housed in the Center for Mobile Learning (CML) of MIT; Its current version is a cloud-based tool; It does not demand any prior programming experience – you do not have to write code; Designer’s window Blocks Editor An Introduction to MIT App Inventor (ii) Every application is stored in the App Inventor server; Real-time compilation (test as you build); Potential users: students, teachers, developers, or hobbyists, to develop apps for personal use, recreation, learning, or social good. Range of applications: Business, entertainment, community activism, etc Tested in emulator or exported in apk format for distribution; MIT App Inventor: technical characteristics The Blocks Editor has been App Inventor provides 2 components to facilitate db activity: TinyDB, to store data directly on the Android device; TinyWebDB, to store data in a web database Other high-level components include: GPS location and orientation sensors, text-to speech recognition, scanning barcodes, etc. written using the Blockly library, a web-based graphical programming editor comparable to Scratch (http://scratch.mit.edu) Android Application Development Environments Prior programming experience Free platform Open source Apps Android SDK √ √ All √ (mostly Java) Android Studio √ √ All √ (mostly Java) NDK √ √ All (game engines and simulations) Users with C, C++ experience HAC No No All None MIT App Inventor √ √ Growing daily None The above table summarizes 4 characteristics of Android Application Development Environments from an educational point of view and their ability of using them in classroom. Methodology followed The teaching intervention was conducted in 2 classes of the second grade of Senior High School as part of an introductory programming course. For each class 6 teaching hours were devoted during the second term of the school year 2013-2014. As part of the teaching intervention, students had to create (working in pairs) a number of applications either following specified instructions and worksheets given by the teacher or on their own initiative. Lesson plans “Getting Started” Time devoted 1 hour “Hello Purr” 1 hour Name Goals to be achieved Obtaining an App Inventor account Getting familiar with the App Inventor interface Setting up the computer and phone Using the Pallete and learning to use the various components Editing the properties of components Using the viewer Using the blocks editor Packaging and testing an app “Hello Purr” lesson plan Lesson plans “Getting Started” Time devoted 1 hour “Hello Purr” 1 hour “PainPot” 1 hour Name Goals to be achieved Obtaining an App Inventor account Getting familiar with the App Inventor interface Setting up the computer and phone Using the Pallete and learning to use the various components Editing the properties of components Using the viewer Using the blocks editor Packaging and testing an app Using advanced components (such as camera and canvas) Handling touch and drag events on the device surface. Using event handlers that take arguments. Introduction to variables “Paint Pot” lesson plan On a historical note, PaintPot was one of the first programs developed to demonstrate the potential of personal computers, as far back as the 1970s. In this version the user can also take his own picture and draw on it. Lesson plans “Getting Started” Time devoted 1 hour “Hello Purr” 1 hour “PainPot” 1 hour “Building my own App” 2 hours Name Goals to be achieved Obtaining an App Inventor account Getting familiar with the App Inventor interface Setting up the computer and phone Using the Pallete and learning to use the various components Editing the properties of components Using the viewer Using the blocks editor Packaging and testing an app Using advanced components (such as camera and canvas) Handling touch and drag events on the device surface. Using event handlers that take arguments. Introduction to variables Development of Computational skills in problem solving Experimentation with new components and blocks Apps developed by students piano Shooter game Lesson plans “Getting Started” Time devoted 1 hour “Hello Purr” 1 hour “PainPot” 1 hour “Building my own App” 2 hours Evaluating AppInventor 1 hour Name Goals to be achieved Obtaining an App Inventor account Getting familiar with the App Inventor interface Setting up the computer and phone Using the Pallete and learning to use the various components Editing the properties of components Using the viewer Using the blocks editor Packaging and testing an app Using advanced components (such as camera and canvas) Handling touch and drag events on the device surface. Using event handlers that take arguments. Introduction to variables Development of Computational skills in problem solving Experimentation with new components and blocks Recording students’ experiences and views from the use of App Inventor in classroom Student’s evaluation (i) The questionnaire included a total of 10 questions of which 7 were closed and 3 open-ended. 1. 2. 3. The first question aimed to investigate students' previous experience on programming languages and platforms. The six subsequent questions were devoted to assessing App Inventor as to the degree of difficulty and its characteristics, the future use of the platform, etc. The three final questions were open-ended, in which students were asked what they liked and what they disliked using App Inventor. Formation of the questionnaire was based on the Technology Acceptance Model proposed by Davis (1989). Student’s evaluation (ii) During our research work 40 questionnaires were collected from 2 classes and a total of 42 students. Students’ prior experience to programming languages was nonexistent, while few students were familiar with Pascal and Java. 10% 35% Ease of use of App Inventor Quite Easy 55% Bit difficult Very difficult Student’s evaluation (iii) As far as the characteristics of App Inventor are concerned, students rated: 1. "The making mobile application development easy and accessible to anyone" 2. “The reuse of apps within a community of users", 3. "Online testing of applications", 4. “The syntax-free programming”, and “The web-based architecture of the platform” 5. "Visual environment for the creation of an application’s user interface” Students’ notes in open questions “I learned a program that I could use for creating something interesting for my daily life” “I could not believe that creating apps for smartphones was so accessible and simple to test” Games and quiz 0% Games and quiz Future App0%Inventor Inventor Future use use of of App with upload at with upload at 26% GooglePlay 26% GooglePlay 84% None None Advantages and Disadvantages of MIT App Inventor from using it in classroom from a teacher’s point of view Advantages Disadvantages App Inventor provides an intuitive Requires a permanent Internet access (longprogramming metaphor, reducing the term responses) and a google account frustration from text-based programming environments Direct applications to students’ interests and lives (real-world motivation) The emulator is quite slow. Application development is introduced as 2 main activities: (1) components analysis and (2) components coding => problem solving skills The Blocks editor requires scrolling up or down in the case of complex or big applications Simple but also powerful tool (databases, interactive maps, client-server communication, etc) It does not constitute a cross-platform solution and it does not generate Java source code (the source code cannot be exported to Eclipse or other IDE to work on it further) Conclusions The students’ successful experience – albeit a small sample- strengthens the observation that App Inventor could successfully be used in introductory programming courses, making programming an enjoyable and creative activity. Developing applications for smartphones or tablets, which is important in students’ lives was an incredibly motivating and empowering process that led to a student-driven learning process in which the students learn how to solve problems. The ease with which students used App Inventor, along with the enthusiasm they displayed was truly remarkable. Programming courses, promote the development of computational skills in solving problems, such as abstraction and algorithmic thinking. Future work During the coming school year plans to continue the use of App Inventor in programming courses with more classes have been made and some of the future plans include: The development of a community within the school to encourage students to share applications and ideas; Studying other students’ applications or adapting existing code could promote resourcefulness, creativity, and self-initiative for students. Development of lessons plans to teach basic programming structures, such as: if-condition, repeats, etc; Explore the cooperation with different schools in order to assess how learning programming is achieved through mobile app development; A comparative study of App Inventor and other programming environments, which are used to introduce high school students to programming; Thank you for your attention Any questions? Katerina Perdikuri Computer and Informatics Engineer (MSc., Phd) E-mail: perdikur@ceid.upatras.gr