It is well known the connection between problem-solving and programming skills. Students with higher problem-solving skills find programming easy and can master programming with little or no problems regardless of the programming environment. On the contrary, students with lower problem-solving abilities find it hard to understand programming and are often unable to master it. The groups of students mentioned above usually comprise two-thirds of the entire class, the top and the lowest thirds, respectively. What about the students of “the middle third?” This is probably the group with the most representation; these are students who are able to master programming but with some difficulty. Visual programming language environments are tools designed to involve all students, but perhaps the “middle third” students would benefit most from this approach.
It’s hard to program and most kids won’t become programmers, so why should they learn programming? Programming is also part of everyday life as part of computer science, so learning programming should be the 21st century educational right as soon as possible. It is well known that programming requires higher problem-solving skills and that problem-solving skills can be practised through programming. Students with higher problem-solving skills can master programming with no or little difficulty, so this group of students ‘ motivation is crucial.
On the other hand, students with low problem-solving abilities are facing a lot of difficulties during learning programming, and are often unable to master it. We could facilitate their efforts by choosing an appropriate pedagogical approach. Maybe the most interesting group are “middle-third” students who can master programming with some difficulties. Motivation and appropriate pedagogical approach can be crucial for these students. Choosing the proper programming environment for target age may be the key factor.
Novices in programming need a very gentle introduction to programming, especially those at the elementary school level. Instead of thinking about syntax, students should be able to focus on problem-solving and writing algorithms. Visual programming languages, such as Scratch, offer the syntax-free programming experience that is suitable for beginners. In addition, visual programming languages allow the teacher to shift the context of teaching from math problem solving to games programming. Lastly, the positive attitude towards programming is improved. Considering the above statements, we must be careful not to forget that the main reason for using the languages of visual programming is to focus on teaching programming concepts. Scratch should be a media or tool used to transfer the concepts of programming to “real” text-based programming languages such as Python.
Students with high problem-solving skills can easily master programming, regardless of the language of programming. On the other hand, students with lower problem-solving skills encounter major difficulties while learning programming and may not be able to master it properly. Usually, these two groups make up two-thirds of students in a class. The students of the “middle third” are the ones we can most influence. This is a group that can master some difficulties in programming. We assumed that using Scratch could boost their motivation, attitudes, and achievement based on some previous studies. Scratch can be used as a tool for mediated transfer of programming concepts from block-based to text-based programming languages with the help of the teacher and can enhance motivation for all students. There is a lack of empirical research comparing the use of text-based and block-based visual programming languages at the elementary level in school settings. We conducted research in two primary schools among 50 5th graders.
Students were learning programming in Python, and later in Scratch. Results showed that students with higher problem-solving abilities were more successful in Python programming than students with lower problem-solving abilities. This is not the case when it comes to Scratch. In the case of Scratch, there were no differences in the success between better and “middle third” students which proves the usefulness of using Scratch to learn to programme. Most students had a more positive attitude towards programming after Scratch than after Python. Note that students first learned Python, which is harder than Scratch. This order of introducing different programming languages may seem inverted, but we believe it influenced the motivation of the student positively. We believe that if the languages were introduced vice versa, their motivation would be less.