An Analysis of Mathematics Education Students ’ Skills in the Process of Programming and Their Practices of Integrating It into Their Teaching

Recent developments in technology have changed the learner’s profile and the learning outcomes. Today, with the emergence of higher-order thinking skills and computer literacy skills, teaching through traditional methods is likely to fail to achieve the learning outcomes. That is why; teachers and teacher candidates are expected to have computer literacy skills. Programming is the main focus of this study since it is an important part of computer literacy. The study aims to analyze mathematics education students’ skills in the process of programming and their practices of integrating it into their teaching. The participants of the study are 42 third grade students of an Elementary Mathematics Education Program of a state university in Turkey. Within the study in which theory and practice was carried out simultaneously, the participants were taught the basics of programming and the algorithms with C programming language. The teacher candidates put the theoretical knowledge into practice using the visual programming application by MIT App Inventor at the computer laboratory. In addition, they used the MIT App Inventor visual programming environment to develop programs they will use in teaching mathematics in groups. Given the component of teaching of programming during this process, it is considered that the process of teaching in question will be effective in planning the teaching process of future studies. The reason is that not only it analyses the development of the variables used in this study but also because it takes into consideration the opinions of teacher candidates.


Introduction
With the progress of technology, dramatic changes have occurred in every sphere of life, which have changed the ways in which people access knowledge and communicate with one another.Our age, in which the increase in the number and the variety of technological tools is directly proportional to the increase in human population, we are witnessing an increase in the production of knowledge, which has resulted in our age being called the "information age".As the technology reshapes our lives rapidly, the world of education has also been influenced by these changes, with the use of technology in education becoming more and more common.We started having technological tools within the classrooms a few years ago but now they have become teaching methods.In addition, technological advances in numerous fields from health to education, and from agriculture to industry, have changed the student profile and the learning outcomes.In a developing and changing world, it is necessary to adapt to the developing technology, and thus the society needs individuals who keep themselves up-to-date with technological developments and solve problems with the help of technology.Individuals are expected to acquire basic computer skills and put them into practice in daily life.With the higher order thinking skills and the computer literacy becoming more and more important, educating students in traditional methods will not meet the learning outcomes (O'Flaherty & Philips, 2015;Roehl, Reddy, & Shannon, 2013;Vaughan, 2014).
Without any doubt, one of the most important factors improving the quality of education is the teachers.Teachers need to use technology in a more efficient way to enhance instruction rather than only running it (Algozzine, Bateman, Flowers, Gretes, Hughes, & Lambert, 1999;Krueger, Hansen, & Smaldino, 2000).Therefore, teachers and teacher candidates are expected to possess adequate knowledge and skills in computer literacy (Akkoyunlu & Kurbanoğlu, 2003).Computer literacy is divided into four components (Kay, 1990), which are basic computer skills, computer awareness (Anderson & Klassen, 1981, Battista & Steele, 1984, Johnson, Anderson, Hansen & Klassen, 1980), software use (Ganske and Hamamoto, 1984;Hasset, 1984;Levin, 1983;Meierhenry, 1982;Pickert & Hunter, 1983) and programming skills (Cheng, Plake, & Stevens, 1985;Gabriel, 1985aGabriel, , 1985b;;Haigh, 1985;Luehrmann, 1981).Today, since technology supported teaching is one of the indispensable part of education, the teachers of the future should have more computer literacy skills than programming (Kılınç & Salman, 2006).So, more attention should be paid to courses in educational software and programming in teacher training programs as these concepts will become even more important in the future (Kılınç & Salman, 2006).
Programming is considered to be a cognitive skill as it involves such processes as mental descriptions, understanding of the program, making changes on a program already written, debugging, structuring conceptual knowledge and performing single operations (such as loops, conditionals) (Helminen & Malmi, 2010).While programming, a learner creates a mental model by re-expressing the purpose, the data and the function of the program as she/he understands it while solving a problem, and uses this model to make predictions and formulate the differences (Helminen & Malmi, 2010).In programming, the coder creates an external representation of problem solving processes, and so programming provides a person with an opportunity to apply a lot of deep thinking (metacognitive awareness) about their own thinking (Resnick, et al.,, 2009).Moreover, acquiring skills associated with programming helps students develop higher order thinking skills including reasoning, critical thinking and creative thinking (McMahon, 2009).Critical thinking, a skill developed via programming, includes the cognitive skills related to interpretation, analysis, evaluation, inference, explanation and self-regulation.These six cognitive skills are at the core of critical thinking (Facione, 1990).One of the skills employed in the learning of a programming language is problem solving (Gundurao, Manjunath, & Nachappa, 2010).One needs to develop good problem solving skills in order to learn how to write a successful computer program (Gundurao, Manjunath, & Nachappa, 2010).Gomes and Mendes (2007) also state that it is necessary for learners to develop good problem solving skills in order to learn to program.Another skill needed in problem solving is metacognition (Guss & Wiley, 2007).Metacognitive awareness helps one to have control or self-regulation on thinking, learning process and outcomes (Hartman, 1998).Metacognition in problem solving refers to processes and knowledge used for approaches towards successful problem solving (McCormick, 2003).In conclusion, for programming, one can make use of metacognition and metacognitive awareness used particularly during regulation and evaluation of solutions and outcomes.Students have various difficulties during the programming process, which demands many skills.As students pay too much attention to design rather than codes, to one single function or module rather than the system as a whole while writing a program (Berge, Borge, Fjuk, Kaasboll, & Samuelsen, 2003;Bucci, Long, & Weide, 2001), they experience low levels of abstraction, and hence get lost in too many details and fail to see the big picture.Learners' disposition to think holistically or analytically while problem solving will shape the process of programming.Holistic thinkers do not focus on the parts of an object but take the object as a whole, and make decisions taking into consideration the effect of the interrelation of the parts on the whole (Dewey, 2007;Hammouri, 2003).On the other hand, analytical thinkers always deal with the individual parts of an object in the first place and arrive at decisions after analysing how the parts interact to keep the system functioning (Dewey, 2007).Since programming is known to be useful for learners to improve their skills (Sleeman, Putnam, Baxter, & Kuspa, 1984), many countries have integrated introductory programming courses into their primary and elementary school curricula (Tucker, Deek, Jones, McCowan, Stephenson, & Verno, 2003).At the same time, it is also worth noting that programming courses are becoming widespread throughout the world because not only they are compulsory for professional competence but also they are an integral component of computer literacy.This study has focused on the skills that programming helps learners to acquire and on the fact that it is an important component of computer literacy.The main purpose of this study is to analyse the mathematics education students' skills in learning to program, which are critical thinking, problem solving, holistic and analytical thinking in problem solving, and metacognitive awareness, and their practices of integrating it into their teaching.The method of the study is included in the following section.

Participants and Learning Environment
The one group pre-test post-test design was used in this study.The participants of this study are 42 third grade mathematics education students at a state university.They took a 14-week elective course in which they were taught the algorithms and the basics of programming via the C programming language, and put what they learnt into practice using MIT App Inventor environment during their laboratory hours.Also, they developed the programs they might use in their mathematics teaching using MIT App Inventor environment in groups.Figure 1 ies.ccsenet.
given belo hand in ha Figure 1.A

Data C
The resear critical thi the teacher and were semi-struc org ow contains th and.This research employed the "Scale of Holistic and Analytical Thinking Styles While Problem Solving" developed by Umay and Arıol (2011) to determine the participants' holistic and analytical thinking styles.The "Scale of Holistic and Analytical Thinking Styles While Problem Solving" contains items each of which has two separate scenarios suitable for either holistic or analytical thinking, which can be adopted by the participants.

Collection
There is an option described as "I don't have an opinion" for those who might not recognize how they think.Each item of the scale gives participants a score for their responses: 1 for "analytical thinking style", 2 for "I don't have an opinion", and 3 for "the holistic thinking style".Out of the five items in the scale, the lowest possible score is 5, and the highest possible score is 15.A score closer to 5 refers to analytical thinking disposition while a score closer to 15 refers to holistic thinking disposition.The scale has a reliability coefficient of .72.
The researchers used the California Critical Thinking Disposition Inventory, which was developed as a result of the Delphi Research Report in 1990 and adapted to Turkish by Kökdemir (2003).Cronbach's alpha internal consistency coefficient of the scale was calculated to be .77.The inventory is a 6-point Likert scale consisting of 51 items.The items use a 6-point scale from 1 to 6 in which 1 refers to "I do not agree at all", and 6 refers to "I totally agree".The Critical Thinking Inventory has six factors, which are analyticity, open-mindedness, curiosity, confidence, truth seeking and systematicity (Kökdemir, 2003).To find the participants' overall scores for the critical thinking disposition, the scores given to students based on their responses to the items listed in each factor were summed up, and the results were divided by the total number of items, and multiplied by 10, so that the minimum value of each sub-scale is 10 and maximum value is 60 and the range for the total scale is from 60 to 360.The participants scoring less than 240 are deemed to have lower critical thinking disposition while those scoring more than 300 are deemed to have higher critical thinking disposition (Kökdemir, 2003).
For the problem solving component, the researchers used the Problem Solving Inventory developed by Heppner and Peterson (1982), and adapted to Turkish by Şahin, Şahin and Heppner (1993).The internal consistency coefficient of the scale was calculated to be .81.The Problem Solving Inventory is a 6-point scale consisting of 35 items.The items on the scale range from 1 to 6, with respective responses being "strongly disagree" and "strongly agree".In the calculating the participants' total scores from the scale, their responses to items 9, 22 and 29 are left out from the calculation as per the protocol, and items 1, 2, 3, 4, 11, 13, 14, 15, 17, 21, 25, 26, 30 and 34 were reverse-scored.Following these processes, the total score is calculated by summing up the scores given based on the responses to individual items.The lowest possible score is 32, and the highest possible score is 192.
The lower the score, the poorer problem solving skills a participant has, while the higher the score, the better problem solving skills a participant has.
For metacognitive awareness, the researchers employed the Metacognitive Awareness Inventory, developed by Schraw and Dennison (1994), and adapted to Turkish by Akın, Abacı, and Çetin (2007) after having administered it with undergraduate students.The reliability coefficient of the scale was calculated to be .87.The Metacognitive Awareness Inventory is a 5-point Likert scale consisting of 52 items.The items can be answered within the range of "never" and "always" and get scores from 1 to 5. The scale has eight factors, which are declarative knowledge, procedural knowledge, planning, monitoring, evaluation, debugging and information management (Akın et al., 2007).The scale does not contain any negative items that need reverse scoring.Each item is calculated with the score based on the response, and scores for the responses to the items are summed up.52 is the lowest possible score while 260 is the highest possible score.Lower scores mean poorer metacognitive awareness whereas higher scores demonstrate better metacognitive awareness (Akın et al., 2007).
Three experts, two in mathematics education and one in computer education and instructional technology, assessed the effectiveness of the programs developed.Büyüköztürk (2008) emphasized the researches containing 15 or more sample size in each subgroup indicating that the use of parametric tests does not lead to a significant deviation in the significance level.However, parametric tests can only be used when the data follow a normal distribution.For this reason, in the first place, the data were tested for normal distribution in order to figure out whether parametric tests can be used while analysing the quantitative data.To this end, participants' critical thinking disposition, problem solving skills and metacognitive awareness levels were tested for normal distribution.
Qualitative data analysis of the research was performed by using content analysis method.Responses to the questions were recorded in the course of the interviews, and the data obtained from the interviews were itemised and checked before the analysis.The coding method was used to cluster together the similar data around certain themes, and to create consistent and coherent subdivisions.The three experts individually coded the raw data from the research to achieve the reliability of the process, and the results showed that 83% of inter-rater dependability was reached.
The outputs of study include the programs developed by the teacher candidates for the learning outcomes defined in the 5 th -8 th grade (11-14 years old students) national mathematics curriculum, the teacher candidates' self-evaluation statements on the programs and their evaluation of the teaching process.The self-evaluation statements include the pros and cons of the process, its contributions to their own learning and teaching competencies, their opinion on whether it will help them develop an application using a programming language as an in-class or out-of-class activities, and possible advantages and disadvantages for students in mathematics education.

Findings
The findings of this study, which investigates the mathematics education students' skills while learning to program-critical thinking, problem solving, holistic and analytical thinking styles while problem solving and metacognitive awareness-and the practices of integrating it into their teaching, are presented with the comparison of pre-test and post-test scores, which is followed by their evaluation of the programs they developed and qualitative findings.

Comparison of Problem Solving Inventory Scores from Pre-Test and Post-Test
A paired-sampled t-test was performed to determine whether there is a statistically significant difference between the participants' problem solving skills scores from pre-test and post-test.The results of the t-test are presented in Table 1.As can be seen in Table 1, the participants' average score from the pre-test of the problem solving inventory is 138.29, and it became 141.01 in the post-test.According to the inventory, higher scores meant better problem solving skills; and thus it can be said that the participants had higher levels of problem solving skills both before and after they learned how to program.It has been found that there is not a statistically significant difference in the participants' problem solving skills before and after the learning process, so learning to program does not have a significant effect on problem solving skills [t (41)= 1.28, p>.05].

Comparison of the Scale of Holistic and Analytical Thinking Styles While Problem Solving Scores from Pre-Test and Post-Test
The participants' average pre-test scores (8.81) suggest that they have more disposition to think analytically; while the average score (11.93) they got from the post-test indicates that the group has more disposition to think holistically.A Wilcoxon signed-rank test was carried out to determine whether the observed difference is statistically significant or not, which results are presented in Table 2.The results of the analysis suggest that there is a statistically significant difference between the scores the participants got from the Scale of Holistic and Analytical Thinking Styles While Problem Solving before and they went through the learning process (z= 4.99, p<.05).Considering the mean rank and totals of the difference scores, it can be said that this difference observed is in favour of the positive ranks, that is to say, in favour of the post-test.It has been shown that the process of learning to program has a statistically significant effect on the holistic and analytical thinking styles while problem solving in favour of holistic thinking disposition.

Comparison of California Critical Thinking Disposition Scores from Pre-Test and Post-Test
A paired-samples t-test was used to determine if there was a statistically significant difference between the participants' critical thinking scores from pre-test and post-test.Results of the t-test are presented in Table 3.As can be seen in Table 3, the participants' average score from critical thinking disposition scale before they went through the learning process was 241.01, and the score changed to 277.27 after the learning took place.This suggests that students had average levels of critical thinking disposition both before and after the learning process.The teacher candidates' critical thinking disposition scores changed in a significant way after the learning took place, which means that the learning process has a significant effect on the critical thinking disposition [t (41)= 7.01, p<.05].

Comparison of Metacognitive Awareness Inventory Scores from Pre-Test and Post-Test
A paired-samples t-test was used to determine whether there is a statistically significant difference between the participants' scores on metacognitive awareness levels from pre-test and those from post-test.Results of the t-test are presented in Table 4.As can be seen in Table 4, the average score of metacognitive awareness inventory before the learning process was 178.31, and this score increased to 195.40 after the learning process.These values indicated that the participants had an average level of metacognitive awareness before learning to program while they started having a high level of metacognitive awareness after learning to program.It has been found that there is a significant difference between the teacher candidates' levels of metacognitive awareness before and after they learned to program; that is to say, the process of learning to program had a significant effect on the metacognitive awareness level [t (41)= 5.11, p<.05].

Evaluation of the Programs Developed
The outputs of the study contains the programs developed by the teacher candidates in line with the learning outcomes defined in the national mathematics curriculum of the 5 th -8 th grades (11-14 years of age) whom they will be teaching in the future.The programs developed were evaluated according to their convenience to the criteria established within the themes of Educational Content, Design, and Programming.The evaluation criteria were prepared by three experts, two of whom work in mathematics education and one of whom works in computer education and instructional technology.Content validity of the criteria was tested by six experts.The evaluation criteria were established based on a literature review (İpek, 2001;Şahin & Yıldırım, 1999;Uşun, 2000;Venezky & Osin, 1991;Yalın, 2001).Randomly selected three programs were scored by three experts based on the evaluation criteria and the inter-rater dependability was found to be 85%.The evaluation criteria and their themes are presented in Table 5. Teacher candidates worked in groups of four (two of the groups contained five members) and developed 10 programs in total.The average scores given to each program by the three experts based on the evaluation themes are presented in Table 6.The efficiency of the programs was criticized based on whether they got 50% of the total scores for each theme.Four of the programs (scores containing asterisk *) developed by the participants have problems in the programming theme.In such cases, the groups were able to address and resolve the problems according to the feedback provided by the experts.

Comments on the Program Development Process
The teacher candidates' (TC) comments relating to the evaluation of the teaching process included the pros and cons of the process, its contributions to their own learning and teaching competencies, their opinion on whether it will help them develop an application using a programming language as an in-class or out-of-class activity, and possible advantages and disadvantages for students in mathematics education.
Commenting on the pros and cons of the process, 31 teacher candidates remarked that they found it favourable to have the theory and practice simultaneously, as they thought that they could learn best by experience.Below are comments from teacher candidates from the interviews to support the statement in the previous sentence.

"[…] It's not so easy to grasp the programming logic, but we were able to learn it in a logical way for we went through the theory and practice at the same time […] I think if students are made to take programming course, they should definitely be taught the theory and practice at the same time." (TC13) "[…]
When we first saw the codes in the C programming language, it was really hard to make sense of anything, but as we practised it with many trials and errors, it all became more tangible […]" (TC42) Some of the teacher candidates (TC5, TC11, TC22, TC25, TC33 and TC41) pointed that language was one of the barriers that caused difficulty for them as the commands in the C programming language as well as the MIT App Inventor environment were in English, with their English being not very good.However, they further remarked that this was a problem in the beginning, and this barrier vanished in the course of time as they became more knowledgeable and learned.Below is one such remark.
"[…] I had difficulty in the beginning with everything being in English.My classmates who were good at English were also better at remembering the codes, and using the menus and buttons of the MIT-Inventor.But later, I started getting used it as well, and in the end, it actually didn't matter to know English or not […]" (TC5) The teacher candidates also stated that the drag and drop interface feature of the MIT App Inventor visual programming environment made programming more comprehensive as well as making it easier to concentrate on programming (TC1, TC4, TC10, TC14, TC20, TC27, TC31 and TC36).In addition, they found it to be an advantage to be able to see what effects were caused as a result of the changes they made on the MIT App Inventor.This is evident in the comments below from the teacher candidates' interviews.
" […] First I was afraid that I was not going to be able to remember and write all these codes.But then I calmed down when we got to the laboratory right after the theoretical course as I learnt that the codes were already there on the MIT App Inventor environment, and all we needed to do was just to combine them logically […]" (TC10)

"[…] I think the best thing about it was that we could see the effects of the changes we made on the codes on the MIT App Inventor though the "Emulator" feature. Thanks to it, we can first check and then figure out how we can do […]" (TC27)
Among all the teacher candidates, 18 of them counted a number of advantages of working in groups including giving feedback to each other, restore the motivation of those group members who became demotivated by their first programming experiences, and helping those group members who did not believe that they would accomplish programming due to being bad with computers to keep on and achieve.Below are three of such remarks.
" On the other hand, some of the teacher candidates said that they did not have any difficulties during the process as they were familiar with the algorithmic thinking (TC3, TC6, TC12, TC13, TC21, TC26, TC30, TC34 and TC37 ).They think that designing algorithms is analogous to proving mathematical theorems, in which they use the variables step by step to design, and then verify the algorithms.One such comment is presented below.

"[…]
Well, I'm familiar with assigning variables to a loop.Indeed, we somehow use the same logic (that of programming) in our (mathematical) proofs.The only difference is that we need to have some more considerations to make the computer understand it […] Shortly, we instruct the codes to behave in a certain way for all possible values a variable can have ("do this if…", "do that if…").We need to make sure that there is no variable left out, and then we look at how it functions as a whole.On the other hand, we follow a deductive process to design.It's like verification of theorems in mathematical proofs starting with hypotheses."(TC21) While most of the participants stated that they were able to integrate technology into mathematics teaching, they added that they now understand what the computer does while it compiles the codes of the program and what is going on in the memory, so they felt themselves more competent and knowledgeable.They believed that it has helped to develop new competencies not only for their teaching but also for their learning.They felt that today it is important to know programming and what runs in the infrastructures of applications as it provides them with a new perspective that has a positive effect on their logical thinking, creativeness, and problem solving methods.Moreover, in terms of teaching competencies, the programs they developed provided them with effective teaching full of fun as well as a new evaluation and assessment instrument.This is obvious from the remarks of the participants in the written interviews (see Figure 2) and semi-structured interviews.

"[…] Now I see the applications around through a totally different perspective: I can't help making such comments about an application as "I guess this application would be better with these and those additions". Also, I think I've become more competent in computers […] I definitely think that it improves my creativeness. Now I can do things I never thought I could do. The algorithms we design… They also improve my logical thinking. It seems like I can solve any problems" (TC15) "[…] Thanks to programming, now I know how I can make a subject matter more fun, conceptual and easier. I am more knowledgeable now about how to develop a new instrument or application […] Now, I can develop an application that helps students for self-evaluation. " (TC17)
" […] With the application we developed, it's possible to have a long-lasting teaching practice with fun, which can also provide instant feedback for students at home." (TC38)

Discussion and Conclusion
The teaching process is highly important to help the teachers of the future to graduate as computer-literate individuals.Considering the component of teaching programming in this process, acquiring programming-related skills is known to help students acquire higher order thinking skills (McMahon, 2009).This study investigated the effect of the process of learning to program on teacher candidates' problem solving skills, analytical and holistic thinking disposition while problem solving, critical thinking disposition and metacognitive awareness.The results of the study showed that learning to program did not have a significant effect on teacher candidates' problem solving skills.There was no significant difference between the participants' pre-test and post-test scores of the Problem Solving Scale as they had good problem solving skills, and this can be explained with their field of study.It was also found that there was a significant difference in participants' scores from Analytical and Holistic Thinking Disposition Scale before and after the learning took place, which means that learning to program had a significant effect on their holistic thinking disposition.It is known that learners miss the big picture, and get lost in too many details during program coding, for they are inclined to concentrate on the code itself rather than the design and on one single function rather than the system as a whole (Berge, Borge, Fjuk, Kaasboll, & Samuelsen, 2003;Bucci, Long, & Weide, 2001).Based on the finding indicated by this study, the researchers consider that the group's thinking disposition grew into a holistic one thanks to the teacher candidates' attempts at paying more attention to the effect of the interrelations of the modules on the whole by focusing on the system as a whole instead of loops, conditions, and functions during their learning process, although they had the analytical thinking disposition at the beginning.In addition, when it comes to critical thinking disposition and metacognitive awareness, the participants' critical thinking disposition and metacognitive awareness scores improved significantly after the learning took place, which means that learning how to program has a significant effect on teacher candidates' critical thinking disposition and metacognitive awareness.The presence of a significant difference in critical thinking disposition and metacognitive awareness at the same time can be explained by the fact that the two are interrelated concepts.Indeed, the definition of critical thinking given by Paul (1993) is almost the same with that of metacognition.Bensley (2011) states that a number of studies have pointed out to the positive relationship between metacognition and critical thinking.The significant difference found can be explained by the skills developed through programming mentioned in the literature (McMahon, 2009;Guss & Wiley, 2007).Also, the literature contains many other studies pointing out to similar changes in these variables (Kwon, Yoon, & Lee, 2011;Unuakhalu, 2008).
Among the outputs of the practice process are the programs developed by the teacher candidates in line with the learning outcomes defined in the 5 th -8 th grades curriculum.These programs were evaluated in accordance with the criteria created and grouped under the themes called Educational Content, Design and Programming.The findings suggest that the participants were able to develop effective programs according to these criteria.In consequence, it would be right to make the deduction that the participants were able to integrate effectively the knowledge and skills they acquired during learning to program into their teaching practices.
It is possible to evaluate this 'process of learning to program' in general taking into consideration the skills acquired, programs developed and positive effects on thinking.The research made use of theory and practice at the same time during the teaching of programming.The participants found it favourable to learn theory and practice at the same time, as they think they can learn best by experience.The literature also supports this kind of learning process, with findings suggesting that the learning takes place with more success using the theory and practice at the same time following the provision of the basics to the students (Crews and Murphy, 2004;Ziegler andCrews, 1999 as cited in Hu, 2004).In addition, there are studies emphasising that use of visuals in software ─ especially making use of visual tools in subjects associated with conditional statements and loops ─ and interactive methods have significant effect on student success and motivation (Arabacıoğlu, Bülbül, & Filiz, 2007;Cooper, Dann, & Pausch, 2003;Gültekin, 2006;Hu, 2004;Kelleher, Pausch, & Kiesler, 2007;Malan & Leitner, 2007;Peppler & Kafai, 2007;Ramadhan, 2000).There also are other studies demonstrating that using graphics and animations helps students pay more attention to classes (Bishop-Clark, Courte, & Howard, 2007;Brusilovsky & Spring, 2004;Lin & Zhang, 2003).Therefore, the MIT Inventor application helped students to regulate the program samples they were provided with and to create their own designs in an interactive way, which made the learning process more effective.The participants told that one of the difficulties they experienced during this process was the language barrier because of the fact that the MIT App Inventor platform was in English though their English not being very good.Nevertheless, they further stated that this was a problem only in the beginning, and this barrier disappeared over time, as they got more familiar with the application.The literature contains studies that found a significant positive correlation between academic achievement in English and academic achievement in computer programming (Leeper & Silver,1982;Nowaczyk, 1983), as well as studies that found no correlation between proficiency in English or any other foreign language and success in programming (Byrnes & Lyons, 2001, as cited in Jones & Burnettt, 2008).The researchers of this study are of the opinion that although the teacher candidates saw the language as a barrier in the beginning, they overcame this barrier in the course of the process.Additionally, the participants found the drag and drop feature of the MIT App Inventor environment to be useful in understanding and concentrating on programming.They also thought that the feature of the MIT App Inventor that enabled them to see the effects of the changes they made was a useful one.Similarly, Cliburn (2008) states that the drag and drop interface helps students to focus on programming concepts instead of debugging, as it prevents syntactic errors.According to Naser (2008), students have difficulty in identifying relationships between algorithms and making predictions as to how the effects change when there are changes in the parameters of the algorithm.When considered from this point of view, MIT App Inventor is considered to be advantageous.
The majority of teacher candidates stated that group work provided them with some opportunities including giving feedback to one another, helping group members who were demotivated following their earlier failed attempts at programming to restore their motivation, and helping group members who thought they would fail in their attempts as they were not proficient computer users to keep on the process.The literature counts these opportunities as factors affecting learners' success in programming.Nelson and Rice (2000) emphasizes in their research the importance of receiving feedback about the codes written, while Leeper and Silver (1982) and Petersen and Howe (1979) present their research findings demonstrating that learners' previous computer experiences affect their success in programming.Bennedsen and Caspersen (2008), on the other hand, states that learners feel guilty and incompetent if they fail at their first programming attempts, and thus lose confidence and motivation.However, the participants of this study were able to overcome these negative factors listed in the literature by benefitting from the opportunities provided for them by the group work.The methods and techniques used in this research, including having the theory and practice simultaneously, collaborative learning, designing algorithms, use of an additional software, creating animations and making use of accessible codes, are also credited by Lin and Zhang (2003) for their positive effect on learner motivation.It is noteworthy to mention the effect of the participants' academic background in addition to the basic components of the learning environment.The participants are students at the department of elementary mathematics education, and thus have already learnt many of the skills needed for successful programming on their undergraduate courses.Indeed, there are many studies pointing out to the positive correlation between results in mathematics and successful programming (Byrne & Lyons, 2001;Erdoğan, 2005;Fletcher, 1984;Pea & Kurland, 1983;Soloway, Lochhead, & Clement, 1982, as cited in Reed & Burton, 1988;Webb, 1985).The participants also recognised this relationship, as it is obvious from the interviews.They said that designing an algorithm is analogous to mathematical proofs in which one uses variables systematically, as in the case of programming, to arrive at the proof after the verification process.Literature tells us of the difficulties experienced by students on introductory courses to programming due to lack of readiness (Cooper et al., 2000;Samurçay, 1989, as cited in Pane & Mayers, 1996).From this perspective, it is clear that the participants had an academic advantage in their process of learning to program thanks to their possession of the state of readiness for algorithmic thinking.
In evaluating the teaching process, the participants were asked to respond to items asking them to comment on the pros and cons of the process, on its possible contributions to their learning and teaching competencies, on whether they would, in the future, provide their own students with the opportunity to learning to program to develop applications, and on possible advantages and disadvantages this process could produce in the teaching of mathematics.While most of the participants stated that they were able to integrate technology into mathematics teaching, they added that they now understand what the computer does while it runs the codes of the program and what is going on in the memory, so they felt more competent and knowledgeable.Considering this through a computer literacy perspective, it can be said that this process is a step toward competencies in being principled, thoughtful and making accurate judgments as they think they are more competent and knowledgeable (Akkoyunlu & Kurbanoğlu, 2003).The teacher candidates expressed a strong opinion about the positive contributions of this process not only to their teaching competencies but also to their own learning.They thought the knowledge of programming and of what runs in the applications' background helps them gain a new perspective and improve their logical thinking, creativeness and problem solving skills.Their comment related to teaching competencies suggests that they think programming helps an effective learning full of fun to take place and helps students to create a new measurement instrument.This finding supports the profound effect of computer literacy on students' own learning and teaching practices.When it comes to the item which asks the teacher candidates whether they would provide their students, when they start teaching, with the opportunity to use a programming language to develop an application, 12 teacher candidates thought that their students might have real difficulty in such a case considering their target student profile (11-14 years of age) would not have basic knowledge in programming languages.Six participants commented on possible pros and cons without specifying whether they will provide their students with that opportunity or not.On the other hand, 24 teacher candidates stated that now children grow up with technology in a digital age, so they will not have any big problems learning to program, and stated that students can be taught it through a simpler structure, or they can work with interested students who will be involved in voluntary work in programming.According to the participants, among possible pros and cons of using programming languages to develop an application for students were in general helping students improve their competencies and higher order thinking skills, building up their confidence about technological competence; however, if it was not taught them through a simpler structure, this might lead to a loss of motivation for technology.Such comments by the participants, which point out to potential problems together with solutions to these problems, suggested that they developed a high level of awareness.
In conclusion, this study focuses on mathematics education students' skills development and integration of those skills into their teaching practices during pre-service teacher education.The participant also confirmed their new awareness with their opinions.Integrating programming courses into curricula is becoming a widespread phenomenon in the world not only because programming is a prerequisite for professional competence, but also because is an important part of computer literacy.It is highly important for the teacher candidates to be a computer-literate before their graduation from the university.Therefore, it is recommended that programming courses should not be confined only to the students of the Computer Education and Instructional Technology Departments; they should be taken by all teacher candidates instead.Moreover, it is a very important process for the teacher candidates to graduate as computer-literate individuals.The participants of this research, students of mathematics education, they already had good problem solving skills even in the beginning of the process.However, it is possible to design the learning to program process with various activities aimed at improving problem solving skills for different student groups.Whether the same results will come out from research with similar or different groups requires testing with further research.It is believed that this study presents recommendations for future studies in terms of designing the teaching process, as it observes the progress of skills development and takes into consideration the participants' opinions.

Table 1 .
T-test results for the average scores of the pre-test and post-test in Problem Solving Scale

Table 2 .
Wilcoxon Signed-Rank Test results of the scores from the Scale of Holistic and Analytical Thinking Styles during problem solving

Table 3 .
T-test results of pre-test and post-test scores in Critical Thinking Scale

Table 4 .
T-test results of the pre-test and post-test scores from Metacognitive Awareness Inventory

Table 5 .
The evaluation criteria and the themes

Table 6 .
Average of the scores given by the three experts […]Developing program together was actually very instructive.It is because of the fact that we all tried different things and made different errors.For this reason, we were able to give each other really