Requirement Elicitation Techniques for a C-Programming Learning Application


  • Nor Farahwahida Mohd Noor Universiti Pendidikan Sultan Idris, Tanjong Malim, Perak, MALAYSIA
  • Aslina Saad Universiti Pendidikan Sultan Idris, Tanjong Malim, Perak, MALAYSIA



Requirement elicitation, programming visualization, C programming


Requirement elicitation is a part of the application development process which determines the functional and non-functional requirements of the application. This study has elicited the requirements of a programming learning application by using several requirement elicitation techniques. The purpose of the application is to assist novice programmers in learning C language programming. The requirement elicitation was done by using qualitative approaches in a triangulation strategy. The triangulation involved literature reviews on related existing C-programming applications and semi-structured interviews with five expert programming lecturers in Malaysian Polytechnic. The requirement elicitation has identified an important approach of a programming learning application which is the programming visualization to help novices understand the program execution behaviour better. It has determined that the application should visualize the variable contents and program execution steps as its functional requirements. Meanwhile, the non-functional requirement of the application is that the application should be designed to be a simple IDE-based application since it is targeting the novices. The finding from this requirement elicitation is essential in determining important functions to be available in the developed application and how it is supposed to be implemented. This application could enhance programming skills of the students and prepare them to be competent programmers for the future industrial demand.


Download data is not yet available.


Azhar, N., & Rani, N. C. A. (2020). Student Readiness Towards E-Learning Adoption in Higher Education: A Conceptual Model Based on Extended Technology Acceptance Model. Journal on Technical and Vocational Education (JTVE), 5 (Education, Vocational December, Issue), 61–74.

Bakar, M. A., Mukhtar, M., & Khalid, F. (2019). The development of a visual output approach for programming via the application of cognitive load theory and constructivism. International Journal of Advanced Computer Science and Applications, 10(11), 305–312.

Chaka, C. (2020). Skills, Competencies and Literacies Attributed to 4IR/Industry 4.0: Scoping Review. International Federation of Library Associations and Institutions, 46(4), 369–399.

Cheah, C. S. (2020). Factors Contributing to the Difficulties in Teaching and Learning of Computer Programming: A Literature Review. Contemporary Educational Technology, 12(2), ep272.

Demilie, W. B. (2019). Causes of Failure of University Students in Computer Programming Courses : The Case of Wachemo University. International Journal of Scientific Research in Computer Science, Engineering and Information Technology, 5(5), 123–132.

Department of Polytechnic and Community College Education, M. of E. M. (2019). Course Information DEC20012 Programming Fundamentals.

Dumbiri, D. N., & Nwadiani, C. O. (2020). Challenges Facing Application of E-learning Facilities in Vocational and Technical Education Program in South Nigeria Universities. Asian Journal of Vocational Education And Humanities, 1(2), 1-8.

Egan, M. H., & Mcdonald, C. (2020). An Evaluation of SeeC : A Tool Designed to Assist Novice C Programmers with Program Understanding and Debugging. Computer Science Education, 00(00), 1–34.

Ettles, A., Luxton-Reilly, A., & Denny, P. (2018). Common Logic Errors Made By Novice Programmers. ACM International Conference Proceeding Series, 83–89.

Evans, C. (2018). Analysing Semi-Structured Interviews Using Thematic Analysis : Exploring Voluntary Civic Participation Analysing Semi-Structured Interviews Using Thematic Analysis : Exploring Voluntary Civic Participation. SAGE Research Methods Datasets.

Gallego‑Romero, J. M., Alario‑Hoyos, C., Estévez‑Ayres, I., & Kloos, C. D. (2020). Analyzing learners’ engagement and behavior in MOOCs on programming with the Codeboard IDE. Educational Technology Research and Development, 68(5), 2505–2528.

Hashim, A. S., Ahmad, R., & Shahrul Amar, M. S. (2017). Difficulties in Learning Structured Programming: A Case Study in UTP. Proceedings - 2017 7th World Engineering Education Forum, WEEF 2017- In Conjunction with: 7th Regional Conference on Engineering Education and Research in Higher Education 2017, RCEE and RHEd 2017, 1st International STEAM Education Conference, STEAMEC 201, 210–215.

Ishizue, R., Sakamoto, K., Washizaki, H., & Fukazawa, Y. (2020). PVC. js : Visualizing C Programs on Web Browsers for Novices. Heliyon, 6(December 2019), e03806.

Islam, N., Shafi Sheikh, G., Fatima, R., & Alvi, F. (2019). A Study of Difficulties of Students in Learning Programming. Journal of Education & Social Sciences, 7(2), 38–46.

Kamaruzaman, F. M., Hamid, R., Mutalib, A. A., & Rasul, M. S. (2019). Conceptual framework for the development of 4IR skills for engineering graduates. Global Journal of Engineering Education, 21(1), 54–61.

Lubbe, W., Ham-Baloyi, W. ten, & Smit, K. (2020). The integrative literature review as a research method: A demonstration review of research on neurodevelopmental supportive care in preterm infants. Journal of Neonatal Nursing, 26(6), 308–315.

Qian, Y., & Lehman, J. D. (2019). Using Targeted Feedback to Address Common Student Misconceptions in Introductory Programming : A Data-Driven Approach. SAGE Open, 9(4), 215824401988513., 1800.

Ramdhani, M. A., Sa, D., Amin, A. S., & Aulawi, H. (2018). Requirements Elicitation in Software Engineering. International Journal of Engineering & Technology, 7, 772–775.

Reyes, R. D. G. D., & Torio, V. A. G. (2021). The Relationship of Expert Teacher–Learner Rapport and Learner Autonomy in the CVIF-Dynamic Learning Program. Asia-Pacific Education Researcher, 30(5), 471–481.

Roslan, R., Mohd Ayub, A. F., Ghazali, N., & Zulkifli, N. N. (2021). The Development of a Collaborated Gamified E-Quiz and Strategy Game Mobile Application to Increase Students’ Motivation and Continuance Usage Intention. ANP Journal of Social Science and Humanities , 2(2), 74-81.

Saad, A., & Dawson, C. (2018). Requirement elicitation techniques for an improved case based lesson planning system. Journal of Systems and Information Technology, 20(1), 19–32.

Schoch, K. (2020). Chapter 16 Case Study Research. In The Scholar-Practitioner’s Guide to Research Design (pp. 245–256).

Shin, W. (2018). A Study on the Effects of Visualization Tools on Debugging Program and Extending Functionality. International Journal of Advanced Science and Technology, 115, 149–160.

Sim, T. Y., & Lau, S. L. (2018). Online Tools to Support Novice Programming: A Systematic Review. 2018 IEEE Conference on E-Learning, e-Management and e-Services, IC3e 2018, 91–96.

Supriya, P., Salve, M., Syed, P., Samreen, N., & Khatri-valmik, P. N. (2018). A Comparative Study on Software Development Life Cycle Models. 696–700.

Warner, J., & Guo, P. J. (2017). CodePilot : Scaffolding End-to-End Collaborative Software Development for Novice Programmers. 9, 1136–1141.

Williamson, K. (2018). Chapter 13 Ethnographic research. In Research Methods. Elsevier Ltd.

Wolff, C. E., Jarodzka, H., & Boshuizen, H. P. A. (2021). Classroom Management Scripts: a Theoretical Model Contrasting Expert and Novice Teachers’ Knowledge and Awareness of Classroom Events. Educational Psychology Review, 33(1), 131–148.




How to Cite

Mohd Noor, N. F., & Saad, A. (2021). Requirement Elicitation Techniques for a C-Programming Learning Application. Journal of Technology and Humanities, 2(2), 10-16.