AASCIT Journal of Education 2017; 3(6): 54-60 http://www.aascit.org/journal/education ISSN: 2381-1293 (Print); ISSN: 2381-1307 (Online)

Touchdevelop as the Tool for Novice Programmers

Viktória Heizlerné Bakonyi

Media & Educational Informatics Department, Eötvös Loránd University, Budapest, Hungary Email address [email protected] Citation Viktória Heizlerné Bakonyi. Touchdevelop as the Tool for Novice Programmers. AASCIT Journal of Education. Vol. 3, No. 6, 2017, pp. 54-60.

Abstract Keywords Nowadays it is obvious that computational thinking must be part of general education due Computational Thinking, to our technical, computer oriented world. The task of schools are very important to give a Education, proper and adequate knowledge about informatics knowing that we have a very small First Programming Language, amount of teaching time for this enormous work. One of the most important questions is Touch Develop what kind of programming language should be the best to help understanding algorithms and modelling. There are lots of viewpoints that have to be taken to notice. The paper is going to analyse different possibilities and review their advantages and disadvantages. Although there are excellent and long standing programming tools, it is always interesting Received: April 29, 2017 to go through the newly appearing platforms, languages, teaching methods. Touch Develop Accepted: September 12, 2017 is one of these worthy of note possibilities which everyone has to evaluate in their practice. Published: November 13, 2017 1. Introduction In the last decades daily life changed very quickly due to the modern technology, since we are always surrounded by different kinds of computers, smart phones, smart TV-s, smart cars, smart homes that help us in almost everything. It is almost impossible to be able to take part in the life of a modern society without informatics knowledge. The youth was born into this new world (they are the so called digital natives), but usually the usage of technology and their working mechanism is not so evident for their parents and grandparents. Therefore the role of schools and education should be much more highly evaluated than in the case of other subjects. There are several solutions how education system could achieve this aim of giving an adequate informatics knowledge. In Hungary there are special informatics courses in different levels of public education, in other countries they integrate the knowledge into other subjects like mathematics etc. The next important question from our viewpoint is the content of the curricula. There are three main areas: a. application usage, as without it no one would join the e-world, computer science [1], b. computational thinking which helps us to understand the operation of computers and c. information technology. For a long time application usage was brought to the fore however now it is obvious that we should strengthen the other two fields as well. [2] In fact, there are very strict time-frames for informatics, therefore educators have to plan each step in advance, what to teach, which tools and which methods to achieve the best results with.

2. The Question of Choosing the FPL (First Programming Language)

We state that the real aim is not to simply teach a programming language but to gain a 55 Viktória Heizlerné Bakonyi: Touchdevelop as the Tool for Novice Programmers

tool to get to know the bases of informatics. Of course, the group and analyse the advantages and disadvantages of them. question of a good choice depends on lots of conditions. Some of them are: a. Motivation 3. The Type of First Programming 1 The topics (drawing, animation, robotics, simulation, Languages mobile platform etc.) 2 The easiness of first steps (syntax rules, the First we have to review what the main trends are nowadays. complexity of first programs, adequate editor) We can speak about three radically different possibilities [20]: b. Proceedings a. Picture/Image programming (e.g. Logo Imagine [12], 1 The features of general programming languages (data RoboMind [11]) structures, event-driven programming, modularity etc.) b. Block/Bubble/Visual programming (e.g. Scratch [12], 2 OOP possibilities (standard classes, inheritance, TurtleArt, MindStorm) levels of data access etc.) c. Regular programming languages (Pascal [14], Basic c. Support [27], JavaScript [10], C# [13], Python [28], Java [26], 1 Stability (several years old having a big online C++[25] etc.) community) The classification of them are decided by the mode how 2 Tutorials, books the user have to implement a program. In this paper we will 3 Forums, social network etc. give examples regarding to the popular languages. d. Teaching methods If we are speaking about text commanded Picture 1 Teacher (chalk, talk, demonstrate) programming (typically Logo) it is true that we have to 2 Learner (activity based, personalized, collaborative, remember some commands but they are executed expeditionary etc) based methods immediately and give visual feedbacks about the result just in First of all it is very important to lay down that the age and time. Seymour Papert (MIT= Massachusetts Institute of motivation of the actual students should be respected highly. Technology) implemented Logo just for children based on Students who prefer human sciences or those who like Piaget states about children thinking and problem solving. mathematics or natural sciences might be interested in Children have to control a small drawing . different programming environments. It is the responsibility of In case of a visual programming language like Scratch you the given teacher and school to make a decision knowing the have to concentrate only on the algorithm because you may given circumstances. (Of course, by choosing tasks the drag the required block-statement into the program and that educator may fine-tune this process.) At the end of the is all. Scratch was created at MIT also for the same purpose: secondary school 16-18 year old students’ abstraction ability is to teach programming to children. Nowadays Scratch is very quite different from that of a 6-8 year old child’s. Therefore the popular among them and their teachers. aim and the tool also differs – older students are preparing for In case of standard languages we need further graduation or to learn further in vocational training so it is classifications, as they may differ from each other greatly. more important for them to deal with languages which are Some of them are strongly typed languages, while some are well-known in university trainings and later in industry. [3] not. Some of them use classes for everything while some of But now we are talking about the first programming them hardly implement classes. Some of them are popular in language and we state that in the age of 8-10 each child is industry while some of them are mainly used by amateurs. already able to think logically according to Piaget Three features decide the popularity of a standard classifications (Stages of Cognitive Development programming language in education: the easy, consequence http://www.learningandteaching.info/learning/piaget.htm ). and understandable syntax, the programming platforms it can Therefore the introduction to computer science may be be used for and its industrial importance. Figure 1 and Figure 2. started. Our aim is to sketch the alternatives for this age-

Figure 1. TIOBE rating 2012 [23]. AASCIT Journal of Education 2017; 3(6): 54-60 56

draw, a robot controlling which is very popular among children but it is not so easy with a standard programming language. These standard programming languages are mainly used later in secondary schools. Moreover children above 14 are not so engaged in drawing or story telling than before so the strength of motivation of these languages decrease. “…but for older adolescents and college students, I would strongly suggest teaching them using a language that's actually in widespread use in the real world. Psychologically, it's reassuring for students to know that they are learning something that's actually used by professionals in the Figure 2. Applicability of programming languages. [23]. working world rather than something that was invented by researchers just for pedagogy.” [17] Elder students may Pascal was used in almost everywhere in public education enjoy e.g. JavaScript with which they are able to create own for decades [22 3.3] and it is used frequently nowadays too web-pages. [10], or C# with which they are able to create because it was created as a teaching language for mobile applications as well [13] programming. Basic (Beginners All-purpose Symbolic Real world, working with sensors – information Instruction Code) was also popular for years due to the fact technology. Today almost every child plays on computers, that it was the base language of first personal computers and smart phones, tablets and have , speaking dolls, and users may create sprites, animations and music with simple controlled game-cars. These applications, devices are all able built in programming elements as well. C++ and later Java to handle events, to handle sensors. Children obviously like were in the focus of FPLs for decades because of their to create applications for these platforms. industrial importance, although C++ is not a really good Basic Scratch and Imagine handles the events like reaching choice because of its complexity. [17, 22] In the last decade the border or collision or clicking with the mouse. Moreover C# is also in the top 10, the reason of it is that it is easier than Scratch has got a module to use external sensors as well. C++ and in the same time it has an industrial role as well. Scratch Junior has got a special feature it is running on Nowadays for an introductory course in higher education mobile devices as well! Imagine Logo projects may run in Python is suggested mainly by the literature. [8] But Python web-browsers (not in all versions) so they are also used on is suggested for small children as well. [21] It is easy to learn almost each platforms but it is not able to handle external and besides it is one of the most favourite languages in the sensors. industry. [9] Naturally, standard programming languages are able to do There are lots of differences which may decide the usage all of the above-mentioned tasks e.g. in C# or in Delphi it is but we can say generally that they usually do not give back able to implement a console, a windows, a web or a mobile immediate visual feedbacks, and we do have to type the code program, but the programmer has to have a deeper and remember syntax rules. Let us compare them from programming knowledge. It is interesting so it is worth to different viewpoints! mention that there is an application Pythonista which may run on iPhones too and we know how popular smart phones Motivation are! Topic. It is very important that students should work with Easiness of the first steps. For a novice programmer it enthusiasm. Small children are usually interested in tales, in might be too much to create an algorithm, data model, drawings or to play with some kind of robots so they are understand the working mechanism of a program and in the motivated to be able to create their own ones. “… it can be same time to learn the syntax of a programming language. clearly said that students liked programming and wanted to In case of some text-command drawing programming improve their programming” [15] It should be the languages e.g. Logo only 4-8 commands are enough to start explanation for the popularity of Scratch and Logo among 6- with. Moreover they give immediate visual feedbacks about 10 year old students and their teachers in Hungary as well. what has happened. With the help of Scratch they are able to create tales, animate In case of visual programming languages the dragable actors, play music or speech rather easily, with drag and drop blocks simplify the code writing so it helps to concentrate technique, without typing anything. With Logo they may only to the main concepts of programming. Though it has a draw nice pictures or animate actors by typing some short disadvantage it may slow down your working process later, commands but there are other built in possibilities as well when you already know what to do and how. like music playing. They think they are playing but in the In case of standard programming languages there are some mean time they learn the base of programming. Nowadays visualization tools, like in Python gamification is an often mentioned method to engage (http://www.pythontutor.com/visualize.html#mode=display) students to learning. To implement an animation, a story, a or Java [7] which helps to understand the working 57 Viktória Heizlerné Bakonyi: Touchdevelop as the Tool for Novice Programmers

mechanism of the code but learning the syntax cannot be efficient than other non-active learning methods according to avoided. One has to remember a lot of syntax rules though the results of Edgar Dale in 1969. [16] Moreover society the difficulties of them differ from language to language. needs different kind of people than some centuries ago Script languages are easier to start with because you do not therefore methods should be chosen to fulfil these new goals. have to correct every error before the first test. Nowadays The ability of team work, of problem solving, of decision Python is the most favourite standard programming language making or lifelong learning is emphasized. By our opinion in introductory courses. the best teacher may vary the methods adequate to the given There are other nice ideas to put the main structures and situation. That is why it should be an important point of view the algorithms into focus by giving ready-made frameworks if the chosen environment itself supports modern teaching to work with. [6] methods like collaboration. You can find some built in tools Localization. It is easier to learn something if menu names, for collaboration where you can share your projects teach keywords and the documentation are available on the others and learn from others! Scratch has such community students’ native language mainly in the case of young that anybody may join free. (https://scratch.mit.edu/) For children. Both Scratch and Logo are localized for Hungarian adult developers https://github.com/ is one of the most so it does not cause problem for anybody. In case of a popular places where they can find and share codes. standard programming language keywords are always in English, only the language of the documentation or the help Proceeding might be a question. Curricula, topics. From a teacher’s viewpoint it is Developing tools. A developing tool must be helpful but important what kind of tasks you may teach using the given easy to use by small children. In case of Scratch it helps programming language. We have to concentrate on the topics children to avoid typos but with lots of instructions one has decided by the national curricula [5]. Remember that there to change frequently between them. In case of a bigger are very strict time-frames to teach informatics so there is no application the block elements are not so nicely clear-cut. time to change the programming language often. The Imagine Logo has an easy to use developing environment consequence of changing the language is that students must but it does not help much if somebody wants to use parts of learn lots of new rules wasting the valuable learning time. different already created programs. It does not help to teach Using a command-based drawing language like Imagine building from modules – Comenius Logo was more helpful Logo you are able to teach base programming structures, in such cases. event handling, recursion, base notions of objects, playing Standard programming languages have several music, robot controlling but it is not useful for clarifying data Development Tools, simples and professional ones as well. structures like stacks, queues, classes or to handle databases. The choice between them may be helped by reading [4]. Using a visual programming language e.g. Scratch you Support may teach base language structures, program structures, recursivity, event driven programming, simple object notion, Of course, there are lots of books, e-books, tutorials and animation, playing sounds, the bases of robot controlling, demo codes about the above-mentioned programming some kind of simulations but it is hard to deal deeply with languages. different data structures, text manipulation, class inheritance, On-line editors. It is very useful if there is no need of to handle databases or to make difficult mathematical or installing anything on the computer if there are online editors logical calculations. running in a browser. You can find such editor for Logo at: In case of standard languages the situation is the opposite. https://turtleacademy.com/: for Scratch at: In most of the languages there are possibilities to show the https://scratch.mit.edu and for standard languages at strength of classes, data modelling and numerical http://www.tutorialspoint.com/codingground.htm. calculations, but yes it is not quite easy to create animations Open courses. Nowadays open, free courses are very or to implement stories. popular like CodeStudio at https://studio.code.org/. Their So it seems to be obvious that the best solution is to start benefit is that they are always available from everywhere in with a visual or drawing language and later to switch to a any time and do not need a personal help. standard language, because both of them are needed to give a full spectrum of the required knowledge Teaching Methods After using for several hundred years chalk and talk 4. Our Suggestion – Touch Develop teaching method in schools, nowadays we have much more possibility to classrooms. Pedagogical literature deals a lot “Today, however, teaching little kids with Turtle Art would with the notions produced by the last some decades like appear to be an ideal place to start, then evolve to Scratch (and personalized, project-based, problem-based, game-based, Tynker and other bubble languages), and then on to Python, collaborative learning etc. searching for the best methods of PHP, and JavaScript.” [20]. It means in the same time that effective teaching. (e.g. http://bit.ly/2d0oOCx) students must change their programming language at least It is obvious for a long time that these forms are more twice, the paradigm they are used to and the development environment! It might cause a terrible waste of time, but what AASCIT Journal of Education 2017; 3(6): 54-60 58

can we do if we are not able to avoid this discomfort? switch to code level and see the real program code behind it – From this year in England each student gets a micro: bit therefore it helps understanding it. A real advantage of it is that minicomputer to learn informatics. One of the suggested there is no need to change the programming environment programming tools is Touch Develop. [24] drastically. Microsoft Touch Develop (https://www.touchdevelop.com/) Let’s see the benefits of it step by step as we did with the is a tool, a programming language which has got three previously mentioned languages. different programming levels. It can be used as a Picture, a Motivation in topic. It can be used as a Picture (similar to Block and a standard programming language and the user may Logo) and as a Block (similar to Scratch) programming tool change between them with one click! Therefore if a child as well, so children may enjoy creating drawings and stories created a program in the given block language he or she may using it.

Figure 3. Touch Develop (Block level - code level).

Motivation using mobile phones, sensors. Touch Develop was developed for a tool working on mobile phones as well besides your Raspberry, tablet or laptop! It is running in any browser on any platform. Therefore you may create a phone application on your phone! In case of a mobile application the most interesting thing is the programmability of the built-in sensors – and they are available in Touch Develop.

Figure 4. Sensors in Touch develop.

Motivation, easiness of code writing. As we have that you can switch between the coding levels, mainly at the mentioned before, there are three levels of programming points of changing the programming type – it lets you to from the block level to code level. At the beginners level the compare the different levels and paradigms of code writing. instruction set is narrower than at expert level. A code may Support. On the web-page (https://www.touchdevelop.com/) be implemented by dragging blocks to the right place. Typing there are lots of tutorials, a great number of examples, and is not needed at all – user may choose from possibilities. some documents. It is a pity that the documentation is not too Only numbers or file names should be given. Though if detailed yet. somebody wants, mixed usage is imaginable. Later at code Teaching methods. We do not have to say that you may use level the structure of the code is visualized by small icons. the system in a teacher based method as well explaining them Localization. It is a great disadvantage of the system that the working of the system. But it is more important from our today it is available only in English. There are different viewpoint that different student based and activity based teams which started the work of translation to several methods are given in a natural way in the environment. While languages but neither of them is ready now – even though it is easy to create drawings or stories in the system (as it was that Touch Develop started in 2009! in Logo or Scratch) the teacher may give easily personalized, Developing tool. Touch Develop may run on the web or interesting, motivating tasks to the children. If the starting locally as well. The IDE is helpful at the starting steps but problem is interesting they will try to go further and find new later it slows down the work (similar to Scratch.) It is great solutions to create their own ideas as well. Touch Develop 59 Viktória Heizlerné Bakonyi: Touchdevelop as the Tool for Novice Programmers

web-page offers the most modern way of sharing projects, to programming curricula. It has lots of pleasant features so it create groups and chat with other users in forums. Therefore may be well-spread within some years so we must catch our they experience the advantages of collaboration and that is the eyes on it. natural way towards a good teamwork. Moreover seeing several solutions for the same problem may help them to 6. Glossary develop the ability of better decision making. Computational thinking – the ability to problem abstraction, pattern resolution, data analysing, break the problem into smaller part, algorithmic thinking, to choose the best solution, generalization. Programming language – a collection of instructions the computer can execute. Development environment – an application to help programmers in implementing programs. Programming structures – the base elements of the programs like branches or cycles. Data structures – the way the data are organized e.g. arrays, dictionaries etc. C type language – group of programming languages which syntax are similar to C language Script programming languages – group of languages to make automatism for executing some tasks. Event driven programming – the result program can react Figure 5. Code details in Touch Develop. to different events like button press or finger motions on Proceedings. The background program language is a C touch screens. type script language, but it is created for this platform so it is Sensor programming - the result program can react to the not a well-spread language in the industry – remember it was changes of the device’ sensor e.g. gyroscope. (The position one of the main questions of choosing a standard language. of a mobile phone decide the screen to be in portrait or The base programming structures are available, function and landscape mode.) recursive usage are possible. As a data structure the developer may handle structures, tables, indexes, collections, References objects, decorators (similar to attributes) and Json data. There [1] Juraj Hromkovic, Björn Steffen: Why Teaching Informatics in are objects as you may see on Figure 5 – like sprite in the Schools is as Important as Teaching Mathematics and Natural code, but there is no inheritance available yet. Sciences. Children may learn the base of event handling as well. There is not too much operators but it is not disturbing for a [2] Zsakó László: Informatika Nemzeti Alaptanterv 2020 https://njszt.hu/en/node/2961 beginner. We have to mention the appearance of cloud data, some [3] Szlávi Péter, Heizlerné Bakonyi Viktória Evaluation of features of refactorization and the base notions of parallel programming languages in education. systems: asynchrony and atomy instructions. [4] Heizlerné B Viktória, Szlávi Péter Evaluation of development Therefore Touch Develop seems to be a noticeable environments from the viewpoint of education ICAI possibility for teaching as much as you can from (International Conference of Applied Informatics) 2014. Eger programming in a strict time-frame though the absence of (2014.01.30-02.2) előadás (2014). localization makes its’ usage difficult among non-English [5] “Kerettantervek”, OFI, 2012, http://kerettanterv.ofi.hu/ speaking children. [6] Menyhárt László Creative introduction of systematic programming with HTML5 support 11th macs 5. Summary http://macs.elte.hu/abs/received/ The question of choosing an adequate first programming [7] Gábor Törley: Algorithm visualization in teaching practice, in. language has been important for informatics teachers for Acta Didactica Napocensia, Vol. 7. No. 1., pp. 1-17., 2014., decades. There are several viewpoints of the choice we have Babes-Bolyai University, Didactics of Exact Sciences Department and the Pedagogy and Applied Didactics overviewed during this paper but surely there are much more. Department, Cluj-Napoca, Romania ISSN 2065-1430. As informatics develops quickly, new languages and techniques appear, others disappear or lose weight so our [8] Python in now the most popular introductory language... choice has to be supervised time to time. http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now- the-most-popular-introductory-teaching-language-at-top-us- Microsoft Touch Develop got into focus when it became universities/fulltext one of the suggested developing tools for England’s new AASCIT Journal of Education 2017; 3(6): 54-60 60

[9] Top Computer Languages Online Available [19] Breen, Derek Scratch for Kids for Dummies 2015 Taramix; http://statisticstimes.com/tech/top-computer-languages.php Panem Könyvkiadó ISBN: 6155186349. Accessed 6th May 2016 [20] How to Choose Your First Programming Language, Kids, [10] Győző Horváth, László Menyhárt: Teaching introductory Code and Computerscience print and online magazin 2013 programming with JavaScript in higher education Proceedings August (Online) Available at of the 9th International Conference on Applied Informatics https://www.kidscodecs.com/how-to-pick-a-programming- Eger, Hungary, January 29–February 1, 2014. Vol. 1. pp. 339– language/ Accessed 6th June 2016. 350 doi: 10.14794/ICAI.9.2014.1.339. [21] Simon Haughton, A children’s guide to Python programming [11] Bernát, P. Robotika az általános iskolában és a RoboMind Online Available at http://simonhaughton.typepad.com/files/a- programozási környezet INFODIDACT 2015. Konferencia childrens-guide-to-python-programming.pdf Accessed 6th helye, ideje: Zamárdi, Magyarország, 2015.10.26 Budapest: June 2016. Webdidaktika Alapítvány, 2015. Paper BP. (ISBN: 978-963- 12-3892-1). [22] Vujoˇsevi ́c-Janiˇci ́c, M., Toˇsi ́c, D. THE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST [12] Bernát, P. Programozástanítási célok teljesítése a Logóval és a PROGRAMMING COURSES, THE TEACHING OF Scratch-csel In: Zsakó László (szerk.) INFO ÉRA 2014: Az MATHEMATICS 2008, Vol. XI, 2, pp. 63–83. informatikaoktatás szabályozása és módszertana a közoktatásban. Konferencia helye, ideje: Zamárdi, [23] Kruglyk, V., Lvov, M. Choosing the First Educational Magyarország, 2014.11.20-2014.11.22. Budapest: NJSZT, Programming Language http://ceur-ws.org/Vol-848/ICTERI- Paper BP. 2012-CEUR-WS-paper-37-p-188-198.pdf ISSN 1613-0073. [13] Illés, Z. Programozás C# nyelven. [24] Thomas Ball, Jonathan Protzenko, Judith Bishop, Michał Moskal, Jonathan de Halleux, Michael Braun, Steve Hodges, [14] Tóth L., Daiki, T. Így is lehet programozni!? InfoÉra 2012 Clare Riley Microsoft Touch Develop and the BBC micro: bit 2012.11.15. http://research.microsoft.com/pubs/262314/ICSE16-Demo- http://www.infoera.hu/infoera2012/ea/FireMonkey.pdf 011.pdf

[15] Filiz KALELIOĞLU1, Yasemin GÜLBAHAR2 The Effects [25] Illés, Z. Programozási nyelvek C++, mikrológia 23, 1998, of Teaching rogramming via Scratch on Problem Solving NJSZT. Skills: A Discussion from Learners’ Perspective. [26] Java 2 útikalauz programozóknak 5.0 I-II. 2009 ELTE TTK [16] Cone of learning: (Online) Available: http://bit.ly/1TNR2o6 Hallgatói Alapítvány ISBN: 9789630640923. [Accessed on: May. 28, 2016]. [27] Farkas Csaba: A programozás alapjai Visual Basic. NET-ben, [17] Philip Guo Introductory Computer Programming Education Jedlik Oktatási Stúdió Bt., 2009 ISBN: 9789638762979. Online Available http://www.pgbovine.net/prog- curriculum.htm [28] Mark Summerfield Python 3 programozás 2009 Kiskapu Kft., 2009 ISBN: 9789639637641. [18] ABONYI-TÓTH A., HOLLER, J., ROZGONYI I. KÉPZELD EL! – IMAGINE ALGORITMUSOK, JÁTÉKOK ABAX BT., 2007 ISBN 9630624965.