Why do I prefer teaching the basics of programming with Scratch
SVETLANA IVANOVA metodist, HTP Education Center
There are various opinions of the Scratch programming environment. Some teachers share and warmly support Mitchel Resnik’s message who is the head of the research team at Lifelong Kindergarten of the Massachusetts Institute of Technology, who created the Scratch programming environment: “So that children can not only develop their thinking, but also have the opportunity to express themselves and better understand who they are in fact, we used 4 basic principles when developing Scratch: projects, partners, passion, play. ” This is confirmed by the articles from the rubric “Sharing experience” in the first issue of the publication “Programming in Scratch”. I think we will see a lot of similar articles. At the same time, there is an opinion of computer science teachers who are preparing students for the Republican Olympiad on the subject “Computer Science”. This opinion sounds approximately as follows: “How now to organize the preparation of students for the Republican Olympiad? After all, a whole system of training students has been established, starting from grade 5, and even from grade 4. Who will come to the optional Pascal programming classes? You took all the children to the optional Scratch classes. Create postcards, some animated stories. In a word, play’.
But many computer science teachers also see the advantage of the Scratch programming environment over the PascalABC programming language in teaching students programming in computer science classes. For example, the Scratch vs PascalABC article, in which Viktor Konstantinovich Kokhovets, computer science teacher at the Valishchensky Secondary School of the Pinsk District, answers the question “What are the advantages of Scratch in informatics training in comparison with Pascal we are using now” on the Scratch.by portal under the heading “Scratch VS PascalABC”.
In this case, I would like to recall the statement of Seymour Papert: “A programming language should have a “low threshold” (anyone can start learning this language) and a “high ceiling” (it is possible to create complex projects over time). In addition, programming languages should have “Wide walls” (a programming language must support various projects, so that people with different interests can get involved in the process of learning the language). I got the impression that it was the “low threshold” of the Scratch environment that provoked false ideas among some computer science teachers about its potential. Let me give you an example of statements to Scratch: “How can you take Scratch as a serious start in developing algorithmization and programming skills, if primary school teachers can teach Scratch?” And there are also opinions that you can work in Scratch up to grade 4, and then get bored and children lose interest. From conversations, unfortunately, it often becomes obvious that interest disappears primarily in the teacher, and not in the students. Maybe this is because they could not see the "high ceiling" or are they embarrassed by the "wide walls"?
Let's take to look at the Scratch as a means of teaching programming. Let us turn to pro-pedopedia - a free encyclopedia of programming languages - and try to understand the capabilities of the Scratch environment in comparison with some of the languages that are now popular in teaching schoolchildren programming.
Scratch was created as a tool that will make programming simple and intuitive. Its purpose is to allow children who do not have programming experience to learn the basic principles of imperative, object-oriented, and multi-threaded programming.
Created under the influence of Logo, Smalltalk.
Paradigms supported by Scratch (further in brackets are the languages that support this paradigm and are heard by teachers and schoolchildren):
imperative: describes the calculation process by describing the control logic of the program, that is, in the form of a sequence of separate commands that the computer must execute. Each command is an instruction that changes the state of a program (C, C #, C ++, Java, PHP);
at the level of values: focuses on the study of data types, that is, values and elementary operations on them, their structure and properties. Usually elementary operations form an algebra over a value space (C, C #, C ++, Java, Pascal);
object-oriented: each sprite is actually an object with its own properties (variables) and behavior (scripts), and different objects can interact (C #, C ++, Java, PHP);
scalar: a low-level paradigm that dictates the absence of matrix operations in the language. Each operation is applied to individual scalar values, but not to the entire array (C, C #, Java, Pascal);
structura (in the low-level sense): all programs are constructed from a limited set of elements or blocks (C, C #, Pascal);
dynamic: the majority of data type checks are performed at the program execution stage, although some checks (for example, checking syntactic correctness of the code) are performed at the compilation stage. In addition, data types are associated with specific values, and not with variables (PHP, Python);
implicit: does not require an explicit type declaration for the variables used;
typed: the specification of each operation includes data types that can be arguments of this operation, and prohibits the application of this operation to all other data types. (C, C #, C ++, Java, Pascal).
We can conclude that Scratch fully justifies the purpose of creation, and the application is limited to educational and student-interesting tasks.
You can not ignore the experience. At one time, working as a computer science teacher, I started preparing students for programming Olympiads from the 5th grade, since district and regional Pascal programming Olympiads were already held for students in grades 5-6. There is also experience in conducting optional classes for students in grades 2-4 “Creative activity in the Scratch programming environment”, as well as for students in grades 5-6, “Creating computer games in the visual programming language Scratch”. I propose to compare the list of knowledge and skills of students in grades 5-6 that is sufficient for successful participation in the Pascal programming Olympiad, and the list of knowledge and skills acquired as a result of attending optional classes "Creating computer games in the visual programming language Scratch" for students 5- 6 classes
Another conclusion in favor of the Scratch environment as a means of teaching programming: as a result of attending the optional classes “Creating computer games in the visual programming language Scratch” for students in grades 5-6, the child will possess knowledge and skills even more than sufficient level for successful participation in programming olympiads. If we talk about the specifics of problems solved in the framework of such olympiads, I will give one more example. On May 15, 2018, the Vitebsk Regional Olympiad in Scratch programming for students of grades 5-6 was held in Orsha, an honored guest which was Mitchell Reznik. One of the organizers of the Olympiad was the Faculty of Mathematics and Information Technology of VSU named after P.M. Masherova, and assignments were made by the head of the Department of Informatics and Information Technology Aleinikova Tatyana Grigorievna. I note that this Olympiad for programming in the Scratch environment is distinguished from the majority of such olympiads and contests by the type of tasks. One of them is the ATM task.
The ATM has a sufficient number of banknotes in denominations of 50, 20, 10 and 5. The user, upon request, enters the amount (not more than 500) and receives it with a minimum number of notes. The image of notes appears on the scene, a message is issued to the user. Provide for handling incorrect input of the requested amount.
I think that all teachers of computer science, when preparing students for programming olympiads of different levels, solved a similar problem with students. But in this case it’s not enough to solve, the solution to the problem is complicated by the fact that you need to illustrate it.
At Pascal programming olympiads for grades 5-6, as a rule, tasks for processing a string data type are not offered. And in the Scratch, they solve such problems. Here is another task of the Vitebsk Regional Olympiad on programming in the Scratch environment. The task of "ABC.
Develop a project in which the text entered from the keyboard by the user is displayed as a line running across the scene. Use the Alphabet sprite costumes to display symbols (these are Russian letters and a space, other symbols are displayed by a space).
If the entered text contains the word Scratch, then after the creeping line on the stage appears the congratulation "Happy Birthday, Scratch."
Indication. The letters of the alphabet are stored in the list “alphabet”, their images in the same order - in suits of the sprite “Alphabet”.
In my opinion, the main advantage of solving problems in Scratch is the ability to visualize the result. Then the process of solving the problem becomes clearer for the child, because what he has to imagine, he sees on the screen, which helps the student in creating a formal model of the problem. It is the creation of a formal model for solving the problem that is difficult for children at this age.
In addition, Scratch offers a powerful set of multimedia tools: standard blocks provide many graphical and sound functions, as well as the ability to process signals from the keyboard, mouse and sensor. Therefore, I would like to mention the Scratch environment as a powerful tool for teaching students programming through the creation of computer games. Let the child not need write code by hand, but by thinking through complex algorithms and collecting blocks, it can create amazing projects. Depending on the genre of the game, you need to have special knowledge in mathematics, to understand the physics of the processes taking place. The level of complexity of computer games created by students can be assessed by entering the names of games in Russian or English on the scratch.mit.edu website, for example, spots, tetris, three in a row, chess, platformer or enter the name of your favorite game. I am convinced that after you look inside the project, you will appreciate the Scratch programming environment for the ability to create complex projects over time and for the ability to create various projects that allow students with different interests to get involved in the programming process.
A month after his visit to Belarus, Mitchel Resnik shared his impressions:
“Teachers in Belarus are still looking for the best ways to integrate programming into the school curriculum. In Minsk, I took part in a round table with teachers, officials and researchers in the field of education. One of the main debates was about “rigor” and “creativity”. Some participants felt that schools should focus on a disciplined, rigorous approach to teaching basic skills and basic concepts. Other participants advocated a project-based approach aimed at encouraging creative thinking and creative expression. I argued that this was a false dichotomy: I believe that students can and should learn basic skills while working on creative projects. I believe that students are more likely to learn basic concepts and skills well while they are working on projects that are not indifferent and interesting to them.”
Conclusion: it’s easy to start programming in Scratch, but how much the “high ceiling” and “wide walls” will depend on us teachers.