Remaking and reinforcing mathematics and technology with programming – teacher perceptions of challenges, opportunities and tools in K-12 settings K-12 Teachers ’ perceptions of programming

Purpose – The purpose of this study is to analyse and discuss K-12 mathematics and technology teachers ’ perceptions on integrating programming in their teaching and learning activities, and perceptions on different programming tools. Design/methodology/approach – The approach of a case study was used, with data collected from three instances of a professional development programming course for K-12 teachers in mathematics and technology. Findings – The findings show that there are perceived challenges and opportunities with learning and integratingprogramming,andwithdifferentprogrammingtools.Manyteachersperceiveprogrammingasfun,butlackthetimetolearnandimplementit,andviewdifferentprogrammingtoolsasbothcomplementarytoeachotherandwithindividualopportunitiesandchallenges. Practicalimplications – Thepracticalimplicationoftheresearchisthatitcanprovideguidanceforteachers and other stakeholders that are in the process of integrating programming in K-12 education. Further, the research provides useful information on teachers ’ experiences on working with different programming tools. Social implications – The social implication of the research is that the overall aim of the nation-wide integration process might not succeed if the challenges identified in this study are not addressed, which could have negative effects on the development of students ’ digital competence. Originality/value – The value of the research is that it identifies important challenges and opportunities for the integration of programming. That is, that many teachers perceive the different programming tools availableascomplimentarytoeachother,butarehesitatingaboutwhatisexpectedoftheintegration.Findingscouldalsobevaluableforfuturecoursedesignoftheteacherprofessionaldevelopment. I believe that knowledge in one programming language leads to similar insights in the other language, although the problem at hand might be solved a little differently depending on what programming tool is at your disposal. Programming is a way of thinking in its own, independent of what language, it is about algorithms and the implementation of these.


Introduction
The integration of programming and computer science in K-12 education has been an ongoing process for decades (Rubio et al., 2015;Balanskat and Engelhardt, 2015;Tsukamoto et al., 2016;Floyd,2019;Szabo et al., 2019;Nouri et al.,2020). Some reasons for the growing interest in computer programming are: an increasingly need for professionals with coding skills in future society and a needforcitizenswithbasicunderstandingofcomputerscienceinthedigitalisedsociety (Balanskat and Engelhardt, 2015;Enders et al., 2019;Lindberg et al., 2019;Admiraal et al., 2019). In many countries, this change has been driven by updates to national curricula to mandate the importance of teaching and learning basic programming (Balanskat and Engelhardt, 2015;Szabo et al., 2019).
In Sweden the time frame was narrowly defined when the Swedish government approved a new curriculum in March 2017, with the plan to implement programming in K-12 settings during 2018. In the Swedish context, programming should be involved as a teaching and learning tool in technology and mathematics. (Heintz et al., 2017) Originally, the fundamental idea was to use programming as a problem-solving tool in these subjects, but later this has been extended with the alternatives of using programming for data processing and visualisation. Since most technology and mathematic teachers lack basic programming skills, a nation-wide teacher professional development initiative is crucial (Mozelius et al., 2019). However, all schools cannot send all their teachers to the courses for professional development simultaneously. In the current plan from the Swedish National Agency for Education, the nation-wide teacher training will continue in 2020 and 2021 (Swedish National Agency for Education, 2020).
Despite the structural similarities between the systematic workflow in programming and mathematics and technology, the learning of programming is a time-consuming process. To make a large-scale change in education takes time (Heintz et al., 2017), and many K-12 teachers lack earlier experiences of programming (Mozelius et al., 2019). The pedagogical challenge that remains is the overhead of learning to programme for teachers with little or no pre-knowledge, involving how programming should be "mathematized" or adapted as a tool in science and technology (Sengupta et al., 2018). To improve the current process, it is important to further explore the teachers' perceptions on opportunities and challenges in learning and integrating programming; and their perceptions of different programming tools.
This study was conducted with the aim to analyse and discuss K-12 mathematics and technology teachers' perceptions on integrating programming in their teaching and learning activities, and perceptions on different programming tools. The work was guided by the following two research questions: RQ1. What are K-12 mathematics and technology teachers' perceptions of challenges and opportunities in learning and integrating programming in their teaching and learning activities?
RQ2. What are K-12 mathematics and technology teachers' perceptions of challenges and opportunities with different programming tools for their teaching and learning activities?

Background
Previous research has pointed out both opportunities and obstacles with learning and integrating programming in K-12 education. An opportunity is that learning programming is expected to help students acquire and develop skills that are useful, such as problem-solving, collaboration, creativity, logical and computational thinking (Balanskat and Engelhardt, 2015;Duncan and Bell, 2015;Zhang and Nouri, 2019). An obstacle is that learning and teaching programming is a resource-demanding activity, where expected skills does not develop in itself simply by learning programming (Psycharis and Kallia, 2017). Schools need to have access to teacher professional development courses and resources for the teachers to learn and integrate programming (Mannila et al., 2014;Tundjungsari, 2016). Programming can be defined as in the Cambridge Dictionary (2020): "the activity or job of writing computer programs". An activity that can becarried outin a wide variety of programming languages and programming tools. Programming also involves computational thinking, which has several definitions, one is the older broader definition by Wing (2006) that computational thinking is about solving problems and designing computer programmes. This study uses the term as it later has been elaborated and redefined by Shute et al. (2017), with the six main components of abstraction, algorithms, debugging, decomposition, iteration and generalisation.
This study has a focus on teaching and learning programming in the formal context of K-12 mathematics and technology, because of the direction set by the Swedish National Agency for Education (Swedish National Agency for Education, 2020). However, it is possible to teach and learn programming through other strategies and contexts. From a Swedish perspective there are earlier research studies on how to design programming activities in makerspaces in both K-12 technology education (Eriksson et al., 2018) and teacher education (Kj€ allander et al., 2018). The more global roots to the maker movement can be traced back to the MIT and Seymour Papert (Resnick and Robinson, 2017, p. 36).
Two common approaches to teach programming are through textual programming tools and block programming tools, both requires access to a computer (Garneli et al., 2015;Tsukamoto et al., 2016;Gomez et al., 2019). A third approach, called unplugged programming, that uses no computer is also described in previous research (Bell et al., 2009;Aranda and Ferguson, 2018;Caeli and Yadav, 2020). These three types of programming tools are described more thoroughly in the sub-sections below.

Textual programming
A definition of textual programming is that it is written and modified with the help of a text editor (Chen et al., 2019;Chiu, 2020). Many see this as the authentic way of programming and the approach has a more established connection to professional development than block programming tools (Garneli et al., 2015;Tsukamoto et al., 2016;Mladenovi c et al., 2020). In a literature review on introductory programming in education, Szabo et al. (2019) conclude that the three main textual programming tools used were Python, Pascal and Java.
A common challenge in previous research is that textual programming is more complex and difficult to learn for novice programmers than other types of programming, such as block programming (Garneli et al., 2015;Tsukamoto et al., 2016;Lindberg et al., 2019;Chiu, 2020). In a study on introducing programming to primary school students, textual programming tool did not seem to score as high as the block programming tool in regards to student motivation (Tsukamoto et al., 2016). This could indicate that it is less suitable for teaching younger students programming. Figure 1 below shows a teacher's solution of a programming assignment with the use of textual programming in a course on fundamental programming for technology and mathematic teachers.
An opportunity with using textual programming tools are their connection to professional development and perception as "authentic" programming, which could be motivating and inspiring for the students (Garneli et al., 2015;Tsukamoto et al., 2016;Mladenovi c et al., 2020). In a study by Tsukamoto et al. (2015) it is concluded that it is possible for students from grade 4 and above to use and enjoy textual programming tools. It is also suggested that the use of textual programming tools in education could attract students with higher programming ability, which could make it a suitable for after school activities (Mladenovi c et al., 2018).

Block programming
Block programming tools can be compared to building with LEGO, programmes are created by manipulating graphical elements in the environments, usually by a drag-and-drop approach (Maloney et al., 2010;Lawanto et al., 2017;Rodr ıguez-Mart ınez et al., 2020;Chiu, 2020). According to a study, block programming tools are amongst the most commonly used in introductory programming in K-12 education (Garneli et al., 2015). Figure 2 below shows a teacher's solution of a programming assignment with the use of block programming in a course on fundamental programming for technology and mathematic teachers.
One challenge mentioned by Tsukamoto et al. (2015) is that block programming tools might limit advanced students in developing their programming skills. In a study by Weintrop and Wilensky (2019) it was concluded that skills acquired with block programming tools did not automatically transfer to textual programming tools. This could potentially pose a challenge, since block programming tools are not commonly used in a professional context, but textual programming tools are (Tsukamoto et al., 2015). Sooner or later students will have  Velocity conversion assignment solved in Scratch (Graphics by Peter Mozelius) to make the transition to textual programming tools (Tsukamoto et al., 2015), but will they be able to draw on previous knowledge in block programming tools?
An opportunity with block programming tools is their way of avoiding syntactical errors, since the environments are constructed so that blocks will only connect to each other when everything is correct (S aez-L opez et al., 2016). In a study on introducing programming to students in primary school, it is suggested that block programming tools might be more suitable for younger students, since they seemed to be perceived as more motivating (Tsukamoto et al., 2016). Another opportunity is that block programming tools have a history of incorporating other activities to programming, such as storytelling, games, music and art (Maloney et al., 2010;Cooper and Cunningham, 2010;Topalli and Cagiltay, 2018).

Unplugged programming
The act of programming without a computer is called unplugged programming (Bell et al., 2009;Faber et al., 2017;Heintz et al., 2017;Aranda and Ferguson, 2018). The idea is that it is possible to learn basic programming through activities that do not necessarily require a computer, such as giving oral or written instructions on how to perform a task in a number of steps (Wyffels et al., 2014;Faber et al., 2017;Aranda and Ferguson, 2018;Miller et al., 2018). Another way to approach unplugged programming is through board games that aims to teach basic programming (Tsarava et al., 2018;Jagu st et al., 2018). Figure 3 below shows an example of an unplugged programming exercise used in a course on fundamental programming for technology and mathematic teachers. Bell and Vahrenhold (2018) comes to the conclusion, after reviewing previous research on unplugged programming, that it should be used in relation to other technology and not as an isolated occurrence. In a study on high school students' perceived understanding of computer science concepts and their attitudes towards the subject, the unplugged approach did not seem to have any impact (Feaster et al., 2011). Previous research points out that there is a need for further research on unplugged programming to determine the effect on learning programming and relating concepts (AlAmer et al., 2015;Brackmann et al., 2017).
An opportunity with unplugged programming is the easy access, since a computer is not required. Brackmann et al. (2017) points out that this could be valuable for schools in regions that are low on technical resources. Studies suggests that unplugged programming, if used appropriately, could introduce programming and computer science to, especially younger, students in a meaningful way (Brackmann et al., 2017;Bell and Vahrenhold, 2018). In a study by Wohl et al. (2015), it is concluded that unplugged programming can generate high level of understanding for algorithms, debugging and logical predictions amongst younger students. K-12 Teachers' perceptions of programming

Methodology
The study was conducted with a case study approach, with data gathered from three instances of a professional development programming course for K-12 teachers in mathematics and technology. The course instances were given during the Autumn Semester of 2018, Spring Semester of 2019 and Autumn Semester of 2019. The course was of 7.5 ECTS, a study pace of 25%, and included both online learning in a virtual learning environment, and face-to-face meetings with lectures and workshops. A common recommendation for the case study approach is to use multiple sources for data collection to reach deeper understanding of the studied phenomenon (Remenyi et al., 2002;Denscombe, 2014, pp. 54-56;Bryman, 2016, pp. 60-61).
The data in this study were collected through three sources, with the idea of triangulation (Patton, 2007;Fusch et al., 2018), to enhance the analysis of the case, these were: workshop observations, essays-assignments and online postings in the courses' discussion forums (Table 1). Content analysis, and deductive-inductive coding, was used to analyse the collected data and identify topics of interests (Drisko and Maschi, 2015, pp. 5-26;Bryman, 2016, p. 283). A content analysis is carried out by creating codes that can be applied to data for the development of meaningful categories as described by Blair (2015).
As pointed out by Stemler (2001) the coding and categorisation can be conducted inductively with codes that emerges from data, or with a deductive a priori approach where codes and categories have been created beforehand. In this study, the collected data were first structured with deductive coding according to the two research questions. Inductive coding was used to analyse and group emerging themes of challenges and opportunities in the collected essays and forum postings in spreadsheets, these were later compared to the analysis of the workshop observations for additional themes of interests.
The workshop observations were conducted during face-to-face meetings in all course instances (Table 1). The workshops focussed on programming assignments, discussions, and exchanging knowledge and experience. All workshops touched upon textual programming tools and block programming tools, as well as programming in general. Three of the workshops (two in spring 2019 and one in autumn 2019) also included exercises and discussions on unplugged programming.
The essay assignments were collected from the online virtual learning environment Moodle, that was used in all course instances (Table 1). The assignment was given a couple of weeks into the courses with instructions to write an essay, reflecting on opportunities and challenges in learning programming and how participants perceive the textual programming tool Python and the block programming tool Scratch.
The forum postings were collected from the online virtual learning environment in two of the course instances (Table 1). This was done midway through the courses, in relation to the workshops that touched upon unplugged programming. Besides unplugged programming exercises and discussions, the participants were encouraged to share their thoughts on the subject in the online course forum of Moodle. The instruction for the online postings was to reflect on how they perceived unplugged programming and what challenges and opportunities they could see for its application in the classroom. All teachers participating in the course instances have been informed about the intention to use the collected material in research. They have been informed about the intention with the research and their right to withdraw contribution. To protect participants' anonymity, all extracts from forum postings and essays have been translated and rewritten, without changing the essential meanings.

Results and analysis
This section presents the results according to the research question that they relate to. Results that relate to the first research question are presented in the first category, "Learning and integrating programming". Results that relate to the second research question are presented in the second category, "Perceptions of programming tools".

Learning and integrating programming
Three themes of opportunities emerged in the collected essay-assignments: (1) It is easy to connect programming to other teaching and learning activities in school, such as logic and problem-solving.
(2) There are a lot of easily accessible teaching and learning material on the Internet and in books.
(3) Programming is fun, which was the most frequent theme. These themes were amplified by the workshop observations. One teacher writes about the experience of implementing programming in grade 7 and 9 in an essay: My plans for the lesson cracked after 20 minutes, at the same time creativity sparked throughout the classroom. I must admit that it was uncomfortable to lose control, but at the same time it was fun to see the enthusiasm in the classroom that maintained throughout the whole lesson.
Three themes about challenges emerged in the collected essay-assignments: (1) Lack of directives for the integration, for example, what type of programming is to be implemented, where should it be implemented and how much?
(2) Programming is difficult, for example, learning new structures and logic and much of the available material is in English.
(3) Lack of time for learning and integrating programming, which was the most frequent theme. These themes were amplified by the workshop observations, where teachers discussed and shared experiences about implementing programming and trying to get directives from schoolboards and the Swedish National Agency for Education. One teacher expresses the frustration about this in an essay: It is simply not possible for me to put the amount of time on this that I think it requires. From where am I supposed to take time in an already full schedule? [. . .] As I have mentioned earlier, I get no time from my employer to work with the integration of programming in my subjects and because of this the time must be taken from something else. I find it extremely difficult to have to prioritise away something that my student might need and, in that way, potentially affect their learning negatively.

Perceptions of programming tools
The main opportunity with the textual programming tool Python is its perceived freedom and potential compared to the block programming tool Scratch, for example in relation to K-12 Teachers' perceptions of programming other subjects, future education and labour market. The main challenge is that Python is perceived as difficult compared to Scratch, which might make the process of integration more difficult. The opportunity and challenge are mentioned in both essays and workshop observations. In an essay, one teacher writes: My plan is to solve all assignments in this course with Python, because it seems to be more flexible and appropriate for advanced projects. At the same time, I am hesitant to use it in my own teaching.
Although it is pretty forgiving compared to other textual programming tools, for example in regards to the use of data types.
The main opportunity with the block programming tool Scratch is its perceived lower threshold and being easier than Python, especially for novice programmers. The main challenge is that Scratch is perceived as limited and not appropriate for more complex tasks compared to Python. The opportunity and the challenge are mentioned in both essays and workshop observations. In an essay, one teacher writes: If I write a program in Scratch the structure will be much better with the use of blocks. However, it is also harder for me to use when the programming is about mathematical calculations.
The main opportunity with unplugged programming is that it is perceived as an easy and fun way to introduce or support programming and other activities, such as mathematics, computational thinking and logical thinking. The main challenge is that it is perceived as mainly directed towards younger students, and that using it with older students might not resonate with their expectations about programming. The opportunity and the challenge are mentioned in both essays and workshop observations. In a forum posting, one teacher writes: Unplugged programming is a good way to show how complicated and yet easy it is to build a program.
[. . .] The students need to understand that when you write a program, what you are doing is giving instructions to someone/something that have no knowledge of what your intensions are. Everything needs to be described in detail. It would be desirable if students had good experience with unplugged programming before grade 1-6. After that they could start with block programming and draw on their previous experiences when the programs start to become more complicated.
It was common in both essays, forum postings and workshop observations that teachers expressed a perceived relationship between the programming tools. In the workshops, teachers elaborated on this notion and expressed a perception of the programming tools to range from a general approach to a more specialised approach on programming. Unplugged programming was described as the most general and appropriate for the lower grades and a wider range of subjects. Python was described as the most specialised approach and more appropriate for the upper grades and the subject of mathematics. While Scratch was described in the middle, concerning subjects and grades. In one essay, a teacher writes: I believe that knowledge in one programming language leads to similar insights in the other language, although the problem at hand might be solved a little differently depending on what programming tool is at your disposal. Programming is a way of thinking in its own, independent of what language, it is about algorithms and the implementation of these.

Findings and discussion
Concerning the first research question, there are both expected and unexpected findings. The expected findings relate to findings in previous research. The first being that teachers found it easy to connect programming to other activities, which can be related to the expectancy of students getting support to develop other skills through learning programming, such as: problem-solving, collaboration, creativity, logical and computational thinking (Balanskat and Engelhardt, 2015;Duncan and Bell, 2015;Zhang and Nouri, 2019). The second being that teachers expressed concerns about programming being too difficult, which can be related to that learning and teaching programming is a difficult task; and that knowledge, resources and support is needed (Mannila et al., 2014;Tundjungsari, 2016;Psycharis and Kallia, 2017). The unexpected findings have some connections to previous research. For example, previous research expresses that programming can be fun and engaging (Tsukamoto et al., 2015;Tsukamoto et al., 2016;Brackmann et al., 2017;Bell and Vahrenhold, 2018). But it was unexpected that it was one of the most recurring themes in the analysed material. Previous research has pointed out the need for resources, knowledge and support in learning and integrating programming (Mannila et al., 2014;Tundjungsari, 2016;Psycharis and Kallia, 2017). It was unexpected that so many teachers expressed a lack of time and guidance in the collected material.
Concerning the second research question, there are both expected and unexpected findings. The expected findings relate to the findings in previous research. The first being that teachers tend to compare textual programming tools to block programming tools in regards to opportunities and challenges. Textual programming tools are often perceived as difficult compared to block programming tools, but also to have greater freedom and potential (Garneli et al., 2015;Tsukamoto et al., 2015;Tsukamoto et al., 2016;S aez-L opez et al., 2016;Lindberg et al., 2019;Weintrop and Wilensky, 2019;Mladenovi c et al., 2020;Chiu, 2020). The second being that unplugged programming is perceived as fun and easy, but might be limited to younger students (Feaster et al., 2011;Wohl et al., 2015;Brackmann et al., 2017;Bell and Vahrenhold, 2018).
The unexpected findings have some connections to previous research. Independent of which tools or approaches that are used to learn and integrate programming, the goal is often similar, to develop computational thinking and foster creativity, collaboration and problemsolving (Balanskat and Engelhardt, 2015;Duncan and Bell, 2015;Zhang and Nouri, 2019). It was unexpected that teachers, relatively early in the courses, expressed perceptions of similarity between the programming tools, and that the tools could be used to enrich and build upon each other.

Conclusion
The study was conducted with the aim to analyse and discuss K-12 mathematics and technology teachers' perceptions on integrating programming in their teaching and learning activities, and their perceptions on different programming tools. Both challenges and opportunities have been found regarding the learning and integration of programming in K-12 mathematics and technology, and with different programming tools. Recurring in the collected material were teachers' perceptions of programming as fun, but difficult to learn and integrate due to a lack of time and directives for the integration and their own professional development.
An interesting finding was also the perceived relationship between textual programming, block programming and unplugged programming; and that it was described in hierarchical terms. This could potentially be drawn upon in a large-scale integration of programming in K-12 education. The finding suggest that unplugged programming has a more general approach to programming, which make it appropriate for the lower grades and a wide range of school subjects. Textual programming has a more specialised approach, which make it appropriate for the upper grades and the subject of mathematics. While block programming has an approach somewhere in the middle of general and specialised, making it appropriate to integrate as a stepping stone in the grades between unplugged and textual programming. K-12 Teachers' perceptions of programming 7. Limitations and future research This study was conducted in three instances of a programming course for K-12 teachers in mathematics and technology where the authors were both course teachers and researchers. With multiple roles for the authors, challenges and limitations follows that need to be addressed. The collection of data was conducted in a context where teachers have freely chosen to learn programming, it is likely that their attitudes towards programming do not represent that of the average teacher. The authors where both course teachers and researchers, it is possible that the authors attitudes towards programming has affected the teachers' attitudes during the courses.
An interesting next step of research would be to investigate the role of different programming tools in makerspace and after school activities. In this study, the use and perception of programming tools are influenced by the subjects in which they are to be integrated. But how are the use and perception of programming tools affected, if they are removed from the context of school subjects? Do they remain the same or do new opportunities and obstacles emerge?