Abstract
Algorithmic thinking is considered as one of the important steps toward learning to code for novices in programming education. In this study, algorithmic thinking was promoted by introducing a Problem Analysis Algorithmic Model (PAAM) in an Algorithms and Programming 1 (AP) course. A web-based application is developed to offer the PAAM model in the course. The application includes all teaching topics taught in the AP course. One-way cluster sampling and quantitative research were used in this research study. The impact of the PAAM model on novices was determined by conducting a survey. t-test was performed to analyze the students’ responses. The final exam grades for the last two semesters were compared to examine the effect of the PAAM model on students’ gain in the AP course. Results show that novice programmers appreciated the PAAM model in the AP course teaching processes and learning activities. The model supports novices to understand the programming question requirements (input, process, and output) and promotes algorithmic thinking. Moreover, the model helps students in learning problem-solving skills, understanding programming concepts and structures. It also focuses on students’ cognitive engagement and gain in programming. The model not only impacts positively on students’ gain but it also helps in reducing the attrition rates (failure and dropout) in the course.
Keywords
Introduction
Algorithmic thinking is considered as one of the important steps toward learning to code for novices in programming education. It supports students to understand and develop the solution for a given programming question before they start writing the program (Malik et al., 2019b). On the other side, different studies (Malik and Coldwell-Neilson, 2016; Malik and Harsh, 2013; Wang et al., 2016) concluded that introductory programming (IP) courses focus more on programming languages instead of paying equal attention on problem-solving strategies. As a result, the traditional teaching approach promotes programming shortcuts (Webster, 1994) (“Programming question → Codes”) in IP courses (Malik et al., 2019b). Consequently, most of the novices are not able to write a valid program even though they know the syntax and semantics of different statements (Winslow, 1996). Moreover, typical IP books present most of their contents related to programming languages (Robins et al., 2003). Therefore, it is suggested to offer algorithmic thinking as a primary objective of computer science education to students (Hromkovic et al., 2016). This study prepared and offered the Problem Analysis Algorithmic Model (PAAM) in the Algorithms and Programming 1 (AP) course which promotes algorithmic thinking for the whole semester instead of just offering the algorithmic thinking in the early few lectures of the course. This objective was achieved by preparing programming exercises for all the teaching topics of the course based on the PAAM approach.
High failure and dropout rates are also significant concerns in computer science and related departments (Guzdial and Soloway, 2002; Lahtinen et al., 2005; Sykes, 2007; Watson and Li, 2014; Yadin, 2011; Zingaro, 2015). Tavares et al. (2001) discussed that teaching methods and curriculum organization in IP courses are two main factors for high failure rate in the courses. Meisalo et al. (2002) found that 30% of students in the IP course dropped out because they discovered that programming exercises are difficult and hard for them. Therefore, it is important to present the programming exercises in the IP course in such a way that it is easy and convenient for novice programmers to understand those programming questions. Moreover, the teaching methods in the IP course focus on both algorithmic thinking and syntax of the programming language.
This study promotes algorithmic thinking in programming education by offering the PAAMin the AP course. A web-based application is developed to offer the PAAM model in the course. All the teaching topics related to the AP course are covered in the application. Therefore, students practice algorithmic thinking for the whole semester. The impact of the PAAM model on novices was determined by conducting a survey. t-test was performed to analyze the students’ responses. The final exam grades for the last two semesters were compared to examine the effect of the PAAM model on students’ gain in the course. The PAAM approach was offered to the whole cohort of the programming course. The aim was to provide teaching and learning advantage of the PAAM approach to all students registered in the course. The impact of the PAAM approach was determined by comparing the students’ result with the previous semester students in the course. Moreover, the previous semester was offered with the traditional teaching approach. Level of students was the same in both semesters because the admission criteria remain the same in the department.
The study has different sections. A literature review is presented at the beginning, followed by research questions of this study. The PAAM model is described briefly. The research methodology is then explained. Results of this research are reported and discussed. Last, the summary of the research outcomes are presented.
Literature review
Different aspects of algorithmic thinking related to programming education are discussed in this section.
Katai (2014) described algorithmic thinking as a process to develop a sequence of steps in a particular order to solve a problem. The main purpose of this process is to formulate the required steps to achieve the desired outcomes (Hu, 2011). Algorithmic thinking depends on the human formalization capacity for abstraction. Moreover, the computer and mathematical thinking are not necessary requirements of it (Cooper et al., 2010).
Algorithmic thinking is considered as one of the basic concepts in computer science and related fields; therefore, it should be offered as a primary objective of computer science education to students (Hromkovic et al., 2016). Futschek (2006) discussed that algorithmic thinking is a pool of abilities to analyze given problems, to specify a problem precisely, to find the basic actions to construct a correct algorithm, and to improve the efficiency of an algorithm. Furthermore, algorithmic thinking can be taught to students by trying them to solve many problems. Kiss and Arki (2017) argued that those students who do not have background in algorithmic thinking were handicapped in higher studies. Furthermore, the traditional teaching strategies are inappropriate to acquire problem-solving skills for students. They proposed that algorithmic thinking should be a strategic focus in an education setting.
Futschek and Moschitz (2011) argued that algorithmic thinking should be introduced in early years to children with suitable environment and tangible objects. They introduced a learning scenario Tim the Train to primary schools children which involves interesting tasks to help them learning basic concepts of algorithmic thinking. The learning scenario (Tim the train) motivated the beginners to do further programming in different environments. Lamagna (2015) introduced puzzles to develop algorithmic thinking skills for students.
Algorithmic thinking should be offered from the beginning in the teaching processes and learning activities of programming education (Hromkovic et al., 2019). This approach supports novices to get expertise in problem-solving skills besides programming language (Malik et al., 2019a). Hromkovic et al. (2016) introduced three examples in programming course to promote algorithmic thinking. Kiss and Arki (2017) introduced game-based learning to enhance algorithmic thinking in programming education. Chih-Chao and Tzone-I (2018) developed and introduced an online learning system based on puzzle-based game (Turtle Graphics Tutorial System) to promote algorithmic thinking among students. Cooper et al. (2000) introduced an educational environment, Alice, for developing algorithmic thinking.
Malik and Coldwell-Neilson (2017) promoted algorithmic thinking in the basic programming course by introducing a new teaching approach which is based on four stages of the Approach, Deployment, Result, Improvement (ADRI) model. The Result stage of the ADRI model deals with input, process, and output of the given programming question. Problem-solving strategies (pseudo-code and flow chart) are covered in the Approach stage. Syntax of the programming language is discussed in the Deployment stage. The fourth stage (Improvement) provides the given problem question of the first stage with different programming constructs, for example, if the given problem question in the first stage covers For loop, then the same problem question in the fourth stage is given with While loop. This process provides in-depth knowledge and practice of different programming constructs to novice programmers. All the programming examples or problems presented in the course were prepared based on the ADRI model. They concluded that the ADRI model promotes deep learning of the basic programming concepts among novice programmers in the course. Moreover, novices should practice problem-solving strategies, input, process, and output for all examples or exercises presented to them in the AP course. This approach supports novices to acquire better understanding of the programming domain. They also developed and offered an ADRI-based editor (Malik, 2016b) to facilitate the learning process of the course. The problem with the ADRI model is that it covers input, output, and process of the given programming question in the third stage (Result). These concepts (input, process, and output) for the given programming question should be discussed at first place when students start solving the programming question.
Practice plays an important role in developing algorithmic thinking among novice programmers in the AP course. Hook and Eckerdal (2015) concluded that those students who practice more programming questions on the computer got higher marks in the IP course. On the other side, those students got less marks, who focus more on reading books and attending lectures and spare less time for practicing programming questions. Malik et al. (2019a) prepared and offered a web-based application “PROBSOL” to enhance practice in the AP course. The application promotes algorithmic thinking and problem-solving skills in the course. Pseudo-code technique is used in the application. Results show that the application promotes practice among novice programmers and helps them to acquire algorithmic thinking, program design, and problem-solving skills in the course. Winslow (1996) discussed that novice programmers need to practice, practice, and practice, if they want to become expert programmers. Therefore, it is important for novice programmers to practice more programming questions to enhance their algorithmic thinking skills.
Douadi et al. (2012) introduced smart edutainment game (AlgoGames) to promote algorithmic thinking for computer science students. The initial results show that AlgoGames has a potential to become a pedagogical aid for teaching algorithmic thinking. An educational game (PROSOLVE) was introduced to promote algorithmic thinking in the IP course (Malik et al., 2019c). The game is offered as a web-based application. Results of the study concluded that the students were satisfied with the game in the teaching processes and learning activities of the course. Moreover, the game helped novices in grasping the programming concepts, promoted algorithmic thinking, and discouraged programming shortcut (“Programming question → Codes”). On the other side, the game does not deal with programming requirements (input, output, and process) of the given programming question explicitly.
Research questions
The previous section indicates that algorithmic thinking is an important component in programming education. Furthermore, algorithmic thinking should be offered for the whole semester in an AP course. This study prepared and offered the PAAM to novice programmers in the AP course for the whole semester. Two research questions are proposed in order to direct the study and to find out the effect of the PAAM model on novice programmers.
The two research questions of this study are listed as follows: RQ1: How is the PAAM perceived by both female and male students? RQ2: What is the impact of the PAAM on students’ learning?
Introduction to PAAM
The main aim of the web-based PAAM model is to improve the algorithmic thinking of novice programmers in programming education. The model covers two main aspects of programming education, problem analysis and algorithmic thinking. The problem analysis aspect of the model covers programming requirements (input, output, and process) of the given programming question. The algorithmic thinking is promoted by using pseudo-code technique in the model. The PAAM model application covers all teaching topics (basic elements of algorithm and language, input/output, selection, repetition, arrays, and functions) taught in the course. Figure 1 shows the interface of the PAAM model. Interface of the Problem Analysis Algorithmic Model.
A programming question related to different topics of the course is given in the model. Three to five questions related to each teaching topic is included in the application. One of the main objectives of the PAAM model is to provide the students with clear understanding of the given programming question. The model provides input, process, and output boxes as shown in Figure 1 to achieve this objective. The input box demonstrates the main input requirements of the given programming question to novice programmers. The process box shows the process used to solve the given programming question. The output box depicts the expected output of the given program. A user fills in the values in the input box and then can move to the process and output boxes by clicking the right arrow buttons given in between input, process and output boxes as shown in Figure 1. The whole process helps students to grasp and understand the programming domain in a better way. Moreover, it promotes deep learning of the basic programming concepts for novice programmers.
The next part of the PAAM model focuses on algorithmic thinking. This part comprises of three list boxes (Given Steps, Answer, and Correct Steps) as shown in Figure 2. The Given Steps list box depicts the pseudo-code steps of the given programming question in a randomized manner. A student chooses the right steps of the given programming question and moves them from the “Given Steps” to the “Answer” list boxes one by one by clicking the right arrow button. The “Correct Steps” list box depicts the right solution for the given programming statement. Three list boxes of the Problem Analysis Algorithmic Model.
A user can check his solution by clicking “Check Solution” button after it moves all the given steps of the programming question from the “Given Steps” to the “Answer” list boxes. Mistakes in the provided steps of the user are highlighted in Answer list box with red color as shown in Figure 2. Moreover, number of errors is also mentioned in the application.
A user can move to the next or previous question by clicking on “Next or Previous” buttons provided in the application. Moreover, the user can select the specific question from the drop-down menus provided in the application.
Research methodology and design
Kothari (2004) defines research methodology and research design as: “Research methodology is a way to systematically solve the research problem. It may be understood as a science of studying how research is done scientifically. In it we study the various steps that are generally adopted by a researcher in studying his research problem along with the logic behind them” (p. 8). [and] “the research design is the conceptual structure within which research is conducted; it constitutes the blueprint for the collection, measurement and analysis of data. As such the design includes an outline of what the researcher will do from writing the hypothesis and its operational implications to the final analysis of data.” (p. 31)
The first research question of this study was investigated by performing a survey with APstudents after presenting the PAAM in the AP course. The final exam grades of the last two semesters of the AP students were compared to probe the second research question. t-test was performed on the students’ survey responses to explore the first research question. The independent sample t-test is used when there are two categories of independent variables, and the difference in the dependent variable is sought.
The population of the study was the AP students at ABC University. One-way cluster sampling was used, and the intervention was introduced to all the students registered in the programming 1 course during the semester 1, 2019–2020. Moreover, this process provided all students an equal opportunity to gain benefit from the research. Singh (2006) discussed that cluster sampling is frequently used in the research field of education. The survey was distributed to all 120 registered students in the AP course. 88 students responded back to the survey so the response rate is 73%. Out of 88 students participated in the survey, 48 participants (54.5%) were female students and the remaining 40 (45.5%) were male students. An ethical approval was obtained before starting the collection of data from the college. Moreover, students’ participation in the survey was voluntary, and the data were collected anonymously.
Preparation of the survey
Determining the impact of PAAM for novice programmers in the AP course is the main objective of the survey. It consists of 30 closed-ended questions and one open-ended question. The survey consists of four parts.
Five demographic questions (related with participants’ age, gender, major, degree, and prior programming experience) are included in the first section of the survey.
Thirteen questions which are related to the usability of PAAM model in the AP course are included in the next part of the survey. This section uses a five-point Likert scale (strongly agree = 5 to strongly disagree = 1). This section includes most of the questions taken from Mathew et al. (2019).
Questions which are related to the programming concepts in the AP course are included in the third part of the survey. This part includes six questions and uses a five-point Likert scale (strongly agree = 5 to strongly disagree = 1). This section includes all the questions taken from Mathew et al. (2019).
Questions which establish the suitability of PAAM model in the AP course are included in the last part of the survey. This section also uses a five-point Likert scale (strongly agree = 5 to strongly disagree = 1). Six questions are included in this section and are taken from Mathew et al. (2019).
Reliability
Cronbach’s Alpha test is used to calculate the reliability of the independent variables that represent the usability of PAAM model, programming concepts, and application of PAAM model. The calculated value of Cronbach’s Alpha test was 0.945, and it shows that the variables have very good reliability.
Results
The results of this study are described in this section. The first research question is as follows: RQ1: How is the PAAM perceived by both female and male students?
Analysis of survey
The PAAM was introduced to the AP students, and then a survey was performed to find out the impact of the model on novice programmers. Survey responses were analyzed using t-test to find out whether there is any significant difference exists between the mean values of female and male students.
The following four parts are included in the student survey: Demographic details Usability of PAAM model Programming concepts Application of PAAM model
Demographic details
The first part of the survey presents the demographic details of the respondents as follows: Most of the respondents belong to information systems (37.5%) major, compared to software engineering (35.2%) and computer science (27.3%). 50.0% respondents are studying at the level of bachelor degree as compared to 40.9% for diploma and 9.1% for advanced diploma. Most of the respondents (89.8%) are 18–28 years old, compared to 5.7% under 18 years, and 4.5% are 29–44 years old. There was no respondents which are 45 years old or above. 54.5% respondents were women compared to 45.5% men. Most of the respondents (74.4%) do not have any prior programming experience.
Usability of PAAM model
Usability of the Problem Analysis Algorithmic Model model.
Null Hypothesis (H0): There is no significant difference between values of female and male students’ responses in the survey.
Alternative Hypothesis (H1): There is a significant difference between values of female and male students’ responses in the survey.
Results in Table 1 show that there are some areas such as “Understand the process to solve the given programming question” (p = 0.000), “Understand the given programming question” (p = 0.049), “Understand the programming concepts” (p = 0.000), “Design a solution to solve a programming task” (p = 0.005), “Enhance my learning by participating in the course activity” (p = 0.002), “Develop my skills that are related to my academic career and professional life” (p = 0.015), and “Develop my confidence in the programming area” (p = 0.026) where there is significant differences at the level of p < 0.05. On the other side, there are some areas like “Understand the inputs required for the given programming question” (p = 0.183), “Understand the outputs required for the given programming question” (p = 0.242), “Learn the pseudo-code technique (problem solving skills)” (p = 0.168), “Emphasize on problem-solving skills” (p = 0.107), “Understand programming structures” (p = 0.456), and “‘Learn the course contents” (p = 0.146) which have no significant differences between female and male students’ responses.
Programming concepts
Programming concepts.
PAAM: Problem Analysis Algorithmic Model.
Table 2 shows that in some areas (“Input/Output” (p = 0.016), “Selection Structure (if statement)” (p = 0.004), “Functions” (p = 0.022), and “Arrays” (p = 0.001)), there is significant difference at the level of p < 0.05. In contrast, there is no significant differences in other areas like “Designing an Algorithm” (p = 0.888), and “Repetition Structures (loops)” (p = 0.203).
Application of PAAM model
t-test results of application of the PAAM model.
PAAM: Problem Analysis Algorithmic Model.
Table 3 reveals that in some areas (“Supports me in preparing for programming exams” (p = 0.036), and “Is also utilized at home in addition to classroom activities” (p = 0.029)), there is significant difference at the level of p < 0.05. In contrast, there is no significant differences in other areas like “Motivates me to learn programming” (p = 0.179), “Involves me in programming activities more vigorously” (p = 0.112), “Is effective to learn programming” (p = 0.412), and “Should also be prepared and offered for advanced programming courses” (p = 0.607).
Impact of PAAM model on students’ learning
This section describes the results of second research question which is stated as below: RQ2: What is the impact of the PAAM on students’ learning?
Malik (2016a) presented the students’ gain in an IP course by using the following five categories: High achiever: Students marks in the IP course between 85 and 100. Medium achiever: Students marks in the IP course between 65 and 84. Low achiever: Students marks in the IP course between 50 and 64. Fail: Students marks in the IP course less than 50. Dropout: Students discontinue the IP course during the semester.
This study also adopted the same five categories in determining the impact of the PAAM model in the AP course. The final grades of the AP students for the last two semesters (semester 2, 2018–2019 and semester 1, 2019–2020) were analyzed based on the abovementioned five categories as shown in Figure 3. The semester 1, 2019–2020, was offered with the PAAM model to the AP students and semester 2, 2018–2019, was offered to the AP students with the traditional approach. Impact of Problem Analysis Algorithmic Model on students’ gain.
Figure 3 depicts the results of the AP students with the PAAM model and the traditional approach.
The high achiever category shows an improvement of 2.9%, with 15.3% novices who studied and passed the AP course with the PAAM approach in comparison to 12.4% novices who passed with the traditional teaching approach. The category of medium achiever depicts a rise of 4.2%, with 37.4% novices with the PAAM approach in comparison to 33.2% with the traditional teaching approach. The low achiever category shows an improvement of 2.8%, with 36.2% novices with the PAAM approach in comparison to 33.4% with the traditional teaching approach. The failure rate in the AP course after offering the PAAM approach is 7.8% compared to 12% with the traditional teaching approach, a decrease of 4.2%. Similarly, the dropout rate is also reduced by 5.7% in the semester offered with the PAAM model (3.3%) in comparison to the traditional teaching approach (9%).
Discussion
The PAAM-based web application was introduced in the AP course to enhance algorithmic thinking and problem-solving skills of novice programmers. The application focuses on problem analysis and algorithmic thinking in the programming education.
The result of the students’ survey depicts that most of the students appreciated the PAAM in the teaching processes and learning activities of the AP course. The model helps novice programmers in understanding programming questions requirements, programming concepts and structures, and algorithmic thinking. Furthermore, it supports students in enhancing their confidence in the programming domain and helping them in developing their program design skills.
The model helps novices in understanding the basic requirements such as input, output, and process of the given programming question. The model provides in-depth understanding of the given programming question to novices before they start writing a program. This approach supports deep learning of the problem domain. Furthermore, it focuses on students cognitive engagement and gain in programming. This finding is consistent with Malik et al. (2019b) who introduced the ADRI approach to promote algorithmic thinking in an IP course. Furthermore, the third stage (Result) of the ADRI approach also discusses input, output, and process of the given programming question.
The PAAM model focuses on input, output, and process required for the given programming question. Students will acquire a better and in-depth knowledge of the programming domain by examining its basic requirements and underlying process. Furthermore, this process helps novices to plan the solution of the given programming question before they start writing the code. Ala-Mutka (2004) suggested that learning to code should cover language features, program design, and comprehension. The PAAM model covers all these abovementioned activities in the course.
The analysis of students grades in the AP course show that the PAAM model provides a positive impact in all the five categories as shown in Figure 3. The model helps students in understanding a given programming question, provides them in-depth knowledge of basic programming structures, and motivates them to practice more problems related to the programming domain. The model is offered through a web application which also provides an opportunity to the students to finish their programming exercises at their convenient time. This process supports students’ affective engagement and gain in the course.
Figure 3 depicts that the PAAM-based application does not support only the high achievers in grasping the precise concepts of programming domain but it also helps medium and low achievers. Moreover, the failure rate in the AP course after offering the PAAM approach is reduced by 4.2%. Similarly, the dropout rate is also reduced by 5.7% in the semester offered with the PAAM model in comparison to the traditional teaching approach. This process helps the computer science and related disciplines in retaining and recruiting students.
Hsu and Hwang (2017) mentioned that it is challenging for novices to understand programming concepts particularly at the early stage of learning computer programming skills. But Bashir and Hoque (2016) emphasized that programming skills are considered as one of the core competences for novice programmers in computer science department. Results show that the PAAM model helps novice programmers in understanding the basic concepts of programming. Moreover, the model includes all teaching topics taught in the course which promotes algorithmic thinking among novices throughout the semester. This approach is consistent with De Raadt et al. (2005) who examined 40 programming text books and suggested that problem-solving skills should be integrated in all the chapters not just in the early chapters of the text books.
The PAAM model promotes algorithmic thinking by focusing on problem-solving strategy (pseudo-code technique) in the course. Some studies (De Raadt, 2008; Malik and Harsh, 2013) concluded that IP courses emphasis more on syntax instead of paying equal consideration on problem-solving strategies. The PAAM model addresses this issue and offers pseudo-code technique in all the questions for all of the topics covered in the AP course. Students practice the pseudo-code technique for the whole semester which promotes algorithmic thinking among novice programmers. This process supports deep learning of the programming domain among novice programmers. Moreover, students focus more on program design instead of emphasizing on the syntax of programming language.
Programming shortcut (Webster, 1994) (“Programming question → Codes”) is discouraged by the PAAM model and emphasizes a new approach based on three steps (“Programming question → Solution plan → Codes”). This new approach encourages students to use problem analysis and pseudo-code technique for developing the solution of the given programming question before they start writing the code. The problem analysis aspect of the new approach covers programming requirements (input, output, and process) of the given programming question. Pseudo-code technique is used to enhance the algorithmic thinking skills of novice programmers. This new approach is consistent with Malik and Coldwell-Neilson (2018) who proposed the ADRI model to discourage programming shortcut in an AP course.
The PAAM model was offered for the whole semester which motivates novice programmers to practice more programming exercises. Malik (2016b) argued that programming practice plays an important role for novices to grasp its precise concepts. Winslow (1996) stated that “the old saw that practice makes perfect has a solid psychological basis” (p. 18). Moreover, students have to practice more often programming problems, if they want to become expert programmers. Wang et al. (2017) mentioned that students’ higher order thinking performance can be promoted by programming training.
Most students agreed that the PAAM model helps them in preparing exams. This process affects the attrition rate (failure and dropout) in the AP course which is reported as one of the major issue in computer science and related departments. Wiedenbeck et al. (2004) discussed that if a student fails or passes the IP course with a struggle, it is more likely that the student will discontinue further study in the stream of computer science.
The application helps students to develop and correct their logic related to the given problem question by providing them instant feedback on their solutions. Errors in the students’ solution are presented in red color which helps students to reflect on their own solution by comparing it with the correct solution.
The PAAM model is offered as a web-based application. Therefore, most students agreed that they used the model at home after classroom activities. This process promotes students’ affective engagement in the AP course. This approach is consistent with Malik (2019b) who offered PROBSOL (a web-based application) in basic programming courses. The results of the study concluded that the application enhances novices’ engagement in the IP courses. Malik and Coldwell-Neilson (2018) argued that academic performances of students can be enhanced by integrating technology tools in the process of education.
The web-based application is easy to navigate and use which promotes deep learning of the programming concepts for novice programmers. Students need to click on buttons to move the solution of the given problem question from one list box to other. This process helps students to focus more to devise the possible solution of the given problem question instead of emphasizing on syntax of the programming language. Moreover, the application compares the students’ solution with the correct solution which helps students to learn the programming by their mistakes.
The application provides three to five questions related to different topics of the course. This process promotes practice among novice programmers related to different topics taught in the course. Students can easily move from one question to other by clicking on the next or previous buttons or by selecting the question from the drop-down menus provided in the application. Moreover, the application provides a question bank to the AP instructors. So the application can be used as an additional teaching resource in the course.
Students agreed that the application should also be prepared and offered in the advance programming courses which promote in-depth and deep learning of the programming domain. Most students also agreed that the PAAM-based web application helped them to develop skills required for their chosen professional area of study.
Research limitations
The research study focuses only on population of one specific location; therefore, the generalization of the result may not be applicable to other cultures or locations. Nevertheless, the basic concepts of the PAAM can be generalized in a broader context of teaching and learning process of the AP (IP) course. Moreover, the research project follows reliable practices; the results and findings may serve to inform the field of programming education.
Conclusion
Algorithmic thinking plays an important role in learning to code for novice programmers. It helps novices to understand and develop the solution for a given programming question before they start writing the program. This study introduced a PAAM in an AP course to promote algorithmic thinking for novice programmers. A web-based application based on the PAAM model was developed and offered in the AP course. The impact of the PAAM model was determined by conducting a survey in the course. t-test was performed to analyze the students’ responses. The grades of the final exam for the last two semesters were compared to find out the effect of the model on students gain in the course.
Results of the study depict that most novices appreciated the PAAM model in the teaching processes and learning activities of the AP course. The model focuses on programming problem requirements (input, process, and output) and problem-solving skills which help novices to understand the programming domain. The PAAM-based application helps students in understanding programming questions requirements, programming concepts and structures, and algorithmic thinking. It also focuses on students’ cognitive engagement and gain in programming. Furthermore, it supports students in enhancing their confidence in the programming domain and helping them in developing their program design skills.
Programming shortcut (“Programming question → Codes”) is discouraged by the PAAM model and emphasizes a new approach based on three steps (“Programming question → Solution plan → Codes”). This new approach encourages students to use pseudo-code technique for developing the solution of the given programming question before they start writing the code. Furthermore, the new approach focuses on problem requirement analysis (input, process, and output) to provide a clear idea related to the given problem question to novice programmers.
The comparison of the final exam grades depicts that the PAAM model impacts positively on students’ achievements and gains. Moreover, the semester taught with the PAAM model in the AP course reduced the dropout and failure rates as compared to the semester taught with the traditional teaching approach.
The PAAM model was offered through a web application. Moreover, programming exercises associated with the teaching topics covered in the AP course were inserted in the application. Novices practice algorithmic thinking for the whole semester which promotes deep learning of the programming domain. Results show that the model helps students to understand the programming structures and concepts. Moreover, the model motivates students to learn programming, involves them in programming activities more vigorously, and helps them in preparing programming exams.
The web-based application helps students to practice programming questions at their own time and convenience. Most students agreed that the application motivated them to complete their programming exercises outside the class activities. Three to five questions related to different topics of the course are covered in the application which promotes practice among novice programmers. Furthermore, the application provides a question bank to the AP instructors. So it can be used as an additional teaching resource in the course.
Implications for future research
This study introduced a PAAM in an AP (IP) course to promote algorithmic thinking for novice programmers. Results show that the model focuses on programming problem requirements (input, process, and output) and problem-solving skills which help novices to understand the programming domain.
This study was limited to one location and culture only. In future work, we would like to investigate the impact of the PAAM approach on other cultures and institutions. Moreover, we plan to introduce a chat bot and other artificial intelligence features in the application to facilitate the teaching and learning process of the programming education for novice programmers. A mobile app will be prepared for the PAAM application to facilitate the teaching–learning process of programming education.
Footnotes
Declaration of Conflicting Interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) received no financial support for the research, authorship, and/or publication of this article.
