Abstract
The study examined the effect of teaching text-based programming with a physical programming tool on secondary school students’ computational thinking skills and self-efficacy perceptions. The study was conducted according to a sequential explanatory design as a mixed method research. The study group consisted of 85 secondary school students. Within the scope of the study, a physical programming tool called Micro:bit was used to teach Python programming for a period of 6 weeks. Data were collected using the Self-Efficacy Perception Scale for Computational Thinking Skill, Bebras: International Challenge on Informatics and Computational Thinking Tasks, tests focused on programming tool, concepts, and processes, and through semi-structured interview questioning. According to the findings obtained from pretests and posttests, a significant and positive difference was found in the students’ computational thinking skills and self-efficacy perceptions towards computational thinking skill. As a result of having received instruction in programming, the students satisfactorily learnt the required programming concepts and processes. Through learning Python programming with a physical programming tool, the students not only gained the skills required to write appropriate syntax, and to test and debug code, but they also learnt programming concepts such as variables, conditional expressions, loops, and functions.
Keywords
Introduction
In recent years, cultivating students with programming skills has become a current and vital issue. These skills are certainly among the required skills of the 21st century and undoubtedly include the highly important skill of technological literacy (Lau & Yuen, 2011). Computational thinking skill, which is also associated with programming skills, has also emerged as highly important (Cheng et al., 2023; Hsu et al., 2018; Li et al., 2020; Wing, 2010). Arguing that this could form an inseparable part of education in the future, Wing (2008) also emphasised that the teaching of such skills to students is of vital importance. The promotion of computational thinking has since resulted in the worldwide implementation of K-12 education in computational thinking (Bocconi et al., 2016). Computer programming, also generally referred to as coding, is an essential skill in the field of computer science (CS) and which serves as the primary means for teaching computational thinking to younger aged learners (Grover & Pea, 2013).
The literature has sought answers regarding how best to teach computational thinking to students, the introduction of the computational concepts and practices as students’ thinking levels increase, and the utilisation of tools during the process of teaching such concepts. As Ezeamuzie and Leung (2022) stated, the seemingly limitless potential of computational thinking raises equally important questions regarding its practical implementation through empirical research. This includes inquiries about what has been taught, learnt, and assessed in the context of computational thinking.
In order to cultivate and teach computational thinking, solving programming problems can help foster the advancement of students’ computational thinking skills (Zhou et al., 2023). Computational thinking supports students in thinking about learning through programming, and computer programming provides an appropriate context and opportunity to cultivate computational thinking among students (Brennan & Resnick, 2012). However, as known for a considerable time, novice programming students frequently encounter challenges and frustration, particularly in relation to learning syntax and program/code design (Powers et al., 2007). Students experience significant difficulties in acquiring the skills needed to learn programming languages and in transforming the acquired learning into actual performance (Ozdinc & Altun, 2014). Since learners’ first experiences in learning programming are vital, a dedicated approach should be developed that aims at keeping their motivation sufficiently high as they learn (Bakar et al., 2020).
Many current and new approaches have emerged in programming teaching that have aimed to eliminate certain problems. These novel approaches have aimed to support students to both gain the required skills and to progress in their conceptual learning, especially with regards to the programming teaching process. There have also been studies published that have utilised physical tools in the teaching of programming, and which have shown positive outcomes on students’ thinking skills and their conceptual learning (Feldhausen et al., 2018; González et al., 2018; Hambrusch et al., 2009). However, the literature is insufficient regarding the extent to which programming-tool-assisted teaching elevates academic achievement in programming and computational thinking skills, with the current body of research falling short in determining specific factors that motivate students and ensuring their active participation in the learning process. Starting from this position, the outcome of programming-tool-assisted teaching on students’ computational skills and related self-efficacy perceptions and conceptual learning constitute the research area which forms the focus of the current study. Under this umbrella context, answers to the following research questions are sought: 1. Is there a significant difference between students’ self-efficacy perceptions regarding computational thinking skills before and after the application of text-based programming teaching assisted with a physical programming tool? 2. Is there a significant difference between the results obtained by students from undertaking Bebras tasks before and after the application? 3. What are the learning levels of students regarding programming concepts and processes in text-based programming teaching assisted with a physical programming tool? 4. What are students’ views on text-based programming teaching assisted with a physical programming tool?
Background
Computational Thinking
In examining the programming learning process, it is clear that students must use cognitive and high-level thinking skills during programming (Law et al., 2010). Among these advanced thinking skills, computational thinking has drawn considerable interest. Even though Wing (2006) developed the use of this concept, Papert (1996) originally described computational thinking skill while expressing how computers could be used to solve geometric problems. According to Wing’s definition, computational thinking is ‘thinking like a computer scientist’ and related to ‘solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science’ (Wing, 2006, p. 33). Subsequently, Wing articulated the definition as a process of thinking that includes problems and solutions formulated by an information processing unit to present solutions in an efficient form (Wing, 2010). Moreover, Sysło and Kwiatkowska (2013) described computational thinking as a set of thinking skills centring on computer programming principles. Sadik et al. (2017) stated that computational thinking includes problem solving, pattern recognition, algorithm, abstraction, problem separation, and assessment. While various definitions have been given for computational thinking, the core elements in all definitions encompass a collection of concepts and cognitive processes that assist learners in problem solving through formulation, analysis, and representation (e.g., Barr & Stephenson, 2011; Mannila et al., 2014).
In the exploration of the concepts and competencies of computational thinking, numerous scholars have made efforts to articulate its fundamental core skills and attributes. Brennan and Resnick (2012) introduced a framework for Computational Thinking that outlined the essential attributes across three dimensions; (a) computational concepts (sequencing, loops, events, and conditionals), (b) computational practices (testing, debugging, reusing, and abstracting), and (c) computational perspectives (expressing, connecting, and questioning). On computational concepts, Witherspoon et al. (2018) defined them as sequences, conditionals, and iteration, while Tran (2019) categorised them as sequences, algorithms, looping, debugging, and conditionals. Barr and Stephenson (2011) also put forward a structured model aimed at identifying the fundamental core concepts as data collection, data analysis, data representation, abstraction, analysis and model validation, testing and verification, algorithms and procedures, problem decomposition, automation, control structures, parallelisation and simulation. In addition to outlining fundamental concepts and capabilities, they emphasised the significance of dispositions relating to “areas of values, motivations, feelings, stereotypes, and attitudes (p. 118)” that are relevant to computational thinking. Anderson (2016) proposed five core competencies of computational thinking as decomposition, pattern recognition, abstraction, algorithm design, and evaluation. Despite variations in the fundamental concepts and representations found in various computational thinking frameworks and models, it is notable that many share commonalities, particularly in components such as decomposition, pattern recognition, abstraction, algorithm design, and evaluation (Cheng et al., 2023). In the current study, Brennan and Resnick’s (2012) framework along with and Barr and Stephenson’s (2011) structured model were taken as the basis for teaching computational thinking. Concepts such as variables, sequencing, loops, and conditionals were extended to include physical programming concepts such as input/output (i/o), LED lights, button, and sensors. In terms of computational practices, a teaching process was planned that included the components of testing, debugging, programming, decomposition, pattern recognition, abstraction, and algorithm design. Finally, for computational dispositions, it was aimed to support students’ attitude and their self-efficacy by using a physical programming tool within a constructionist approach to teaching programming.
The computational thinking paradigm applied in K-12 education is viewed as an approach grounded in problem analysis that allows students to create solutions by breaking them down into a sequence of computational steps. Algorithms and programming, which form a sequence of computational steps, are emphasised when integrating computational thinking into K-12 education since it plays a significant role in fostering computational thinking skill in students (Cheng et al., 2023). Scherer et al. (2019) found that computer programming, the prevailing method for nurturing students’ computational thinking skills, has a positive correlation with the enhancement of their cognitive ability. As Ezeamuzie and Leung (2022) stated, programming is a valuable skill and will continue to be a fundamental means of developing computational thinking. However, the primary focus should be on devising effective approaches to promote computational thinking learning activities (Denning, 2017). When students enhance their motivation and learning confidence through the use of learning tools and instructional strategies, they not only experience self-directed learning during practice but also remain motivated and confident in their skills development throughout the process (Cheng et al., 2023).
Students’ Difficulties in Learning Programming
According to Lahtinen et al. (2005), students can find programming a challenging task, and often believe that it requires considerable expertise which only those with advanced programming literacy can accomplish. Especially, that students unfamiliar with programming must face being able to deal with syntax errors whilst writing complex logical commands (Choi, 2012). Moreover, younger students may find it especially challenging to recall programming concepts and how to use different commands (Cheng et al., 2023). Likewise, programming encompasses numerous abstract concepts that younger students may struggle to grasp, leading to a potential loss of interest and motivation in learning programming. This, in turn, can hinder the development of students’ computational thinking skills (Sung et al., 2017). Similarly, Bakar et al. (2020) pointed out that having even minor negative experiences during the initial stages of programming learning can lead to students becoming discouraged, potentially harming their programming performance potential.
Approaches or strategies that aid students in problem formulation and problem solving, while also reducing cognitive load, can be used to support the effective teaching of computational thinking (Zhou et al., 2023). Visual programming environments as well as interactive tools and devices have the potential to stimulate students’ interest and engagement in learning programming (Wu & Su, 2021). When students participate in learning activities such as coding or working with robots, both males and females exhibit positive attitudes toward these educational endeavours (Wu & Su, 2021). Therefore, physical computing initiatives may be considered a viable solution to the dilemma faced by younger-aged students learning traditional programming.
Constructionist Approaches for Teaching Programming
The development of computational thinking skills and the most efficient means of learning programming is facilitated by adopting the constructionist approach via presenting a comprehensible and concrete product in a real world format (Stager, 2007). Papert (1993) explained the constructionist approach as students’ making connections with different ideas and information through experimentation and discovery; thus, transforming them into products collaboratively. According to Papert’s constructionism theory, knowledge cannot be transferred directly to students. However, upon introducing the active participation of students in the learning process, abstract concepts can be taught within an appropriate environment and with appropriate tools using different applications. When computer science teaching is examined pedagogically, the constructionist approach can be seen at the forefront of programming teaching. Papert expressed this concept as ‘learning by doing’ in which the student is at the centre, and thereby learning is converted into experience. Considering programming taught within a constructionist approach, the results emerge as offering a rich, versatile, and deep form of learning (Papert & Harel, 1991). When traditional and innovative approaches are compared, the latter suggests that it is advantageous to teach programming with less effort and fewer problems (Byrne & Lyons, 2001; Resinovic, 2015).
Today, many different curricula, programming languages, and tools are available for teaching programming. The reason for this array is the necessity of using various different tools to suit different learner age groups. Weinberg (2013) stated that various methods can be implemented for the efficient learning of computational skills, pointing out that not only computational skills can be gained but also programming can be taught using unplugged pedagogy, block-based and text-based programming, as well as robotics programming or interdisciplinary methods. In recent years, the literature has included studies in which physical programming can also be used to develop computational thinking skills and may be applied as a form of programming assistance (Berland & Wilensky, 2015).
Currently, robot sets, through which students get to visually see that their coding works in concrete terms, are referred to as educational robots or physical programming tools. It may be said that this approach first started with Papert’s use of robots within the educational context (Papert, 1993). It has been stated that in using educational physical programming or robot programming tools, a learning environment can be created that helps foster students’ skills in cooperation and communication, as well as in problem solving, critical thinking, and creativity (Eguchi, 2015; Uzun & Uz, 2018). Physical programming tools provide environments where students can both practice and revise the programming knowledge learnt during their lessons, to develop various perspectives by doing activities in other lessons, and reinforce previous and recently acquired knowledge (Cortina et al., 2012; Freudenthal et al., 2010). The use of physical tools has been stated as improving creative thinking and problem-solving skills and making learning more enjoyable, which results in a more positive attitude towards programming and improved motivation towards the overall learning process (Goud Yadagiri et al., 2015; Karim et al., 2015; Resinovic, 2015).
Cultivation of Computational Thinking Skills through Physical Programming
Physical programming tools started to be used in the constructionist approach (Harel & Papert, 1990), enabling students to transfer the results of their studies to a more concrete physical environment through which they could interact extensively and experience mobility by moving beyond the virtual world of the two-dimensional screen whilst learning programming (Banzi & Shiloh, 2015; Richard, 2008). However, problems related to the complexity of content knowledge, design skills (Junior et al., 2013; Rubio et al., 2014), the teaching setting, and the provision of physical programming tools for use with educational robots have largely prevented teachers and students from accessing this form of learning experience (Mozo et al., 2017; Peixoto et al., 2018).
In the literature, it can be seen that text-based programming languages and physical programming tools can be employed in the process of developing computational thinking skills (Nouri et al., 2019). It has been stated that such an environment and the right tools can improve the programming skills of students, making the learning process more active, and thereby increasing the participation of learners. As such, they can increase their success and also develop their creative thinking and problem-solving skills (Numanoglu & Keser, 2017). Przybylla and Romeike (2014) pointed out that physical programming can contribute to students within the scope of courses in computing. It can clearly be said that during the teaching process, students’ attention span increases when using physical programming tools as they demonstrate interest in the tool itself (Barba & Chancellor, 2015; Sentance & Schwiderski-Grosche, 2012).
There are various types of physical programming tools now available. BBC’s Micro:bit is an example of an educational microcontroller, and is a redesign of the widely used BBC Microcomputer project from the 1980s to answer today’s needs for technological instruction (Rogers et al., 2017). The most important features of the Micro:bit are that it represents a feasible and motivating physical programming tool for both students and teachers, as it can be easily connected to any personal computer through a quick and simple start-up (Schmidt, 2016). BBC’s Micro:bit has been designed to offer a simple and uncomplicated way for students to learn programming effectively without need for any complex prior knowledge of programming or of the physical programming tool itself. Without needing to install additional hardware, a significant level of programming can be achieved via the tool’s built-in sensors (Bernad et al., 2021). It is stated that Micro:bit can help students to learn programming language concepts such as algorithm, loop, randomness, logic, variables, and debugging, which are easily taught with its simple interface and user-friendly features.
Studies have shown that the use of physical programming tools can enhance the learning process, leading to extensive learning of technology and design methods (Capay et al., 2022; Jin et al., 2016; Radu et al., 2011). Teaching via Micro:bit programming can facilitate the transfer of text-based programming (Python) from block-based programming (Scratch) to physical programming environments, and thereby renewing the educational process of learning to code (Videnovik et al., 2018). Videvonik et al. (2018) demonstrated that it is easy to connect devices and sensors using Micro:bit, and that students can easily visualise and touch the direct results of their work, thereby reducing some of the challenges often faced during the programming learning process and even fostering increased interest in learning to code. Positive data on the usability, creativity, and tangibility of the Micro:bit device, and the experiences of students in terms of programming learning were reported in a study from the United Kingdom (Sentance et al., 2017). In another United Kingdom study, Gibson and Bradley (2017) examined students’ perceptions of using the BBC Micro:bit in Northern Ireland, with 64% of the study’s participants stating that it was easy/very easy to use, 90% stated that it was useful in problem solving, and 90% reported that the tool was entertaining/very entertaining to use.
However, the literature only includes limited numbers of studies regarding the contribution level of Micro:bit to the educational processes, to the target audience, and the impact extent on the final goals that were aimed to be achieved. To exemplify, there have been a limited number of studies published revealing to what extent Micro:bit helps to increase students’ programming success, programming skills, computational thinking skills, motivation, and class participation. For these very specific reasons, the current study aims to determine the effectiveness of text-based programming teaching assisted by physical programming tool in secondary school students to elevate their computational thinking skills and self-efficacy perceptions.
Method
Research Model
In this research, a mixed method was applied with both quantitative and qualitative data being examined. Mixed method research allows researchers to collect data using qualitative and quantitative approaches and methods in a single study, to analyse the findings accordingly, and to make inferences based on the data (Creswell & Plano Clark, 2014; Leech & Onwuegbuzie, 2009; Tashakkori & Creswell, 2007). Sequential explanatory design, one of the mixed method research types, was applied in the scope of the current study. Creswell and Plano Clark (2014) explained sequential explanatory design as a two-stage process, where quantitative data is primarily collected and analysed. Subsequently, qualitative data are then collected and analysed in order to explain and examine the quantitative findings in further detail (Buyukozturk, 2007).
Study Group
Frequency and Percentage Distribution of Students by Gender and Grade.
Research Process and Data Collection
The data collection stages including pre/in/post application are detailed as follows.
Pre-Application
The ‘Self-Efficacy Perception Scale for Computational Thinking Skill’ and ‘Bebras: International Challenge on Informatics and Computational Thinking Tasks’ were applied to the students as a pretest, with permission granted by the university’s Scientific Research and Publication Committee.
In-Application
The research was conducted over a 6-week teaching period. The students responded to questions in an ‘End-of-Lesson Self-Assessment’ sheet that focussed on the achievements of each week. This assessment was prepared by the researchers considering the students’ achievement during the application process. In addition, an observation form was prepared by the researchers to measure the development of the students’ cognitive and psychomotor skills throughout the course, as well as to monitor the course itself. The observation form was completed by the researchers at the end of each lesson. During the course process, various pedagogies including lecturing, demonstration, questioning, problem-based practice, end-of-lesson assessment, and home assignments were employed. The topics in the teaching process consisted of programming concepts and processes, as well as using the features of the physical hardware. An outline of the teaching process is presented in the Appendix A.
Post-Application
At the end of the application, the pretest was reapplied as a posttest, with the ‘Self-Efficacy Perception Scale for Computing Thinking Skill’ and ‘Bebras Tasks’, Test for Programming Tool, Concepts, and Processes’ applied, followed by focus group interviews.
Self-Efficacy Perception Scale for Computational Thinking Skill
The Self-Efficacy Perception Scale for Computational Thinking Skill was developed by Gulbahar et al. (2019). The scale consists of 36 items split between five subfactors; competence in problem solving, algorithm design, basic programming, data processing, and self-confidence. The scale is formed as a 3-point, Likert-type structure to examine secondary school students’ decision-making processes. The total reliability coefficient of the scale was found to have a Cronbach alpha value of .943.
Bebras – International Challenge on Informatics and Computational Thinking Tasks
Names, Difficulty Levels, and Informatics Concept Relation of Selected Tasks.
As an example of the Bebras Tasks, the Blinking LEDs task is presented in the Appendix B. In this particular task, the learner is required to read and understand a simple program, and then to report the status of three LEDs over a certain time period, that is, to simulate and trace the execution of the program. This is an important activity that programmers also have to undertake when something does not work as the programmer intended, and is a part of what is referred to as debugging, where users have to understand what the program is actually doing in order to discover the root cause of something that went wrong when running the program.
End-of-Lesson Self-Assessment and Achievement Test for the Programming tool, Concepts, and Processes
Sample Self-Assessment Questions for Week 4.
Learning Outcomes of Achievement Test Questions for Programming Tool, Concepts, and Processes.
Sample Questions From Achievement Test.
Focus Group Interviews
A total of 12 students (six from seventh grade, six from eighth grade) were selected for focus group interview based on their scores (high score, average score, and low score) from the achievement test based on the programming tool, concepts, and processes. Two focus group interviews took place, with one for each grade level (i.e., six seventh-grade students, with two having had a high score, two with an average score, and two with a low score). Prior to each interview, the students’ permission was gained with regards to audio recording the interview. Then, the audio recordings were evaluated and reported according to qualitative data analysis methods as supportive data for the quantitative research. The four questions asked during the focus group interviews were as follows: 1. What do you think about learning Python with Micro:bit physical programming tool? Do you think the physical programming tool helped you learn programming concepts/programming whilst learning Python programming? 2. What motivated you the most while learning Python with the physical programming tool? What do you consider were the positive aspects of this process? 3. Did you face any difficulties or problems while learning Python with the physical programming tool? If yes, what do you consider were the negative aspects of this process? 4. What would you like to change in the Python teaching process with the physical programming tool? What would you suggest to make the learning more efficient?
Data Analysis
IBM’s SPSS Statistics program (version 28.0.1.1) was utilised in the analysis of the collected data. The ‘Self-Efficacy Perception Scale for Computing Thinking Skill’ and ‘Bebras Tasks’ were applied both as a pretest and posttest. The achievement test based on the programming tool used, concepts, and processes was also applied as a posttest. A paired sample t test was conducted to see whether or not a difference existed between the pretest and posttest scores of the group based on the scope of the research. Content analysis was carried out with data collected from the focus group interviews. At the end of the interviews, the collected data were transferred to a computer and read several times over. The answers given to the questions were then divided into themes and individual answers coded under these themes. Finally, the data were re-examined in order to check the theme and code compatibility.
Findings
Findings of Self-Efficacy Perception Scale for Computational Thinking Skill
As a result of the analysis for the assumption tests of the Self-Efficacy Perception Scale for Computational Thinking Skill, the skewness and kurtosis coefficients were found to be .73 and .28, respectively. Kurtosis and skewness values were expressed as a ‘normal distribution’ since they were between +1.5 and −1.5 (Tabachnick & Fidell, 2012). The mean value of the pretest data of the Self-Efficacy Perception Scale for Computational Thinking Skill was calculated as 58.84, whilst the mode value was 54.68, and the median value was 56.79. The approximate values indicate that the test has a normal distribution. As the study group consisted of 85 students, the Kolmogorov-Smirnov test was selected which returned a value of .0071; indicating that the pretest data presented a normal distribution.
The internal reliability coefficient Cronbach alpha value was found to be .89 in the reliability test completed with data collected from the students, whilst the reliability coefficients for the scale’s factors varied between .76 and .93. From the research, as a pretest, the reliability coefficients of the scale were found to be .78 and .92. A reliability coefficient value between .70 and .90 shows that the scale has high reliability (Buyukozturk, 2007; Hinton et al., 2014). It can therefore be said that all scale structure and subfactors have sufficient reliability values.
Pretest Statistical Analysis Findings of Self-Efficacy Perception Scale for Computational Thinking Skill
Pretest Results of Self-Efficacy Perception Scale for Computational Thinking Skill.
Accordingly, the mean score for the algorithm design competency factor was 12.18 (SD = 4.38), for problem-solving it was 14.92 (SD = 4.59), for data processing competency it was 11.13 (SD = 3.01), for basic programming competency it was 11.14 (SD = 3.89), and for the self-confidence competency factor the mean score was 9.47 (SD = 2.23). The scores related to each factor can therefore be stated as being mostly below average.
Posttest Statistical Analysis Findings of Self-Efficacy Perception Scale for Computational Thinking Skill
Posttest Results of Self-Efficacy Perception Scale for Computational Thinking Skills.
Accordingly, the mean score of the algorithm design competency factor was 24.16 (SD = 3.89), for the problem-solving competency it was 27.87 (SD = 4.06), for the data processing competency the mean score was 18.92 (SD = 3.94), for basic programming competency it was 13.76 (SD = 3.02), whilst for self-confidence the mean score was 13.54 (SD = 2.91). The posttest scores related to each factor increased compared to the pretest, as did the general scale average score.
Pretest and Posttest Comparison Findings of the Self-Efficacy Perception Scale for Computational Thinking Skill
Pretest and Posttest Results of Self-Efficacy Perception Scale for Computational Thinking Skills.
When the statistical results are assessed (see Table 8), it can be seen that the mean of the scale scores increased from 58.84 to 96.89 prior to the participants having received the training. Whereas the students scored between 36 and 78 points prior to the application, their scores increased to between 86 and 108 following the application. The median score was 94.03 in the posttest and the arithmetic mean was 96.89, indicating that the study was close to a normal distribution. Moreover, the fact that the self-efficacy perceptions of the students for computational thinking skill following the application was below the average and close to the scale sub-score clearly shows their development.
Pretest and Posttest Paired Sample t test Results of Self-Efficacy Perception Scale for Computational Thinking Skill.
The statistical significance level of p = .027 between the pretest and posttest scores was found to be small (p < .05). Owing to the differences in the level of significance and the averages, there was a statistically significant increase seen in the self-efficacy perception levels of the students who received text-based programming education assisted with a physical programming tool. The effect size calculated as a result of the test shows that the difference between the posttest and the pretest was 2.17. Therefore, since this effect size was substantially larger than 1, the effect was considered to be very large (Green & Salkind, 2014; Tabachnick & Fidell, 2012). According to these results, it may be concluded that the students’ self-efficacy perception levels towards computational thinking skill were boosted in line with their increased scale scores following the application. In conclusion, it may be stated that text-based programming teaching assisted with a physical programming tool can positively influence students’ self-efficacy perceptions regarding computational thinking skills.
Bebras Tasks’ Pretest and Posttest Statistical Analysis Results
In the study, the average score from the 15 Bebras tasks applied to the students as a pretest was 19.81, with skewness and kurtosis values of .538 and .62, respectively. As these skewness and kurtosis values were between +1.5 and −1.5, and the number of students in the study group exceeded 30, it may be stated that this indicated a normal distribution (Tabachnick & Fidell, 2012).
The skewness value of the 15 Bebras tasks applied to the participant students as a posttest was found to be .348, and the kurtosis value was −.41. Since these skewness and kurtosis values were also between +1.5, and −1.5 and the number of students in the study group exceeded 30, this also indicated a normal distribution (Tabachnick & Fidell, 2012).
Pretest and Posttest Statistical Analysis Results of Bebras Tasks.
Pretest and Posttest Paired Sample t test Results of Bebras Task Test.
Due to the differences seen in the level of significance and the averages, there was a notable statistically significant increase seen in the computational thinking skills of the students after having received text-based programming education assisted with a physical programming tool. The effect size calculated at the end of the test indicates that the difference between the pretest and the posttest was 1.39. Since this effect size was substantially larger than 1, the effect is considered very large (Green & Salkind, 2014; Tabachnick & Fidell, 2012). According to the results, it may be said that the difference between the pretest and posttest scores on the Bebras task was significant. There was also an increase in seen in the scores between the students’ prestudy computational thinking skills and their poststudy skills. Accordingly, it may be said that the text-based programming teaching assisted with a physical programming tool had a significant and positive effect on the students’ computational thinking skills.
Findings Related to Students’ Learning Levels for Text-Based Programming Concepts and Processes
Weekly Evaluation and Achievement Test Results.
Table 12 presents the results of the students’ weekly self-evaluation and post-application achievement test analysis. When examining the weekly evaluations, it becomes evident that students are engaged in an ongoing learning process related to programming concepts and practices. The average of the achievement test score was calculated as 88, with a median value of 92, and standard deviation of 13.72 following analysis of the test for the programming tool, concepts, and practices. Based on the results of the tests, it can be inferred that the teaching of the text-based programming Python language, assisted with a physical programming tool, resulted in a positive improvement in the students’ understanding of programming concepts and practices. In short, at the end of the course, the students had sufficiently learnt how to use the interface and features of the programming tool, convert an algorithm into an error-free program, write syntax in the Python language, as well as testing, debugging, and the use of variables, logical operators, conditional expressions, loops, lists, and functions in their programs.
Students’ Views Regarding Text-Based Programming Teaching Assisted with a Physical Programming Tool
Students’ Views on Learning Text-Based Programming with a Physical Programming Tool
The students said that the Micro:bit physical programming tool helped motivate them in their learning (n = 12), that it featured instructive qualities (n = 11), and that it facilitates understanding (n = 10) whilst learning programming. Although the Python programming language was perceived as difficult, the participant students pointed out that they understood the concepts of looping (n = 10) and listing (n = 7) more comprehensively having practised the concepts with Micro:bit. Some of the participant students’ views were as follows: S1: ‘I really enjoy using Micro:bit. It made it easier for me to learn Python, which I learnt for the first time. I didn’t understand what loops meant in Small Basic and Minecraft that we used previously, but now I understand them. It’s actually a very easy subject’. S2: ‘I used Arduino before, but using Micro:bit was more fun. It is small and has many features.’ S7: ‘I had learnt to use Small Basic in a previous course; However, it was very boring and difficult. So, I was afraid when I heard that we were going to be learning Python, but thanks to Micro:bit, I understood the code that I wrote much more easily’. S11: ‘I didn’t know much about coding. It was always difficult for me to understand what I was writing. I used to say that I can’t code with Python, but thanks to Micro:bit, I understood what I was doing step by step. Now I enjoy coding’.
Students’ Views on the Positive Aspects of Learning Text-Based Programming with a Physical Programming Tool
The students stated that seeing the concrete outcome of the program they wrote and getting instant feedback about their program (n = 10), and the motivational features and user-friendliness (n = 9) of Micro:bit were considered positive aspects of its use. They explained that it was now possible for them to use the program application process, and that this helped facilitate cooperation (n = 7). Finally, they mentioned that programming with Micro:bit offered them a different learning experience (n = 6). Some of the students’ views were as follows: S4: ‘That was so much fun. I could instantly see that the code I had written was working. It made me understand what I was doing’. S6: ‘Python programming is a very difficult language, and one that I hadn’t learnt much before. However, it was a lot of fun to run the code I had written with Micro:bit and to create useful projects. I felt happy. It was very nice to be able to make a pedometer, measure a pH value, or the ambient temperature’. S7: ‘It was fun to try and execute the code that I had written in class with my friends’.
Students’ Views on the Challenging Aspects of Learning Text-Based Programming with a Physical Programming Tool
On the whole, the students had not developed negative emotions regarding the Micro:bit physical programming tool whilst learning to program in the Python language; on the contrary, the tool was reportedly considered to be a motivating and driving force in their learning experience. Apart from two of the students, the remaining 10 stated that they had not encountered any negative situations, and did not express any negative views. Some of the participant students’ views were as follows: S3: ‘It was tiring to write code on the computer, install it, and then look at it from there. Using Micro:bit was somewhat tiresome’. S5: ‘I did not find it difficult to use Micro:bit, but I had a hard time understanding some things about the (accelerometer) component and listing in Python!’ S4: ‘I did not have a hard time. I actually had fun using Micro:bit, but maybe it’s a little difficult to try and write code using Python in class because I was just learning. However, I could see the results of the program that I had written immediately; although it didn’t work when I mistyped and left me trying to find the problem in the code I had written’. S12: ‘It was not difficult to learn and use Micro:bit. On the contrary, it was surprising to learn that there were so many features in a tool like a credit card. I think Python is easy to learn, and maybe that is because I learnt it with Micro:bit’.
Students’ Views on Suggestions for the Learning Process of Text-Based Programming with a Physical Programming Tool
The students stated that they found the Micro:bit physical programming tool to be quite interesting to use whilst learning programming (n = 12) and that they also wanted to use the tool in other lessons (n = 12). They also stated wanting to develop more projects (n = 11), to do activities that developed more programming skills (n = 10), to use the physical programming tool on different programming platforms (n = 9), spend more time using the tool (n = 7), and to participate in the competition (n = 5). Some of the students’ views were as follows: S7: ‘I would like to do more activities. When I wrote a lot of code, I understood the logic behind it much better’. S9: ‘I had a lot of fun with Micro:bit, I wish I could do more such lessons. These lessons were almost game-like’. S1: ‘I was very interested in working with both Python and Micro:bit. I really loved it a lot’. S4: ‘I was happy to learn concepts such as loops and accelerometer. Also, pushing the buttons was a lot of fun. I made beautiful games all by myself’.
Consequently, it can be said that almost all of the students who participated in the focus group interviews enjoyed the lessons, and started to think positively by asking about follow-on courses. It was concluded that the students were happy to be able to see concrete and active versions of the code they had written with the Python abstract programming language. Having the opportunity to execute the programs they had written with their classmates in the same environment helped to increase their self-confidence. It was observed that the students showed a great deal of motivation towards the lessons and programming whilst working with the Micro:bit physical programming tool during the application process. They also stated having enjoyed working with their classmates in both classroom activities and whilst working on the project. In addition, they stated that working on the program by simple trial and error was more effective in helping them understand certain programming concepts.
Discussion
Within the scope of the first sub-problem of the research, a statistically significant difference was found between the students’ self-efficacy perceptions of their computational thinking skills before the application and their post-application perceptions. While more than half of the students scored close to the minimum score in their pretest prior to the application, the scores of more than half the students approached close to the maximum score in the posttest. According to this result, it can be said that after the application, the students felt more competent in their ability to design algorithms, and in problem solving, data processing, basic programming, and had increased self-confidence. Correspondingly, the students who received text-based programming instruction assisted with the Micro:bit increased their self-efficacy perceptions towards computational thinking skills.
The results of the current study demonstrate certain parallels with other research in the literature. Berland and Wilensky (2015) reported positive results on the effects of robotic programming tools used for the development of computational thinking and related skills. Kukul (2018) also stated seeing a significant difference in students’ computational thinking skills from a scale application, and that programming teaching positively affected their abstraction and decomposition self-efficacy. In research published by Sırakaya (2019), it was stated that the level of computational thinking among different students improved according to their programming skill level after having received programming teaching. Other existing studies have also stated that when similar programming education was applied, a similar positive effect was seen on the perception of self-efficacy for computational thinking skills (Feldhausen et al., 2018).
Within the scope of the second sub-problem of the current research, a highly significant difference was seen between the students’ computational thinking skills before and after the application as evaluated through the use of Bebras tasks. It may be said that the computational thinking skills of the students having received text-based Python language programming teaching using the Micro:bit physical programming tool improved; and again, this result shared similarities with other studies in the literature. For example, Sırakaya (2019) revealed that programming teaching influenced the algorithmic thinking subdimension of computational thinking. In a study by Barut et al. (2016), the researchers compared computational thinking skills with programming skills in order to reveal the importance of computational thinking skills in programming education.
Within the scope of the third sub-problem of the current research, it was aimed to examine the participant students’ level of learning programming concepts with text-based programming teaching assisted by the Micro:bit physical programming tool. In the students’ end-of-lesson self-assessments, it was observed that the expected and desired conceptual learnings regarding both the use of the physical programming tool and the text-based programming Python language concepts were met.
Evaluations from the teacher’s observation form completed after each lesson during the application process, the students' weekly self-assessments, the assignments given to the students, and the achievement test applied to the students at the end of the course all demonstrated that most of the students performed well and received high scores. Furthermore, the students’ successful completion of their home assignments can be considered an indicator of their programming skills’ development. During the focus group interviews, the students pointed out that they had enjoyed learning Python text-based programming language using the Micro:bit physical programming tool both during the application process and after, and, as a consequence, their enthusiasm for programming had notably increased.
However, it may be said that the current study’s findings and other research in the literature showed both similar and differing results regarding the students’ conceptual learning. Atmatzidou et al. (2018) stated that learners’ interaction with robots was effective in helping them to understand basic programming concepts. In a study about robot use in programming teaching, Numanoglu and Keser (2017) taught the concepts of loops, variables, conditional statements, lists, functions-procedures, and sequences. Teaching programming theoretically along with physical programming was shown to have had a positive effect, and the researchers attributed this finding to the tool having embodied abstract concepts simply and that students were able to instantly see the results of the code they had written. In a study by Romero and Dupont (2016), it was stated that through the use of educational robot kits in education, students’ skills in critical thinking, collaboration, creativity, problem solving, and computational thinking improved. The results of the current study are also consistent with statements published in research by Dorling and White (2015) and Park and Yoo (2018), in that primary and secondary school students are able to successfully learn text-based programming concepts and demonstrate effective performance. On the other hand, Keith et al. (2019) observed that students’ computational thinking skills developed as a result of working with robotic activities, and saw robotic activities as an important tool in the development of learners’ computational thinking skills. Similarly, Berland and Wilensky (2015) stated that robotic programming learning tools helped contribute to the development of students’ computational thinking skills.
Within the scope of the fourth sub-problem of the current research, the participant students’ opinions were sought after their having received text-based programming teaching assisted with the Micro:bit physical programming tool. At the end of the application, the students pointed out that they had enjoyed the course topics and the activities, and felt motivated having learnt a difficult programming language more permanently and with full concentration. The students who participated in the focus group interviews stated that they experienced no difficulties in learning Python, and that they had an enjoyable time overall. The study also revealed that after having been taught text-based programming assisted by a physical programming tool, the students had gained awareness about the possibilities of gaining employment in the field of programming or in other professions related to programming.
During the focus group interviews, the students expressed having found their programming learning experience to be quite entertaining, with the interviews having also shown that the process had positively affected their motivation. The students also added that they had managed to comprehend Python programming much more easily than expected with the aid of the Micro:bit physical programming tool. They explicitly mentioned that the reason behind this was that they were able to concretely see what they were doing during the process through use of the tool. Şahin and Arslan Namlı (2017) also reported that the programming teaching process can have a very positive influence over student motivation. It was also revealed that using such tools, students could observe the program code they had created, in other words, they could see in a concrete way that they were able to solve programming tasks which they were set, which in turn helped to increase their self-confidence. When the results of the current research and the literature are evaluated as a whole, it may be stated that students who receive text-based programming with the assistance of a physical programming tool have more positive views about programming teaching.
Conclusion
In this study, a course plan was prepared based on the curriculum and implemented for the teaching of Python programming, which is a text-based programming language, to seventh and eighth-grade secondary school students. As a result of the application, it was concluded that the secondary school students had developed in their self-efficacy perceptions, as well as their computational thinking skills, knowledge, and skills in terms of concepts and practices related to programming at the end of the Python programming education assisted with a physical programming tool. It may be said that the reason for this result was that whilst receiving their programming education, the students’ concretisation of the applications and abstract concepts helped make their learning easier, and their desire to learn programming and take more lessons had increased.
The current study aimed to demonstrate to educators in the field that while teaching programming to secondary school students, not only block-based programming but also text-based programming can be successfully taught. It was shown that students’ interest and motivation can increase when they are able to see concrete output of their text-based programming, which is generally considered to be difficult and complex, through use of a physical programming tool (e.g., Micro:bit, as used in the current study). At this point, it was observed that increases seen in the students’ programming skills were directly proportional to increases in their active participation in the course, and that a noticeable increase was seen in the students’ computational thinking skills and self-efficacy perceptions towards computational thinking.
In terms of the application process and the results of the current study, it is suggested that appropriate platform selection and the inclusion of interactive activities performed with an appropriate physical programming tool can aid learners in learning text-based programming. It is further suggested that examining other platforms and determining the usability of physical programming tools in educational terms, and their contribution to educational processes will also contribute to revealing the potential effectiveness of text-based programming teaching. In this context, it is recommended that researchers investigate different variables while working with different programming languages and physical programming tools in the future.
As in all research, the current study presents certain limitations. The research was limited to secondary school students from the seventh and eighth grade, and was limited to a single group of students, with the process lasting 8 weeks in total, with 6 weeks of lectures and 2 weeks of data collection. It is also critical to consider the research context, as well as the physical programming tool and the programming language selected while evaluating the results of any similar research. In order to overcome these limitations, future studies could consider different research designs, such as performing an in-depth analysis based on different concepts and achievement tests.
Supplemental Material
Supplemental Material - The Effect of Teaching Physical Programming on Computational Thinking Skills and Self-Efficacy Perceptions Towards Computational Thinking
Supplemental Material for The Effect of Teaching Physical Programming on Computational Thinking Skills and Self-Efficacy Perceptions Towards Computational Thinking by Ezgi Arzu Yurdakök, and Filiz Kalelioğlu in Journal of Educational Computing Research
Footnotes
Authors’ Contributions
Ezgi Arzu Yurdakök: Conceptualization; data collection and analysis; interpretation of results; writing – original draft; review & editing. Filiz Kalelioğlu: Conceptualization; writing; review & editing.
Declaration of Conflicting Interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) received no financial support for the research, authorship, and/or publication of this article.
Supplemental Material
Supplemental material for this article is available online
Author Biographies
References
Supplementary Material
Please find the following supplemental material available below.
For Open Access articles published under a Creative Commons License, all supplemental material carries the same license as the article it is associated with.
For non-Open Access articles published, all supplemental material carries a non-exclusive license, and permission requests for re-use of supplemental material or any part of supplemental material shall be sent directly to the copyright owner as specified in the copyright notice associated with the article.
