The Effect of Project Based Learning Approach on Computational Thinking Skills and Programming Self-Efficacy Beliefs *

The aim of this study is to reveal the effect of project use on students' self-efficacy beliefs towards programming and their computational thinking skills. A one-group pretest-posttest experimental design was used in the study. The research was conducted in 2018 with 14 12th-grade students in a Vocational and Technical High School in Izmir. In the research, the application of project use in programming teaching lasted 18 weeks. The research data were collected with the Self-Efficacy Scale for Programming (SESP) developed by Altun and Mazman (2012) and the Computer Thinking Skill Levels Scale (CTSLS) developed by Korkmaz, Çakır, Özden, Oluk, Sarıoğlu (2015). Wilcoxon Signed Ranks Test, one of the nonparametric tests, was used to analyze the research data. As a result of the study, it was observed that the use of projects in programming instruction had a positive effect on students' self-efficacy in programming, while it did not have a significant effect on their computational thinking skills. Based on the results of the research, it is recommended to teach block-based programming before text-based programming, to include game-themed activities, to ensure active participation of students, and to use multidimensional and alternative measurement tools to measure computational thinking skills to comprehend algorithm stages in programming instruction.


INTRODUCTION
The information and communication technologies sector are consistently developing in our country as well as in the world.The needs of society for information technologies and the need for people with competence in the field are similarly increasing.For this reason, the importance of programming education is increasing day by day (Akpınar & Altun;Barut & Kuzu, 2017) and learning methods and tools are being investigated in education and training in this field.
Today, programming education is considered very important for the cognitive development of students for reasons such as developing questioning and thinking skills and enabling them to see the connections between events (Akçay & Çoklar, 2016).Learning programming is a difficult process because it requires cognitive activities such as analysis and synthesis, and conceptual knowledge must be acquired before it can be put into practice (Porter & Calder, 2004).According to Churches (2008), programming skill is included in the creativity stage according to Bloom's taxonomy, which shows that learning takes place in stages, as learners create their own applications to suit their needs and goals.
When we look at the factors that make programming education difficult, we see those negative prejudices against programming, programming languages being in English, and trying to teach programming logic with traditional teaching methods (Arabacıoğlu et al., 2007).In addition to these, rote learning, lack of abstract thinking ability, inadequacy of arithmetic, mathematical and analytical thinking, and inability to determine the usage areas of the applications made in programming courses in real life are among the difficulties encountered by students in programming teaching (Cevahir & Özdemir, 2017).It is stated that the three main factors affecting students' learning of computer programming are teaching approach, choice of computer programming language and programming development environment, and activities based on the constructivist approach should be emphasized in the formation of these learning outcomes (Ali, Tumian, & Seman, 2017).Different methods and strategies based on the principles of the constructivist approach, in which learners are active in their own learning processes and responsible for their own learning, and in which what is learned is associated with real-life problems, are gaining importance.Ülküdür and Bacanak (2016) state that project-based learning is one of these applications.Project-based learning environments provide systematic structuring of what is learned and offer individuals with different learning styles, intelligence, and abilities the opportunity to work individually or collaboratively (Saraçoğlu, Akamca, & Yeşildere, 2006).It is thought that these methods and strategies make students active and affect their thinking skills (Güneş, 2010).
In the process of learning programming, students not only develop their coding knowledge but also their mathematical skills and computational thinking.Thus, students are able to produce projects and share their ideas.These earnings are considered necessary for individuals from every professional group (Sayın & Seferoğlu, 2016).One of the most important 21st-century skills thought to be acquired in the process of learning programming is computational thinking skill.Computational thinking skills indicate creative thinking, algorithmic thinking, critical thinking, problem solving, collaborative learning and communication skills.The computational thinking skill includes decomposition, generalization, algorithmic thinking, evaluation, and abstraction.These steps teach students the basics of how to approach a problem and solve it in a computational context.Programming is seen as a part of this systematic approach (Nash, 2017).Computational thinking refers to the cognitive process used in basic problem-solving steps.Therefore, learning programming is a fundamental factor for developing computational thinking (Lye & Koh, 2014).
Although programming knowledge is accepted as one of the most important requirements for becoming computer literate today, it is seen as a difficult process to learn.For this reason, it is important to develop self-efficacy beliefs towards programming, which is seen as one of the most important factors that facilitate learning programming.Self-efficacy is an individual's belief in his/her own potential that his/her knowledge and skill level is sufficient to perform a function (Bandura, 1988;as cited in Azar, 2012).Many studies show that students who have developed programs before taking the programming course have high achievement and self-efficacy (Gezgin & Adnan, 2016).
Different applications need to be developed to make programming teaching more effective and to facilitate overcoming the difficulties encountered.For this reason, within the scope of the research, it is thought that it would be useful to use the project in programming teaching, which is based on the principles of the constructivist approach, responds to the interests, and needs of learners, and enables learning to take place through real-life problems.In this study, the effect of project use in programming instruction on students' self-efficacy beliefs towards programming and computational thinking skills was examined.In this context, the following questions were searched for answers.
1. What is the effect of project use on students' self-efficacy beliefs about computer programming?
2. What is the effect of project use on students' computational thinking skills?

METHOD
This section includes the research design, participants, experimental process, data collection tools and data analysis.

Research Design
In this study, one group pretest-posttest experimental design method was used.The experimental design used in the study is shown in Table 1.As seen in Table 1, the independent variable of the study was the learning environment in which the project was used, and the dependent variables were students' self-efficacy beliefs about programming and computational thinking skills.

Participants
The research was conducted in 2018 with the participation of 12th-grade students of a Vocational and Technical High School in Izmir.Purposive sampling was used to determine the participants.This school is where one of the researchers works.Participants were included in the study because they took a programming course.All 14 students were male in the study.

Experimental Process
Within the scope of the research, firstly, the curriculum was prepared in accordance with the three-stage Purdue model by considering the existing course curriculum.At the beginning of the experimental implementation process, SESP and CTSLS were applied as a pretest.Then, the prepared curriculum was implemented.Within the scope of the application, students worked individually or collaboratively.Students were allowed to choose project topics based on different ideas.In this process, the teacher-researcher guided the students in the process of resource searching and implementation.In the application, the students presented their projects, and their feedback was received to improve the projects.In the last stage of the research, SESP and CTSLS were applied as a post-test.

Needs Analysis
First, it was decided to use the project method to transform the knowledge acquired in the programming teaching process into learning products.The project method is a teaching method applied in developed countries to prevent the curriculum content from being taught in small pieces of information that are not associated with each other (Çakallıoğlu, 2008).In the research process, a curriculum was needed for students to develop their prior knowledge to comprehend the algorithm logic required by programming and to create independent project studies.Considering that prior knowledge of the subject to be learned has a significant effect on academic success according to the research (Coşar, 2013), it was decided to prepare a curriculum according to the three-stage Purdue model, which enriches project-based learning and emphasizes the importance of prior learning, created by Feldhusen and Kolloff (1988).The content of the curriculum is based on Bloom's taxonomy and the cognitive skill sequence required by the curriculum.Before the implementation, it is expected that conceptual knowledge is acquired, and the synthesis step is expected to be realized by bringing these basic concepts together on a different problem situation.Accordingly, the implementation process of the curriculum was carried out in accordance with the three-stage Purdue model.Table 2 shows the steps corresponding to the three-stage Purdue model and the implementation process in the curriculum of the learning outcomes to be acquired according to the conceptual framework of the components of programming knowledge.While creating the curriculum content, attention was paid to ensure that the activities selected were of a quality that could attract students' interest and were appropriate for the achievements of the course.The realization of learning through the theme of games makes the lessons interesting, provides a better understanding of abstract concepts and the creation of connections between concepts that are effective in establishing the algorithmic structure, and thus increases the motivation to learn (Çatlak, Tekdal, & Baz, 2015).It is stated that learners learn better and enjoy the learning process while working on meaningful projects in line with their interests and needs.While developing the Scratch programming interface, two design criteria were given importance.The first one is that it includes many different story situations and game designs, and the second one is that the activities can be shaped according to personal interests and needs (Resnick et all., 2009).For these reasons, game-themed activities were included in the curriculum, allowing students to work on different problem situations.

Curriculum
The three-stage Purdue model created by Feldhusen and Kolloff (1988) was used in the preparation of the curriculum.Kutlu and Gökdere (2013) stated that although this model was developed for gifted students at the primary education level, it can also be applied in regular education institutions by making necessary arrangements since it enriches project-based learning and provides appropriate learning opportunities for each student.The stages of the curriculum are presented in Table 3, Table 4, and Table 5.As seen in Table 3, Table 4, and Table 5, the curriculum prepared based on the Purdue model consists of three stages.In the first stage of the curriculum, knowledge and skills were acquired, in the second stage, sample applications were developed based on problem-solving models, and in the third stage, independent project studies were carried out under the guidance of the teacher.
In the first 10 weeks of the study, the first and second stages of the three-stage Purdue model were carried out.In the third stage, independent project studies were conducted.Throughout the research, the students studied in a computer laboratory consisting of 15 student computers and 1 teacher computer.Each student had a computer that they could use regularly in their studies.Students who wanted to continue their studies brought their personal computers.The course teacher, who was also one of the researchers, helped the students comprehend the programming logic and develop sample applications in the first and second stages of the model and guided the students in the independent project development process.Students carried out the project development process in the school environment.At the end of the independent project studies, which was the third stage of the research, the SESP and CTSLS were applied as a post-test.

The Role of Researchers
One of the researchers is the teacher of the course and one is the advisor.The researchers prepared a curriculum in line with the needs of the participants and carried out the necessary work to enable programming instruction to be carried out using projects.The teacher-researcher guided the students in the process of creating and developing project ideas.The researchers collected the data by providing the necessary information about the scales used as pre-test and post-test.The researchers analyzed and reported the data in an unbiased manner.

Data Collection Tools 1.4.1. SESP
The SESP, the validity, and reliability study of which was conducted by Altun and Mazman (2012), was applied to the students.The Turkish version of the SESP consists of 9 items and 2 factors (Simple programming tasks and complex programing tasks).The Cronbach Alpha coefficient of the SESP is 0.928.

CTSLS
The CTSLS was developed to measure the computational thinking skills of individuals who can be defined as adult learners.The internal consistency coefficient of the CTSLS is 0.822.CTSLS consists of 29 five-point Likert-type items and 5 sub-factors.CTSLS sub-factors are creativity, algorithmic thinking, collaborative work, critical thinking and problem-solving.

Analyzing the Data
For the sub-problems of the study, the Wilcoxon signed-rank test and dependent groups T test were used to analyze whether there was a difference between the pretest and posttest scores of the SESP and CTSLS.

The Effect of Project Use on Students' Self-Efficacy in Computer Programming
The results of the Wilcoxon Signed Ranks Test conducted for the analysis of the first sub-problem of the study, "How is the effect of using projects on students' self-efficacy beliefs about computer programming?"are presented in Table 6.When Table 6 is examined, it is seen that the difference between students' self-efficacy in programming before and after programming instruction is significant (z=-2,030, p= 0,042).These data were also analyzed with paired samples t-test (t= -2,44, p= 0,029), and a significant difference was found.Accordingly, it is seen that the use of project-based learning method in programming instruction has a positive effect on self-efficacy beliefs about programming (p<0.05).The results of the analysis of the sub-factors of the scale of students' self-efficacy beliefs about computer programming are presented in Table 7. Table 7 shows the results of the analysis of students' self-efficacy beliefs about computer programming on the sub-factors of simple programming tasks and complex programming tasks.Accordingly, it is seen that the difference in the sub-factor of simple programming tasks is significant (z= -2,46, p= 0,014), while the difference in the sub-factor of complex programming tasks is not significant (z= -1,61, p= 0,107).

The Effect of Project Use in on Students' Computational Thinking Skills
The results of the Wilcoxon Signed Ranks Test conducted for the second sub-problem of the study, "How is the effect of project use on students' computational thinking skills?" are presented in Table 8.When Table 8 is examined, it is seen that there is no significant difference between the pre-test and post-test scores of the students' computational thinking skills (z= -0,440, p= 0,66).These data were also analyzed with the Paired Samples T Test (t= -0,372, p= 0,716) and no significant difference was found.Accordingly, it can be said that the use of projects has no significant effect on students' computational thinking skills (p>0.05).When the analysis results related to the sub-factors of computational thinking skills were examined, it was seen that the difference between the pre-test and post-test scores of creativity (z= -0,47, p= 0,63), algorithmic thinking (z= -1,47, p= 0,14), collaboration (z= -0,25, p= 0,79), critical thinking (z= -0,42, p= 0,67), problem solving (z= -0,63, p= 0,52) was not statistically significant.

DISCUSSION AND CONCLUSION
In this study, the effect of using projects on students' self-efficacy beliefs towards programming and computational thinking skills was examined.As a result of the research, it was concluded that the project-based learning method had a significant positive effect on students' self-efficacy beliefs towards programming.There are similar studies in the literature (Wiedenbeck, 2005;Jegede, 2009;Aşkar & Davenport, 2009;Davidson, Larzon, & Ljunggren 2010;Mazman & Altun, 2013).Wiedenbeck (2005), in a study with 120 university students who took C++ programming course for five academic semesters, stated that previous experiences affect perceived self-efficacy and that self-efficacy towards programming also affects success in programming courses.According to a study conducted with 190 engineering students randomly selected from six different engineering departments at the University of Nigeria, it was revealed that the number of programming courses taken by students and their success based on their scores in programming courses significantly predicted their Java programming self-efficacy (Jegede, 2009).Aşkar and Davenport (2009), in their study with engineering students, focused on gender, choice of major, previous computer skills and frequency of computer use as factors determining self-efficacy beliefs.It was found that students who used computers every day had significantly higher self-efficacy scores than those who used computers several times a week and computer engineering students had significantly higher self-efficacy scores than students in other engineering departments.Davidson, Larzon, and Ljunggren (2010) examined how self-efficacy beliefs towards programming changed after a one-year introduction to a programming course.As a result of the study, although students' self-efficacy scores did not show a significant difference, a significant increase was observed in self-regulation and in many of the skills related to the course objectives.Mazman and Altun (2013) examined the self-efficacy beliefs of the students of the department of ITTE according to whether they had prior experience after the programming course they took.At the end of the study, they found that the programming course provided a significant increase in selfefficacy beliefs about programming in both groups with and without prior experience, and this increase was higher for the group without prior experience.It was also observed that the difference between the self-efficacy beliefs of the groups with and without prior experience decreased after the programming course.
Secondly, in this study, it was observed that the use of projects in programming instruction did not have a significant effect on students' computational thinking skills.In the studies conducted in the literature, it is seen that different application-based methods have been studied to measure the development of computational thinking skills (Denner & Werner, 2011;Brennan & Resnick, 2012;Grover, 2015;Kert, Yeni, & Şahiner, 2017).Denner and Werner (2011) developed a method called Fairy assessment by suggesting not to use scales in the assessment of computational thinking, but rather to make measurements based on qualitative analysis.This method is designed to measure whether middle school students understand the stages of programming, as well as whether they have gained skills such as abstraction, modeling, and whether they can apply algorithmic thinking to solve a problem.In this study, each student was assigned three tasks to be performed in the Alice programming environment and a scoring system ranging from 0 to 10 was developed to measure student performance in each task.They stated that each task given in the assessment process should be as independent as possible from other assessment tasks to measure a different dimension of computational thinking.Like this result, Brennan, and Resnick (2012) stated that applications for computational thinking should focus on the learning process and how it is learned rather than what is learned.Brennan and Resnick (2012), who analyzed the practices shared in online Scratch workshops, developed three basic dimensions for the assessment of computational thinking.These dimensions consist of computational concepts (conditional statements, loops, triggers, arithmetic, and logical operators, etc.), computational practices (algorithm creation, abstraction), and perspectives on practices (communication, inquiry).After identifying these dimensions, they defined three approaches to assess the development of computational thinking in students who design programs with Scratch.As a result of the study, it was thought that a single approach was not sufficient, and that it was appropriate to use a combination of approaches in environments suitable for assessment.Similarly, Grover (2015) stated that assessment systems that are more comprehensively structured than the traditional methods used in the assessment of computational thinking, that include multiple assessment tools such as formative assessments, open-ended programming assignments, that are based on applied learning, that can transfer what is learned to different situations and that can measure algorithmic thinking skills are necessary.Kert, Yeni, and Şahiner (2017) stated that for computational thinking to be measurable, the relationship between the sub-skills it contains should be revealed.In this context, they put forward a model that includes sub-skills such as formulation, abstraction, dividing the problem into small parts, algorithmic thinking, and indirectly associates collaborative learning and communication skills.As a result of the study, they stated that to monitor the development of computational thinking, the sub-skills it covers should be measured.In line with these results in the literature, it is seen that it would be more appropriate to use multidimensional and alternative measurement tools to measure computational thinking skills.
During the research process, it was observed that students had difficulty in creating algorithms and synthesizing the information they learned in different problem situations.For this reason, it is thought that block-based programming instruction may be useful to comprehend the algorithm stages before moving on to text-based programming in the process of learning programming.It is thought that instead of giving the students the algorithmic process that takes place during the coding phase of the programs, it would facilitate learning if the interrelated particles were given in order and these stages are done simultaneously with the students.In the research process, it was observed that teaching the concepts learned in programming education through game-themed programs attracted students' attention and increased their motivation.For this reason, it is thought that including game-themed activities in programming teaching will make learning interesting and thus enable students to actively participate in the learning process.In addition, it is thought that it is important for teachers to choose different methods in which they can make students active and to provide the necessary help as a guide to overcome the difficulties in the process of writing a program and not to decrease motivation.In the research process, it was seen that determining the boundaries in the planning of the project applications and the development of the projects contributed to the smoothing of the process and not overburdening the teacher.In cases where similar teaching methods are used, proper task sharing in collaborative working groups will help the process to work.Since the high level of students' self-efficacy beliefs about programming is one of the most important factors facilitating learning, it is recommended to include more experiences that can improve self-efficacy.Although project-based programming makes learning meaningful and interesting, limiting the number of students will enable the teacher to perform the guidance task effectively.
As a result, researchers can examine the effects of project-based instructional practices in programming instruction at different educational levels in terms of the dependent variables of the study.In addition, researchers can examine the effects of different learning methods to overcome the difficulties encountered in programming teaching.In future studies, measurement tools that are structured in a process-oriented way and organized to include the subcomponents of computational thinking skills can be developed and applied to measure computational thinking skills.The researchers expect this study to contribute to future research.

Note:
This research was carried out with the permission of the Izmir Directorate of National Education Research Evaluation Commission dated 09.02.2018 and the permission of the İzmir Directorate of National Education dated 12.02.2018and numbered 12018877-604.01.02-E.2938219.

Table 1 :
Research Design

Table 2 :
Comparison of the Components of Programming Knowledge and Curriculum with the Three-Stage Purdue Model

Table 6 :
Wilcoxon Signed-Ranks Test Results of SESP Pre-Test-Post-Test Application Scores

Table 7 :
Wilcoxon Signed-Ranks Test Results of SESP Pre-Test-Post-Test Application Scores According to Sub-Factors

Table 8 :
Wilcoxon Signed-Ranks Test Results of CTSLS Pre-Test-Post-Test Application Scores