ALGORITHM DESIGN PATTERNS: A CONCEPTUAL FRAMEWORK FOR SIMPLIFYING COMPLEX PROBLEMS IN BEGINNER COMPUTER SCIENCE EDUCATION

Authors

  • Lenny Yusrina Bujang Khedif Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA Cawangan Sarawak, Kampus Samarahan 2
  • Sulastri Putit Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA Cawangan Sarawak, Kampus Samarahan 2

DOI:

https://doi.org/10.24191/VoA.v22i2.13443

Keywords:

Algorithm Design Patterns, Algorithmic Thinking, Beginner Computer Science, Education, Instructional Scaffolding

Abstract

Teaching algorithmic problem-solving remains a major challenge in beginner computer science education because novice programmers often struggle to identify appropriate solution strategies beyond programming syntax. Existing instructional approaches generally present algorithm paradigms as isolated topics, making it difficult for learners to recognise problem characteristics and transfer knowledge across different computational tasks. This study proposes the Algorithm Design Patterns (ADP) framework, a conceptual instructional model that organises five fundamental algorithm paradigms into reusable learning patterns for beginner computer science education. A conceptual research approach was adopted by synthesising literature on algorithmic thinking, programming pedagogy, instructional scaffolding, and algorithm design. The proposed framework integrates Divide and Conquer, Greedy Algorithms, Dynamic Programming, Backtracking, and Recursive Patterns into a progressive instructional structure supported by representative algorithms, classroom activities, and common learning pitfalls. By emphasising problem analysis before algorithm selection, the framework aims to strengthen algorithmic thinking and support more systematic learning. The proposed framework offers a structured pedagogical reference for introductory algorithm instruction and provides a foundation for future empirical validation in computer science education.

References

Angeli, C. (2022). The effects of scaffolded programming scripts on pre-service teachers’ computational thinking: Developing algorithmic thinking through programming robots. International Journal of Child-Computer Interaction, 31, 100329. https://doi.org/10.1016/j.ijcci.2021.100329

Angeli, C., & Giannakos, M. (2020). Computational thinking education: Issues and challenges. Computers in Human Behavior, 105, 106185. https://doi.org/10.1016/j.chb.2019.106185

Bjursten, E.-L., Nilsson, T., & Gumaelius, L. (2023). Computer programming in primary schools: Swedish technology teachers’ pedagogical strategies. International Journal of Technology and Design Education, 33(4), 1345–1368. https://doi.org/10.1007/s10798-022-09786-7

Chen, H. E., Sun, D., Hsu, T.-C., Yang, Y., & Sun, J. (2023). Visualising trends in computational thinking research from 2012 to 2021: A bibliometric analysis. Thinking Skills and Creativity, 47, 101224. https://doi.org/10.1016/j.tsc.2022.101224

Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms (3rd ed.). MIT Press.

Dogan, A. (2020). Algorithmic thinking in primary education. International Journal of Progressive Education, 16(4), 286–301. https://doi.org/10.29329/ijpe.2020.268.18

Duran, R., Zavgorodniaia, A., & Sorva, J. (2022). Cognitive load theory in computing education research: A review. ACM Transactions on Computing Education, 22(4), Article 40, 1–27. https://doi.org/10.1145/3483843

Fojtík, R., & Jirásková, D. (2014). Design patterns in the teaching of programming. Procedia - Social and Behavioral Sciences, 143, 352–357. https://doi.org/10.1016/j.sbspro.2014.07.575

Futschek, G. (2006). Algorithmic thinking: The key for understanding computer science. In R. T. Mittermeir (Ed.), Informatics education - The bridge between using and understanding computers (pp. 159–168). Springer. https://doi.org/10.1007/11915355_15

Grover, S., & Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher, 42(1), 38–43. https://doi.org/10.3102/0013189X12463051

Hao, X., Xu, Z., Guo, M., Hu, Y., & Geng, F. (2023). The effect of embedded structures on cognitive load for novice learners during block-based code comprehension. International Journal of STEM Education, 10, Article 42. https://doi.org/10.1186/s40594-023-00432-9

Hou, X., Ericson, B. J., & Wang, X. (2022). Using adaptive Parsons problems to scaffold write-code problems. In Proceedings of the 2022 ACM Conference on International Computing Education Research (Vol. 1). Association for Computing Machinery. https://doi.org/10.1145/3501385.3543977

Liu, J., Poulsen, S., Goodwin, E., Chen, H., Williams, G., Gertner, Y., & Franklin, D. (2025). Teaching algorithm design: A literature review. ACM Transactions on Computing Education, 25(2), Article 17, 1–20. https://doi.org/10.1145/3727987

Liu, Z., Gearty, Z., Richard, E., Orrill, C. H., Kayumova, S., & Balasubramanian, R. (2024). Bringing computational thinking into classrooms: A systematic review on supporting teachers in integrating computational thinking into K–12 classrooms. International Journal of STEM Education, 11, Article 51. https://doi.org/10.1186/s40594-024-00510-6

McCauley, R., Grissom, S., Fitzgerald, S., & Murphy, L. (2015). Teaching and learning recursive programming: A review of the research literature. Computer Science Education, 25(1), 37–66. https://doi.org/10.1080/08993408.2015.1033205

Pechorina, Y., Anderson, K., & Denny, P. (2023). Metacodenition: Scaffolding the problem-solving process for novice programmers. In Proceedings of the 25th Australasian Computing Education Conference (pp. 59–68). Association for Computing Machinery. https://doi.org/10.1145/3576123.3576130

Shin, Y., Jung, J., & Lee, H. J. (2024). Exploring the impact of concept-oriented faded worked-out examples and metacognitive scaffolding on learners’ transfer performance and motivation in programming education. Metacognition and Learning, 19(1), 147–168. https://doi.org/10.1007/s11409-023-09362-x

Song, D., Hong, H., & Oh, E. Y. (2021). Applying computational analysis of novice learners’ computer programming patterns to reveal self-regulated learning, computational thinking, and learning performance. Computers in Human Behavior, 120, 106746. https://doi.org/10.1016/j.chb.2021.106746

Tikva, C., & Tambouris, E. (2021). A systematic mapping study on teaching and learning computational thinking through programming in higher education. Thinking Skills and Creativity, 41, 100849. https://doi.org/10.1016/j.tsc.2021.100849

Velázquez-Iturbide, J. Á. (2013). An experimental method for the active learning of greedy algorithms. ACM Transactions on Computing Education, 13(4), Article 18, 1–23. https://doi.org/10.1145/2534972

Wei, X., Lin, L., Meng, N., Tan, W., Kong, S.-C., & Kinshuk. (2021). The effectiveness of partial pair programming on elementary school students’ computational thinking skills and self-efficacy. Computers & Education, 160, 104023. https://doi.org/10.1016/j.compedu.2020.104023

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35. https://doi.org/10.1145/1118178.1118215

Yusuf, A., & Noor, N. M. (2024). Modelling students’ algorithmic thinking growth trajectories in different programming environments: An experimental test of the Matthew and compensatory hypothesis. Smart Learning Environments, 11, Article 38. https://doi.org/10.1186/s40561-024-00324-7

Downloads

Published

2026-07-31

Issue

Section

Articles

How to Cite

Bujang Khedif, L. Y., & Putit, S. (2026). ALGORITHM DESIGN PATTERNS: A CONCEPTUAL FRAMEWORK FOR SIMPLIFYING COMPLEX PROBLEMS IN BEGINNER COMPUTER SCIENCE EDUCATION. Voice of Academia, 22(2), 204-218. https://doi.org/10.24191/VoA.v22i2.13443