A web-based model to enhance algorithmic thinking for novice programmers

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.

[1]  Sohail Iqbal Malik,et al.  A model for teaching an introductory programming course using ADRI , 2017, Education and Information Technologies.

[2]  Hsiu-Ying Wang,et al.  Comparison of the effects of project-based computer programming activities between mathematics-gifted students and average students , 2016 .

[3]  Sohail Iqbal Malik,et al.  Role of ADRI model in teaching and assessing novice programmers , 2016 .

[4]  Jo Coldwell-Neilson,et al.  Impact of a New Teaching and Learning Approach in an Introductory Programming Course , 2017 .

[5]  Gerald Futschek,et al.  Learning Algorithmic Thinking with Tangible Objects Eases Transition to Computer Programming , 2011, ISSEP.

[6]  Sohail Iqbal,et al.  A Self Review and External Review Model for Teaching and Assessing Novice Programmers , 2013 .

[7]  Gerald Futschek,et al.  Algorithmic Thinking: The Key for Understanding Computer Science , 2006, ISSEP.

[8]  Sohail Iqbal Malik,et al.  Teaching Problem Solving Skills using an Educational Game in a Computer Programming Course , 2019, Informatics Educ..

[9]  Tzone-I Wang,et al.  Applying game mechanics and student-generated questions to an online puzzle-based game learning system to promote algorithmic thinking skills , 2018, Comput. Educ..

[10]  Daniel Zingaro Examining Interest and Grades in Computer Science 1: A Study of Pedagogy and Achievement Goals , 2015, TOCE.

[11]  Susan Wiedenbeck,et al.  Factors affecting course outcomes in introductory programming , 2004, PPIG.

[12]  Zoltán Kátai,et al.  The challenge of promoting algorithmic thinking of both sciences- and humanities-oriented learners , 2015, J. Comput. Assist. Learn..

[13]  Frederick W. B. Li,et al.  Failure rates in introductory programming revisited , 2014, ITiCSE '14.

[14]  Michael de Raadt Teaching programming strategies explicitly to novice programmers , 2008 .

[15]  Sohail Iqbal Malik,et al.  Gender differences in an introductory programming course: New teaching approach, students’ learning outcomes, and perceptions , 2018, Education and Information Technologies.

[16]  Aharon Yadin,et al.  Reducing the dropout rate in an introductory programming course , 2011, INROADS.

[17]  Edmund A. Lamagna,et al.  Algorithmic thinking unplugged , 2015 .

[18]  Mark Guzdial,et al.  Teaching the Nintendo generation to program , 2002, CACM.

[19]  Gwo-Jen Hwang,et al.  Effects of a Structured Resource-based Web Issue-Quest Approach on Students' Learning Performances in Computer Programming Courses , 2017, J. Educ. Technol. Soc..

[20]  Gwo-Jen Hwang,et al.  Enhancing Students' Computer Programming Performances, Critical Thinking Awareness and Attitudes towards Programming: An Online Peer Assessment Attempt , 2017 .

[21]  Chenglie Hu,et al.  Computational thinking: what it might mean and what we might do about it , 2011, ITiCSE '11.

[22]  Sohail Iqbal Malik Enhancing practice and achievement in introductory programming using an ADRI editor , 2016, 2016 IEEE International Conference on Teaching, Assessment, and Learning for Engineering (TALE).

[23]  Anna Eckerdal,et al.  On the Bimodality in an Introductory Programming Course: An Analysis of Student Performance Factors , 2015, 2015 International Conference on Learning and Teaching in Computing and Engineering.

[24]  Lidia Arroyo Prieto Acm , 2020, Encyclopedia of Cryptography and Security.

[25]  LahtinenEssi,et al.  A study of the difficulties of novice programmers , 2005 .

[26]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[27]  Y. Singh,et al.  Fundamental of Research Methodology and Statistics , 2006 .

[28]  Stephen Cooper Developing Algorithmic Thinking with Alice , 2000 .

[29]  Sohail Iqbal Malik,et al.  PROBSOL: A Web-Based Application to Develop Problem-Solving Skills in Introductory Programming , 2019 .

[30]  Erkki Sutinen,et al.  Formative evaluation scheme for a web-based course design , 2002, ITiCSE '02.

[31]  Edward R. Sykes,et al.  Determining the Effectiveness of the 3D Alice Programming Environment at the Computer Science I Level , 2007 .

[32]  Lance C. Pérez,et al.  K--12 computational learning , 2010, Commun. ACM.

[33]  Abu Sayed Md. Latiful Hoque,et al.  An effective learning and teaching model for programming languages , 2016 .

[34]  Dennis Komm,et al.  Examples of Algorithmic Thinking in Programming Education , 2016 .

[35]  Seridi Hamid,et al.  Smart edutainment game for algorithmic thinking , 2012 .

[36]  Mohanaad Shakir,et al.  Promoting Algorithmic Thinking in an Introductory Programming Course , 2019, Int. J. Emerg. Technol. Learn..

[37]  Gabor Kiss,et al.  The Influence of Game-based Programming Education on the Algorithmic Thinking☆ , 2017 .

[38]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[39]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[40]  Giuseppe Chiazzese,et al.  Teaching of social software and web 2.0 , 2012 .