Foreword about communication
The involvement in a common discussion is important. This course is very much about activities that requires a lot of exercise and sharing may be a powerful mean to create a learning community. The incredible boost of free software development since some 30-40 years is largely due to the attitude of sharing problems and solutions in public discussion places. We are going to do very well if we'll adhere to such a practice. And this is also good to transmit to our kids...
Therefore we offer here a space for posing questions and sharing ideas. We opened a reddit channel for this: CodingAtSchool. In order to use it you have to signup for free. It's very easy to use and, at any rate, there are tons of tutorials out there. Here you have couple of short ones, one for signing up, and and one for basic use.
From this link you can download a zip file with many exercises and other resources: http://iamarf.ch/mooc/logo-odt-files.zip.
I'm asking you to use the Reddit whenever possible. This is useful because by using a pubblic communication channel, every question and every answer are shared, thus optimizing communication flows. Moreover, answers given by participants may be even better than teacher's one.
However you can reach me also through the following channels:
In these last cases use the following hashtag: #llats18 (stands for LibreLogo At School 2018)
Coding and computational thinking
Coding and Computational thinking
The practice of coding, in its traditional form, involves the manipulation of symbolic information and it is generally recognized that it allows the students to create and not only to use. Actually, the discourse on coding practices is embedded in the broader one on computational thinking.
Recently, the EC has devoted an extended study to the state of the art of computational thinking (Bocconi, 2016). What it comes out is that if the sense of urgency to introduce computational thinking in compulsory education is quite strong, at the same time a lack of consensus is still there, even about the mere definition of the concept. Thus, we find ourselves in the uncomfortable situation of acting urgently but without having the possibility of being in control. Things move fast, actually. The time to give shape to the significant lessons learned through the ongoing experiences and to take fully advantage of them lacks. This is exactly what is happening to the evolution of coding practices in the educational context.
To tell it in few words, it seems that, in front of the explosion of languages and devices of any kind, the sound, deep pedagogical and technical motivations that inspired the earlier educational coding experiences have vanished in a sparkly cloud of fancy activities.
Computational thinking definition
There are several definition of "computational thinking" hanging around.
The last given in 2010 by Jeannette Wing, the computer scientist who introduced for the first time in 2006 the term reads as follow
Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent.
More specifically, with this expression a set of skills are meant:
- Using abstractions to represent the problem in new and different ways
- Logically organizing and analyzing data
- Divide et impera
- Face problems usin iteration, symbolic representation, and logical operations
- Reformulating problems into ordered steps
- Apply these skills to a wide class of problems
A good review about computational thinking concept in education
A very good overview of the computational thinking concept can be found in
Bocconi S., Chioccariello A., Dettori G., Ferrari A. and Engelhardt K. (2016). Developing computational thinking in compulsory education. ED. P. Kampylis e Y. Punie Science for Policy report by the Joint Research Centre (JRC), the European Commission’s science and knowledge service.
The authors show how broad is the realm of perspectives proposed by experts in the field and how it is still a moving concept.
Text vs blocks coding
Nowadays visual programming system are very popular in school environments, particularly, blocks based languages instead of conventional textual languages. The figure shows two pieces of code, one in a block-based language (Snap!, very similar to Scratch) and the other in a textual language (LibreLogo). In blocks-based systems single instruction are represented by colored blocks that one can freely drag inside the working area. The blocks can be combined in a Lego-like way to compose a sequence of instructions, that is the program. On the other side, in textual programming instructions have to be written in sequence by means of a text editor.
Both pieces of code produce the same result, since both draw a square even if, at first glance, they don't look like. However, if you compare carefully the two objects, you will easily verify the correspondence between instructions.
Which one is better?
Nowadays in most school contexts coding is synonymous of Scratch or, at any rate, of blocks-based languages. These languages are quite smart for providing a first programming experience to kids. And they are even powerful, allowing for a broad range of coding experiences. Moreover, Scratch fostered the spread of coding a great deal, through its social platform. However, within the whole process, the general idea of coding leaned over the production of animations, which might be fine, because to realize them some quite advanced programming methods are required. What are we missing then? To understand this we have to recall the lesson of Seymour Papert.
Among the several blocks-based languages Scratch is by far the most popular. You can go and explore it for a while.
A step back into the future
Everything begins with Seymour Papert
The idea of including computer programming among the educational activities is due to Seymour Papert. Papert, a South African mathematician, arrived in the United States in the mid 1960s after having worked with Jean Piaget for five years. He released the first version of Logo in 1967, when working at the MIT Artificial Intelligence Laboratory. Logo was an advanced language conceived at the intersection between the fields of artificial intelligence and developmental psychology, as a tool for improving the way children learn and solve problems. It's key idea, using Papert's famous expression, was to allow for a low floor and a high ceiling. For this reason, even if apparently simple in the first steps, its inner architecture allowed users to extend their capabilities in a virtually limitless fashion.
Seymour Papert's key role is that of having connected the fields of education with that of artificial intelligence. All the current hype about educational technologies stems from his seminal work and its visionary standing. Thanks to him there is a continuous path from learning theories to the use of techology in schools. This is somehow forgotten nowadays and it should not.
From Logo to Scratch: a one way path?
A great number of educational languages have been derived from Logo, among which Scratch, by far the most successful.
Scratch is a relative of Logo being developed by Mitchel Resnick, a former student and successively coworker of Papert at the MIT. Actually, the basic functionalities of Logo can also be found in Scratch that, however, has many more features, among which the blocks-based instead text-based interface and the possibility to build animations or true video games.
On the other side, Logo was thought as a way to explore mathematical concepts in a body-syntonic way, another papertian expression which refers to the idea of building a geometry - the Turtle Geometry - in analogy with the body geometry which is well known by kids, before they get in touch with formal math.
More is not necessarily better...
So what, if Logo is in some way included in Scratch? The fact is that all the considerations on what is actually going on when kids are let exploring with Logo, all the awareness about the importance of personal discovery of mathematical concepts, all the strong emphasis on creative approach to study scientific ideas have almost completely disappeared. Not because Scratch, or other similar languages, makes such perspectives impossible but because the whole interface is too much skewed towards the childish side. This does not mean that you cannot do quite complex stuff with Scratch, even extremely complex ones. Instead, it's about the fact that most of the activities done in Scratch are about the production of animations and simple games, and by far most of the projects are very basic and short lasting, as it has been shown by some recent studies based on scraping of the Scratch database (Aivaloglou & Hermans, 2016; Matias, Dasgupta & Hill, 2016; Scaffidi & Chambers, 2016).
We could say that more is not necessarily better...
Kids crave hard
Ironically, the childish flavor, thought to facilitate the introduction to programming, turns out to be a limiting factor, basically because students crave hard: if you complete a hard task you have proven yourself, if you fail... after all it was not so easy (Krouse, 2016A). Paradoxically, Scratch may be frustrating because everything seems so easy but soon it might get much harder. Because coding it's hard. Like math. Making life much easier is not always a good idea. A number of studies revealed that a Scratch introduction to programming does not necessarily facilitate the transition to conventional coding languages (Lewis, 2010; Lewis, Esper, Bhattacharyya, Fa-Kaji, Dominguez & Schlesinger 2014; Weintrop & Wilensky, 2015). That's why new approaches for easing the transition to "true languages" are emerging (Homer & Noble, 2014; Price & Barnes, 2015; Krouse, 2016B, Weintrop & Wilensky, 2018).
Weintrop and Wilensky are also proposing a web interface to tinker with they hybrid pencil.cc language.
Kids crave hard - biblio
- Krouse S. (2016A). Scratch has a marketing problem. At Medium.
- Lewis C.M.(2010). How programming environment shapes perception, learning and goals: Logo vs. Scratch. Proceeding SIGCSE '10 Proceedings of the 41st ACM technical symposium on Computer science education, Pages 346-350.
- Lewis C., Esper S., Bhattacharyya V., Fa-Kaji N., Dominguez N., and Schlesinger A. (2014). Children’s perceptions of what counts as a programming language. J. Comput. Sci. Coll., 29(4): 123-133.
- Weintrop D., Wilensky U. (2015 A). To block or not to block, that is the question: students' perceptions of blocks-based programming. Proceeding IDC '15 Proceedings of the 14th International Conference on Interaction Design and Children, 199-208.
- Homer M. & Noble J. (2014). Combining tiled and textual views of code. Proceeding VISSOFT '14 Proceedings of the 2014 Second IEEE Working Conference on Software Visualization, 1-10.
- Price T.W., Barnes T. (2015). Comparing textual and block interfaces in a novice programming environment. Proceeding ICER '15 Proceedings of the eleventh annual International Conference on International Computing Education Research , 91-99.
- Weintrop D., Wilensky U. (2018). How the Block-based, Text-based, and Hybrid Block/Text Modalities Shape Conceptual Understandings of Programming Concepts. International Journal of Child-Computer Interaction, 1-10.
A step back to Seymour Papert's thought
Seymour Papert: about Logo, thinking and feelings
Welcome to the Logo tapes.
These tapes are about logo but they are not just about logo, beyond logo they are about thinking. They are about how to think about computers, and how to use computers to think about other things. They are about how to use a Logo experience, to develop new thinking skills for yourself as much for you students. But even beyond thinking, the tape have much to say about feelings.
People, adults as well as children, have strong feelings about computers, and their experience with computers influence the way they feel about many other things. For example, about school, about learning and most relevantly here, people experience with computers often influences the way they think about themselves.
From "computer literacy" to the "emotional roots" of learning
The lesson of Papert is by no way a purely technical one. Nor it's limited to specific competencies, or accessing information, sharing and so on. Papert's idea of using computers in education is a holistic one. Logo was conceived to explore geometry, math, or even science, by means of clever simulations. But even more than that:
The main purpose of Logo is not what they call “computer literacy” - of course it serves that, based on anything else I can think of, but the real purpose is not to have better understanding of computers but through computers to have better understanding of everything else including, I'd like to say, yourself. [...] I’m not trying to give you a theory of what causes children to be so involved and engaged with a computer, I’m trying to encourage a way of thinking that looks beyond the role of the computer in teaching one or another corner of the curriculum and tries to look at the emotional roots of what’s going on.
"And through loving what you know you love yourself more"
Papert's thought emphasises the pleasure and benefit of discovering learning, appropriation, making knowledge your own in a way you feel good about it, seeking resonance between the immediate learning experience and the larger experience that makes up the learner's life.
In this tape, I tried to show how a teacher can use Logo to play the role of intellectual glue, the role that mathematics has made for me. At other end, by some reflections, unpacking the intuition every teacher has, that is good to make connections... well why? There is a cognitive side: connections help you understand, you understand the new by referring to the old, they help you remember. But there is a deeper side, one that has to do with how you feel about knowledge and how you feel about yourself. Connecting new knowledge to things you know and love and things you can do makes you feel good about it, makes you take it in a form that is your own, but taking knowledge in form that feels to you as you, you change your feelings about you as well. You no longer think about yourself as somebody who can do math but doesn’t really understand poetry, or can draw but doesn’t have the head for numbers. Instead, you appropriate all knowledge in a form that is yours, that you can do, that you can love. And through loving what you know you love yourself more.
Why this step back is a step towards the future
The previous Papert's passages have been extracted from a video series made in 1986. However, even if the technologies used by Papert in these videos may appear quite obsolete nowadays, and even if the software derived from Logo in these thirty years are extremely valuable, we feel that the vision of Seymour Papert still belongs to the future and it is something we still have to strive for. We believe that these considerations give the right tone to bring people from the lower to the upper ladders of the digital participation process described in Growing Digital Citizens": from watching to sharing, to creating and, finally, to harness the potential of technology for a better society (Ferrari & Martens, 2016, p. 12).
Putting the right pieces toghether - Free Software
“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software.
A program is free software if the program's users have the four essential freedoms:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
 Free Software Foundation: https://www.gnu.org/philosophy/free-sw.en.html
Richard Matthew Stallman
The concept of Free Software was created by Richard Matthew Stallman in 1983, a physicist, at that time working at the MIT artificial intelligence laboratory as a programmer. He gave up to his research position once he discovered that software was becoming a strategic component of companies intellectual property, instead of being considered just composed by coded ideas, that is a particular sort of knowledge and, as such - this was Stallman's thought - it should be freely shareable among all humans.
- the GNU Project, a free operating system, on which Linux would have been builded upon, later on.
- the Free Software Foundation, devoted to the promotion of Free Software all over the world
- the GNU General Public License and the copyleft concept, which constitute the legal basis by means of which authors can freely give up to a certain amount of copyrights; a concept successively generalized with the Creative Commons and other licenses, conceived to face the needs of authors in the fast moving realm of Internet.
Levels of Free Software committment
Free software can be adapted by local communities and minorities to suite their specific needs and languages, particularly in the multicultural and multilingual context of the European Union.
It is ethic and useful to use it and spread it freely. It counteracts the tendency of breaking proprietary software, which is against the law. It can be modified and improved by anyone who is capable of doing it – and many young people are perfectly able to do it. It fosters collaboration and cooperation on complex shared projects. Free software is a powerful incentive to a creative and ethic approach to the use of technology.
It is therefore a relevant instrument of democracy, particularly in educational contexts, in harmony with the funding values of the European Union.
Levels of Free Software committment/2
One can use free software by adopting different levels of commitment.
The most radical choice is to use the Linux operating system. Linux is a smart operating system with several advantages for most users and nowadays can be installed rather easily. However, even if virtually any user could afford the transition, in practice many users might have reasons to keep their systems, no matter if Windows or Mac OS X.
However, free software can be adopted at the much easier level of single applications. There are very good applications which can be installed on all operating systems, such as the office suite LibreOffice , the Gimp  image editor and the Audacity  audio editor, just to mention some among the most popular ones.
 LibreOffice is a community-driven and developed software from the not-for-profit organization, The Document Foundation: http://libreoffice.org
 Gimp: http://gimp.org
 Audacity: http://www.audacityteam.org/
LibreOffice and LibreLogo
The appropriateness of the free software model for multicultural contexts stands out in the case of LibreOffice: some 50 worldwide communities are active to develop and maintain their respective localized versions of LibreOffice  but right now 178 languages are supported in some degree, that may include localized user interface, localized help system, auto-text lists, auto-correct list, spell-check dictionaries, hyphenation patterns, Grammar check and Thesaurus (synonyms) . LibreOffice includes all the typical applications of office suites for writing, presenting, organizing data, drawing and so on. But the reason why we are stressing here the interest in LibreOffice is because, among the numerous functionalities there is LibreLogo, a pretty thorough version of the Logo language, available by default among the standard LibreOffice tools since the 18.104.22.168 version (2014).
 Native-Lang LibreOffice Projects: http://www.libreoffice.org/community/nlc/
 LibreOffice language support: https://wiki.documentfoundation.org/Language_support_of_LibreOffice
Recalling Seymour Papert’s principle of a low floor and a high ceiling , LibreLogo  is a very clever implementation of Logo. The “floor” is extremely low since to begin with you have to enter Writer (the standard LibreOffice word processor), then write down some Logo instructions and run the code just by pushing a menu button. If the code is correct an image is embedded in the document as a standard LibreOffice vector graphics. That way it is extremely simple to begin experimenting with Papert’s “Turtle geometry”. As we have said, actually Scratch was derived from Logo but, instead of being coded by means of text instructions, it uses colored blocks which can be put together in a Lego-like manner to compose a program. The advantage of this system is that of avoiding the possibility of orthographic and syntactic errors. This may lower the floor at the beginning but successively, it may even hamper the transition to “true languages”, as we have pointed out before. In LibreLogo you have to type text instructions, which at the beginning it may be more demanding but not more than writing English simple sentences. Indeed, it is good that the same kind of skills may be useful in different areas. LibreLogo can be used off line, without having to be connected to a web service, something that can cause some digital divide problems – in many regions this is still an issue. Even the sharing of programs, for exchanging problems and solutions, is extremely easy since it simply requires to send short pieces of text, by whatever means, again without having to rely on an online platform. Finally, with LibreLogo the emphasis is naturally put on math and science, again, which is a good thing since the spread of a true scientific culture is still an issue.
 LibreLogo: http://librelogo.org
Risorse della lezione
- A step back into the future
- Hands on the tools
- The fear of math
- Drawing with LibreLogo
- Turtle Geometry
- More fancy commands
- The Turtle does the turtle
- Recursion, growth, fractals
- Marta's story - The Turtle Total Trip Theorem
- Starting to go 'round and 'round... to the Halley comet
Immagine slide 5
Immagine slide 6
Immagine slide 9
Immagine slide 18
- Growing Digital Citizens': from watching to sharing, to creating and, finally, to harness the potential of technology for a better society
Immagine slide 21
- Children’s perceptions of what counts as a programming language
- Collection of resources
- Combining tiled and textual views of code
- Comparing textual and block interfaces in a novice programming environment
- Computational thinking definition given by Jeannette Wing
- Creative Commons
- Developing computational thinking in compulsory education
- Growing Digital Citizens
- How programming environment shapes perception, learning and goals: Logo vs. Scratch
- Pencil code
- Scratch Has a Marketing Problem
- Seymour Papert: On Logo
- To block or not to block, that is the question: students' perceptions of blocks-based programming
- What is Free Software?