Teaching Computing and Programming Fundamentals via App Inventor for Android Murat Karakus, Suleyman Uludag, Evrim Guler, Stephen W. Turner
Ahmet Ugur
Department of Computer Science, Engineering & Physics University of Michigan - Flint Flint, MI 48502 {mkarakus, uludag, eguler, swturner}@umflint.edu
Department of Computer Science Central Michigan University Mount Pleasant, MI 48859
[email protected]
Abstract—In this age of growing importance for interdisciplinary studies, the field of computing, and its indispensable component, programming, have become increasingly important not only for STEM areas but also for many other fields. Computational chemistry, bio-informatics, computational linguistics, computational toxicology, etc. are just a few examples of the crossover disciplines that benefit significantly from the developments in the computing and Information Technology (IT). Instructors are facing more challenges today than ever in trying to come up with new, fresh and appealing methodologies to attract and retain students in delivering computing and IT related topics to a much broader audience. Computing courses and topics both for majors and non-majors need new approaches that motivate students to feel comfortable with the life-long learning of computing concepts and tools. The goal of this paper is to summarize our teaching experience in and the great potential of App Inventor for Android (AIA) in broadening the appeal and diffusion of fundamental computing and programming concepts. With a pedagogical foundation stemming from constructionist learning and contextualized computing education, we present our motivation and the details of courses that can greatly benefit from AIA.
I. I NTRODUCTION Student motivation to enroll in computing fields is in decline, and the problem is exacerbated when foundational computing courses are found to be uninteresting by the students. In contrast, demand for competent, trained information technology (IT) professionals and others with IT proficiency continues to rise. The strategic position of IT at the crossroads of Science, Technology, Engineering, and Mathematics (STEM) education is becoming more evident. The National Research Council (NRC) [1] 1 notes that providing engaging laboratory exercises is one of the challenges of effective undergraduate education in STEM fields [2]. One area of phenomenal growth in computing is the fast paced adoption of smartphones and tablets as a new computing platform. Mobile applications (or just apps) have brought new excitement and opportunities, as well as challenges, to the This work was generously supported in part by the Office of Research and Thompson Center for Learning and Teaching (TCLT) at the University of Michigan-Flint. 1 NRC functions under the auspices of the National Academy of Sciences (NAS), the National Academy of Engineering (NAE), and the Institute of Medicine (IOM), and as one of the four organizations that make up the National Academies.
field of computing and other areas of study. Mobile apps are so intertwined with our daily lives that it is now hard to imagine living without them. One cannot think of any dimension of human life that is not being transformed by means of the mobile apps and their development efforts. It is at this juncture that, in our opinion, a critical moment arises to exploit this opportunity to make learning computing topics more effective, fruitful and fun for both computing field majors and non-majors alike. The impact of mobile apps and tablets is highlighted by the Horizon Report in 2012 Higher Education Edition [3]. The Horizon Report identifies mobile apps as the fasting growing dimension of the mobile space in higher education in every discipline and tablet computing as affordable solutions for one-on-one learning and feature rich tools for field and lab work. We believe that diffusion and widespread understanding of computational thinking will expand the horizons of many fields of study. Further, computing with its fundamental component pRogramming is becoming, if has not already become, the fourth R of the basic literacy and education, the others being Reading, wRiting, aRithmetic2 and even earlier by Wing in [5]. It appears that the 1962 presage of the ACM Turing Award Winner Alan Perlis, that everyone should learn to program as part of a liberal education [6], is finding more support than ever in different academic circles. This paper presents a discussion of our experiences with App Inventor for Android (AIA). Here, we bring this exciting tool, for teaching computational and programming concepts and skills, to the attention of educators in academia and industry. The rest of this paper is organized as follows: Section II elaborates on the pedagogical dimensions. Section III presents the relevant work from the literature. We describe and summarize the power and potential of AIA in education in Section IV. A short of discussion of potential courses for which AIA is likely to contribute significantly is provided in Section V. Section VI concludes the paper.
2 The fourth R is noted as algoRithmic or computational thinking by Cathy Davidson in [4].
II. P EDAGOGICAL F RAME OF R EFERENCE The first pedagogical frame of reference of using AIA in teaching computing fundamentals, for both majors and nonmajors alike, is on the Constructionist learning theory [7], [8], by Papert, which is based on the constructivist theories of psychology by Jean Piaget. As noted in [9], Papert considers knowledge and learning as firmly grounded in contexts and shaped by their active and engaged uses. Constructionist learning is usually, albeit partially, mapped to the learn-bymaking or learn-by-doing motto, as noted by the originator in [7]: from constructivist theories of psychology, we take a view of learning as a reconstruction rather than as a transmission of knowledge. Then, we extend the idea of manipulative materials to the idea that learning is most effective when part of an activity the learner experiences as constructing a meaningful product, which is a mobile application in our case. The second theoretical frame of reference is active learning, as coined by Bonwell and Eison in [10]. Another pedagogical pillar is grounded in the Project-based learning methodology by Blumenfeld [11]. III. R ELATED W ORK The terminology for the introductory computing courses dates back to the 1978 ACM Curriculum Recommendations [12], in which a two-course sequence of CS1 and CS2 were first stated. Even though so much has changed since then in terms of technology, philosophy and structure, the CS1/CS2 duo is still widely used in the literature to refer to the introductory computing courses for majors. Significant growth in demand for computing graduates and the diffusion of computing fundamentals into most of the other fields of study have made apparent that an additional preparatory course prior to the CS1/CS2 sequence is warranted. This raised the issue of preparing majors for the CS1/CS2 sequence with additional content, and the term coined for this course has become CS0. However, no ACM Curricula Recommendations have included any definitions or models for CS0. Even though the literature is full of references to the CS0, CS1, and CS2 terms, there is no universally agreed upon delineation of these three courses in terms of their coverage. After the publication of the ACM Computing Curricula 2001, the distinction between CS0 and CS1 has become even fuzzier. Further, some issues of disagreement for CS0 include how much, if any, programming to include in CS0, whether to use a breadth-first or depth-first approach, and whether to use a separate CS0 for computing majors [13], targeted majors [14], [15] and non-majors [16], [17], [18]. Benefits of CS0/IT0 courses are discussed in [19], [20] for majors and in [21], [22] for the non-majors. A good summary of CS0 history from 1968 to the 1990s is given in [23]. A. Introductory Computing Course Objectives In the literature, the objective of CS0 courses fall into one or more of the following categories:
1) A service course that teaches some practical computing knowledge and/or meets a general education requirement at the institution [24], 2) To improve retention and success in subsequent CS courses, particularly CS1 [25], [26], 3) To provide a broad overview of the field, for prospective majors and non-majors alike. [27], 4) To increase diversity of students in the major [28], 5) To prepare students to analyze and address the current ethical, social and legal implications of the growing ubiquity of and increased reliance on technology [29], B. Choice of programming language Primary Secondary Tertiary Alice [30]-[33], [15], [19], [34] HTML [30], [35], [36] Lego Mindstorms [24] [30] Visual Basic [24] Scratch [37], [38], [34] Python [14], [39], [40] VPython [14] MatPlotLib [14] Java [37] Flash [15] GameMaker [41], [42] javaScript [13], [27] Greenfoot [43] C++ [13] C# [41] Robotics [44], [30] [31] JPie [45] MATLAB [46] StarLogo TNG [47] karel [48] Drizzle [49] Visual Logic [50] Sibelius [15] Jeroo [51] OOPIC [52] TABLE I VARIETY OF LANGUAGES USED IN INTRODUCTORY PROGRAMMING CLASSES WITH THE CLASSIFICATION BASED ON THE ORDER IN WHICH THEY ARE INTRODUCED IN THEIR RESPECTIVE CLASSES .
Even though some CS0 courses are offered without any programming, the majority have some sort of programming in their content. A survey and taxonomy of languages and environments used to make programming easier to learn for novice programmers is presented in [53]. Another good survey and classification of different programming languages used in introductory programming courses is given in [54]. A very recent brief history of learning to program is given in [55]. Guzdial in [56] classifies entry-level programming into LOGO-based [57], graphical rule-based (aka microworld) and pedagogical (by means of the programming environment) approaches. Scratch is an example of the former, Alice is an example that uses rule-based microworlds, and Greenfoot is an example of the latter [55]. These three are compared
and contrasted by their creators in [58]. The use of robotics (such as Karel [59] or Lego Mindstorms) in introductory programming courses are also reported in the literature, such as in [31], [30], [44]. A brief snapshot of the variety of programming languages used in CS0 courses is shown in Table I as collected from the published literature. Primary, secondary and tertiary designations indicate the order of the exposure of multiple languages in class. IV. A PP I NVENTOR FOR A NDROID
ability to create applications they might use outside of the classroom. Additionally, we make use of Lego Mindstorms to take advantage of the use of robot kits [44], [59], with which many students will already be familiar. The AIA software development platform runs online through the browser using HTML and Java as intermediaries. In December of 2011, Google decommissioned its AIA servers and in early March 2012, MIT’s Center for Mobile Learning started running a beta version for AIA, as shown in Figure 2. The MIT AIA site is a publicly accessible site requiring
The Android Operating System (OS) for smartphones and tablets has become the largest platform for a new computing mobile paradigm. According to the results of Nielsen Mobile Insights surveys, more than half of the new activations of smartphones are running Android OS as of mid-2011. Nielsen surveys also show that the market penetration of Android is even larger among the younger consumers. That means that more than half of all college students are likely to have used an Android device before starting their studies. Figure 1 shows the smartphone market share as of May 2012 based on Nielsen Mobile Insights surveys.
Smartphone Market Share (May 2012) 49%
32% Fig. 2.
12% Android
Apple iOS
4%
RIM Windows BlackBerry Mobile
1%
2%
Windows Phone
Others
MIT App Inventor for Android Web site.
only a free Google account, see Figure 3. The graphical,
Fig. 1. Smartphone market share as of March 2012. Source: The Nielsen Mobile Insights, National.
The Android open-source OS runs a modified Linux kernel with Java-based applications through a Dalvik virtual machine framework. In December of 2010, Google released Google App Inventor for Android (AIA) for developing applications by using a graphical interface that is very similar to MIT’s drag-and-drop programming language Scratch3 . The goal is to give a intuitive, fun, exciting and less scary head-start on Android platform application development for non-programmers and an enticing start to the computing degree for the majors. This is accomplished using the more intuitive drag-and-drop features commonly available within web browsers. A number of colleges have already started using AIA in different courses for non-majors, as reported in a recent panel [60] and a workshop [61], but the details are not published. Our approach uses AIA to develop real applications for the Android, which gives the students a greater sense of involvement, due to their 3 http://scratch.mit.edu
Fig. 3. MIT App Inventor for Android Beta web site for software development only needs a free Google account to use.
drag-and-drop component designer of the AIA interface is shown in Figure 4, with a simple mobile game app extended
Fig. 4.
A mobile game app augmented from an example from [62] is shown in component designer part of the AIA platform.
from an example given in [62]. The blocks editor is the last component of the AIA to code the mobile app using drag-anddrop programming blocks, as shown in Figure 5. Mobile apps thus developed can be tested in an Android device, smartphone or tablet, or completely in software emulation of the platform, see Figure 6. Another option for running AIA is in-house - by relying on the Google App Engine4 and hosting it from your own domain name, or serving it for free using the Google Cloud site5 . We have created our local, in-house AIA software development site at http://umflintai.appspot.com/. Figure 7 shows a screenshot of the same mobile game app from our own site. V. P OTENTIAL C OURSES A. For Computing Majors One use case of the AIA is a CS0 type course for majors and non-majors as an introductory computing and programming 4 https://developers.google.com/appengine/. 5 http://googcloudlabs.appspot.com/.
course. In our previous work [63], we have summarized our experience of AIA in a CS0 course. We have utilized an interesting support of AIA for Lego Mindstorms robotics as well. We believe that this opens many more interesting venues with which to engage students in class content, and it potentially makes a more lasting impact in their careers. In [64], a CS0 course is described to introduce AIA’s features for non-majors only. Another use of AIA might be in CS1 or CS2 courses, mostly for computing, and possibly for STEM majors. Fundamental programming topics of CS1/CS2 can be introduced through a very appealing methodology to retain existing students, and to attract new students to computing. As opposed to CS0 teaching, in CS1/CS2, the emphasis is shifted more to the inner details of programming constructs, such as control structures, iteration, functions, recursion, algorithms, decision making, some basic data structures, etc. Of course, AIA may also be used as a soft introduction to mobile app development classes, both for majors and non-majors. Robotics classes can also benefit from AIA. Software engineering and Information Systems
Fig. 5.
Blocks Editor part of AIA to write code by means of graphical blocks.
B. For Other Majors There are many workers in industry whose day job is not significantly different than that of a programmer, yet they do not have computing degrees. A more formal and rigorous training for this kind of workforce, which appears to be increasing everyday, would make good sense in preparing graduates for jobs. Numerous fields make use of computing as part of their curricula, many informally as part of their normal classes. Recognizing the need for more formal computing training seems to be on the rise. At this juncture, AIA is poised to offer a good alternative for other fields, rather than directly computing related ones, to introduce the important concepts of computing, or computational thinking. Examples of such fields that might benefit from such an approach include the following: computational chemistry, computational aeroacoustics, bioinformatics, computational linguistics, computational finance, computational neuroscience, informatics, digital forensics, security and information policy, animation, advertising, econometrics, etc. VI. C ONCLUSION
Fig. 6.
Android emulator of AIA to test and debug mobile apps developed.
(IS) classes, especially capstone projects in IS, can utilize AIA. Networking, database and web development classes can make use of AIA as part of their curriculum to let students easily port, test and evaluate mobile experience of the users.
The AIA platform for mobile app development is poised to bring many benefits beyond its primary domain. It appears to be a very powerful tool for teaching programming and computing fundamentals for Information Technology related majors, STEM fields, and non-majors. In this paper, we are drawing attention to these benefits that will be applicable to a variety of courses, together with some technical details of setting up the infrastructure for AIA and our experiences in a number of courses. We strongly believe that the dissemination of this tool, AIA, will be a significant enabler and facilitator for many different fields.
Fig. 7.
The same mobile game app as given in Figure 4 is shown from own local AIA site that relies on Google App Engine.
R EFERENCES [1] “The National Research Council (NRC),” http://sites.nationalacademies.org/NRC/. [2] M. A. Fox and E. Norman Hackerman, Evaluating and Improving Undergraduate Teaching in Science, Technology, Engineering, and Mathematics. National Research Council of the National Academies, The National Academies Press, 2003. [3] (2012) The NMC Horizon Report: Higher Education Edition. accessed on June 1st, 2012. [Online]. Available: {$http://www.nmc. org/horizon-project/horizon-reports/horizon-report-higher-ed-edition$} [4] (2012, January 25) Why We Need a 4th R: Reading, wRiting, aRithmetic, algoRithms . [Online]. Available: {$http://dmlcentral.net/blog/cathy-davidson/ why-we-need-4th-r-reading-writing-arithmetic-algorithms$} [5] J. M. Wing, “Computational thinking,” Commun. ACM, vol. 49, no. 3, pp. 33–35, Mar. 2006. [Online]. Available: http://doi.acm.org/10.1145/ 1118178.1118215 [6] A. Perlis, The computer in the university. In M. Greenberger, Ed., Computers and the World of the Future. Cambridge, MA, USA: MIT Press, 1962.
[7] S. Papert and I. Harel, Constructionism. Norwood: Ablex Publishing Corporation, 1991, chapter 1 is available www.papert.org/articles/SituatingConstructionism.html. [8] S. Papert, “Situating constructionism,” in Constructionism, I. Harel and S. Papert, Eds. Norwood, NJ: Ablex, 1991, pp. 1–12. [9] E. Ackermann, “Piaget’s constructivism, papert’s constructionism: What’s the difference?” in Constructivism: Uses and Perspectives in Education Conference Proceedings, [September. [10] C. C. Bonwell and J. A. Eison, Active learning : creating excitement in the classroom. George Washington University, ERIC Clearinghouse on Higher Education, Washington, DC :, 1991. [11] P. C. Blumenfeld, E. Soloway, R. W. Marx, J. S. Krajcik, M. Guzdial, and A. Palincsar, “Motivating project-based learning: Sustaining the doing, supporting the learning,” Educational Psychologist, vol. 26, pp. 369 – 398, 1991. [12] R. H. Austing, B. H. Barnes, D. T. Bonnette, G. L. Engel, and G. Stokes, “Curriculum ’78: recommendations for the undergraduate program in computer science - a report of the acm curriculum committee on computer science,” Commun. ACM, vol. 22, pp. 147–166, March 1979. [Online]. Available: http://doi.acm.org/10.1145/359080.359083
[13] R. D. McFarland, “Development of a cs0 course at western new mexico university,” Journal of Computing Sciences in Colleges, vol. 20, pp. 308–313, October 2004. [Online]. Available: http: //portal.acm.org/citation.cfm?id=1040231.1040271 [14] S. Hambrusch, C. Hoffmann, J. T. Korb, M. Haugan, and A. L. Hosking, “A multidisciplinary approach towards computational thinking for science majors,” in Proceedings of the 40th ACM technical symposium on Computer science education, ser. SIGCSE ’09. New York, NY, USA: ACM, 2009, pp. 183–187. [Online]. Available: http://doi.acm.org/10.1145/1508865.1508931 [15] D. L. Smarkusky and S. A. Toman, “An interdisciplinary approach in applying fundamental concepts,” in Proceedings of the 10th ACM conference on SIG-information technology education, ser. SIGITE ’09. New York, NY, USA: ACM, 2009, pp. 224–228. [Online]. Available: http://doi.acm.org/10.1145/1631728.1631800 [16] A. Epperson, “Computer literacy revisited: a comprehensive investigation of computer literacy,” ACM Inroads, vol. 1, pp. 30–33, June 2010. [Online]. Available: http://doi.acm.org/10.1145/1805724.1805736 [17] M. Guzdial and A. Forte, “Design process for a non-majors computing course,” SIGCSE Bull., vol. 37, pp. 361–365, February 2005. [Online]. Available: http://doi.acm.org/10.1145/1047124.1047468 [18] T. J. Cortina, “An introduction to computer science for non-majors using principles of computation,” in Proceedings of the 38th SIGCSE technical symposium on Computer science education, ser. SIGCSE ’07. New York, NY, USA: ACM, 2007, pp. 218–222. [Online]. Available: http://doi.acm.org/10.1145/1227310.1227387 [19] K. Johnsgard and J. McDonald, “Using alice in overview courses to improve success rates in programming i,” in Software Engineering Education and Training, 2008. CSEET ’08. IEEE 21st Conference on, april 2008, pp. 129 –136. [20] B. Moskal, D. Lurie, and S. Cooper, “Evaluating the effectiveness of a new instructional approach,” SIGCSE Bull., vol. 36, pp. 75–79, March 2004. [Online]. Available: http://doi.acm.org/10.1145/1028174.971328 [21] J. P. Dougherty, “Information technology fluency at a liberal arts college: experience with implementation and assessment,” J. Comput. Small Coll., vol. 18, pp. 166–174, February 2003. [Online]. Available: http://portal.acm.org/citation.cfm?id=771712.771734 [22] J. P. Dougherty, T. Dececchi, T. Clear, B. Richards, S. Cooper, and T. Wilusz, “Information technology fluency in practice,” SIGCSE Bull., vol. 35, pp. 153–171, June 2002. [Online]. Available: http://doi.acm.org/10.1145/782941.782999 [23] W. Mitchell, “Another look at cs0,” J. Comput. Small Coll., vol. 17, pp. 194–205, October 2001. [Online]. Available: http: //portal.acm.org/citation.cfm?id=772488.772519 [24] D. C. Cliburn, “A cs0 course for the liberal arts,” SIGCSE Bull., vol. 38, pp. 77–81, March 2006. [Online]. Available: http: //doi.acm.org/10.1145/1124706.1121368 [25] C. Dierbach, B. Taylor, H. Zhou, and I. Zimand, “Experiences with a cs0 course targeted for cs1 success,” in Proceedings of the 36th SIGCSE technical symposium on Computer science education, ser. SIGCSE ’05. New York, NY, USA: ACM, 2005, pp. 317–320. [Online]. Available: http://doi.acm.org/10.1145/1047344.1047453 [26] C. R. Cook, “A computer science freshman orientation course,” SIGCSE Bull., vol. 28, pp. 49–55, June 1996. [Online]. Available: http://doi.acm.org/10.1145/228296.228305 [27] A. Brady, P. Cutter, and K. Schultz, “Benefits of a cs0 course in liberal arts colleges,” J. Comput. Small Coll., vol. 20, pp. 90–97, October 2004. [Online]. Available: http://portal.acm.org/citation.cfm? id=1040231.1040243 [28] K. Anewalt, “Making cs0 fun: an active learning approach using toys, games and alice,” J. Comput. Small Coll., vol. 23, pp. 98–105, January 2008. [Online]. Available: http://portal.acm.org/citation.cfm? id=1295109.1295133 [29] T. S. Purewal, Jr., “Social networking: the new computer fluency?” in Proceedings of the 41st ACM technical symposium on Computer science education, ser. SIGCSE ’10. New York, NY, USA: ACM, 2010, pp. 112–116. [Online]. Available: http://doi.acm.org/10.1145/ 1734263.1734301 [30] J. Pearce and M. Nakazawa, “The funnel that grew our cis major in the cs desert,” SIGCSE Bull., vol. 40, pp. 503–507, March 2008. [Online]. Available: http://doi.acm.org/10.1145/1352322.1352304 [31] B. L. Wellman, J. Davis, and M. Anderson, “Alice and robotics in introductory cs courses,” in The Fifth Richard Tapia Celebration of Diversity in Computing Conference: Intellect, Initiatives, Insight, and
[32]
[33]
[34]
[35]
[36]
[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
[46]
[47]
[48]
Innovations, ser. TAPIA ’09. New York, NY, USA: ACM, 2009, pp. 98– 102. [Online]. Available: http://doi.acm.org/10.1145/1565799.1565822 J. P. Dougherty, “Concept visualization in cs0 using alice,” J. Comput. Small Coll., vol. 22, pp. 145–152, January 2007. [Online]. Available: http://portal.acm.org/citation.cfm?id=1181849.1181880 P. Mullins, D. Whitfield, and M. Conlon, “Using alice 2.0 as a first language,” J. Comput. Small Coll., vol. 24, pp. 136–143, January 2009. [Online]. Available: http://portal.acm.org/citation.cfm? id=1409873.1409900 M. des Jardins and M. Littman, “Broadening student enthusiasm for computer science with a great insights course,” in Proceedings of the 41st ACM technical symposium on Computer science education, ser. SIGCSE ’10. New York, NY, USA: ACM, 2010, pp. 157–161. [Online]. Available: http://doi.acm.org/10.1145/1734263.1734317 T. J. Hickey, “Scheme-based web programming as a basis for a cs0 curriculum,” in Proceedings of the 35th SIGCSE technical symposium on Computer science education, ser. SIGCSE ’04. New York, NY, USA: ACM, 2004, pp. 353–357. [Online]. Available: http://doi.acm.org/10.1145/971300.971423 M. B. Gousie, “A robust web programming and graphics course for non-majors,” in Proceedings of the 37th SIGCSE technical symposium on Computer science education, ser. SIGCSE ’06. New York, NY, USA: ACM, 2006, pp. 72–76. [Online]. Available: http://doi.acm.org/10.1145/1121341.1121367 D. J. Malan and H. H. Leitner, “Scratch for budding computer scientists,” SIGCSE Bull., vol. 39, pp. 223–227, March 2007. [Online]. Available: http://doi.acm.org/10.1145/1227504.1227388 M. Rizvi, T. Humphries, D. Major, M. Jones, and H. Lauzun, “A cs0 course using scratch,” J. Comput. Small Coll., vol. 26, pp. 19–27, January 2011. [Online]. Available: http://portal.acm.org/citation.cfm? id=1859159.1859166 J. Stamey and S. Sheel, “A boot camp approach to learning programming in a cs0 course,” J. Comput. Small Coll., vol. 25, pp. 34–40, May 2010. [Online]. Available: http://portal.acm.org/citation. cfm?id=1747137.1747143 K. K. Agarwal and A. Agarwal, “Simply python for cs0,” J. Comput. Small Coll., vol. 21, pp. 162–170, April 2006. [Online]. Available: http://portal.acm.org/citation.cfm?id=1127389.1127422 M. Panitz, K. Sung, and R. Rosenberg, “Game programming in cs0: a scaffolded approach,” Journal of Computing Sciences in Colleges., vol. 26, pp. 126–132, October 2010. [Online]. Available: http://portal.acm.org/citation.cfm?id=1858449.1858472 Y. Rankin, A. Gooch, and B. Gooch, “The impact of game design on students’ interest in cs,” in Proceedings of the 3rd international conference on Game development in computer science education, ser. GDCSE ’08. New York, NY, USA: ACM, 2008, pp. 31–35. [Online]. Available: http://doi.acm.org/10.1145/1463673.1463680 R. J. Gallant and Q. H. Mahmoud, “Using greenfoot and a moon scenario to teach java programming in cs1,” in Proceedings of the 46th Annual Southeast Regional Conference on XX, ser. ACM-SE 46. New York, NY, USA: ACM, 2008, pp. 118–121. [Online]. Available: http://doi.acm.org/10.1145/1593105.1593135 J. L. Pearce, “Requiring outreach from a cs0-level robotics course,” J. Comput. Small Coll., vol. 26, pp. 205–212, May 2011. [Online]. Available: http://portal.acm.org/citation.cfm?id=1961574.1961618 K. J. Goldman, “A concepts-first introduction to computer science,” in Proceedings of the 35th SIGCSE technical symposium on Computer science education, ser. SIGCSE ’04. New York, NY, USA: ACM, 2004, pp. 432–436. [Online]. Available: http://doi.acm.org/10.1145/ 971300.971446 S. Lee and E. Hildreth, “An introductory computational course for science students,” J. Comput. Small Coll., vol. 25, pp. 60–65, June 2010. [Online]. Available: http://portal.acm.org/citation.cfm?id= 1791129.1791141 K. Wang, C. McCaffrey, D. Wendel, and E. Klopfer, “3d game design with programming blocks in starlogo tng,” in Proceedings of the 7th international conference on Learning sciences, ser. ICLS ’06. International Society of the Learning Sciences, 2006, pp. 1008–1009. [Online]. Available: http://portal.acm.org/citation.cfm?id= 1150034.1150223 O. S. Peter Brusilovsky and S. Sosnovsky, “Mini-languages for non-computer science majors: what are the benefits?” in Interactive Technology and Smart Education. Emerald Group Publishing,
[49]
[50]
[51] [52] [53]
[54]
[55] [56] [57] [58]
[59] [60]
[61]
[62] [63]
[64]
2004. [Online]. Available: http://www.emeraldinsight.com/journals.htm? articleid=1612624&show=pdf J. C. Ernest, A. S. Bowser, S. Ghule, S. Sudireddy, J. P. Porter, D. A. Talbert, and M. J. Kosa, “Weathering mindstorms with drizzle and diode in cs0,” in Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, ser. ITiCSE ’05. New York, NY, USA: ACM, 2005, pp. 353–353. [Online]. Available: http://doi.acm.org/10.1145/1067445.1067552 D. Gudmundsen, L. Olivieri, and N. Sarawagi, “Using visual logic©: three different approaches in different courses - general education, cs0, and cs1,” J. Comput. Small Coll., vol. 26, pp. 23–29, June 2011. [Online]. Available: http://portal.acm.org/citation.cfm?id= 1968521.1968529 D. Sanders and B. Dorn, “Jeroo: a tool for introducing object-oriented programming,” SIGCSE Bull., vol. 35, pp. 201–204, January 2003. [Online]. Available: http://doi.acm.org/10.1145/792548.611968 C. Pheatt, “Integrating oo concepts into a cs0 course,” J. Comput. Small Coll., vol. 19, pp. 61–67, April 2004. [Online]. Available: http://portal.acm.org/citation.cfm?id=1050231.1050239 C. Kelleher and R. Pausch, “Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers,” ACM Comput. Surv., vol. 37, pp. 83–137, June 2005. [Online]. Available: http://doi.acm.org/10.1145/1089733.1089734 A. Pears, S. Seidman, L. Malmi, L. Mannila, E. Adams, J. Bennedsen, M. Devlin, and J. Paterson, “A survey of literature on the teaching of introductory programming,” SIGCSE Bull., vol. 39, pp. 204– 223, December 2007. [Online]. Available: http://doi.acm.org/10.1145/ 1345375.1345441 S. Fincher and I. Utting, “Machines for thinking,” Trans. Comput. Educ., vol. 10, pp. 13:1–13:7, November 2010. [Online]. Available: http://doi.acm.org/10.1145/1868358.1868360 M. Guzdial, “Programming environments for novices,” in Computer science education research, S. Fincher and M. Petre, Eds. Taylor & Francis, 2004, pp. 127–154. “LOGO Software,” http://el.media.mit.edu/logo-foundation/products/ software.html, Accessed on May 15th, 2011. I. Utting, S. Cooper, M. K¨olling, J. Maloney, and M. Resnick, “Alice, greenfoot, and scratch – a discussion,” Trans. Comput. Educ., vol. 10, pp. 17:1–17:11, November 2010. [Online]. Available: http://doi.acm.org/10.1145/1868358.1868364 R. Pattis, A Gentle Introduction to the Art of Programming. John Wiley & Sons, 1981. E. Spertus, M. L. Chang, P. Gestwicki, and D. Wolber, “Novel approaches to cs 0 with app inventor for android,” in Proceedings of the 41st ACM technical symposium on Computer science education, ser. SIGCSE ’10. New York, NY, USA: ACM, 2010, pp. 325–326. [Online]. Available: http://doi.acm.org/10.1145/1734263.1734373 H. Abelson, M. Chang, E. Mustafaraj, and F. Turbak, “Mobile phone apps in cs0 using app inventor for android: pre-conference workshop,” J. Comput. Small Coll., vol. 25, pp. 8–10, June 2010. [Online]. Available: http://portal.acm.org/citation.cfm?id=1791129.1791132 D. Wolber, H. Abelson, E. Spertus, and L. Looney, App Inventor, ser. O’Reilly Series. O’Reilly Media, 2011. [Online]. Available: http://books.google.com/books?id=nTX1zQCzWokC S. Uludag, M. Karakus, and S. W. Turner, “Implementing it0/cs0 with scratch, app inventor forandroid, and lego mindstorms,” in Proceedings of the 2011 conference on Information technology education, ser. SIGITE ’11. New York, NY, USA: ACM, 2011, pp. 183–190. [Online]. Available: http://doi.acm.org/10.1145/2047594.2047645 D. Wolber, “App inventor and real-world motivation,” in Proceedings of the 42nd ACM technical symposium on Computer science education, ser. SIGCSE ’11. New York, NY, USA: ACM, 2011, pp. 601–606. [Online]. Available: http://doi.acm.org/10.1145/1953163.1953329