Abstract
High failure and drop-out rates from introductory programming courses continue to be of significant concern to computer science disciplines despite extensive research attempting to address the issue. In this study, we include the three entities of the didactic triangle, instructors, students and curriculum, to explore the learning difficulties that students encounter when studying introductory programming. We first explore students’ perceptions of the barriers and affordances to learning programming. A survey is conducted with introductory programming students to get their feedback on the topics and associated learning resources in the introductory programming course. The instructors’ perceptions are included by analyzing current teaching materials and assessment tools used in the course. As a result, an ADRI based approach is proposed to address the problems identified in the teaching and learning processes of an introductory programming course.


Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Abuid, B.A. (2010). ADRI – Self assessment model for teaching and learning (pp. 165–175). Proceedings of the 2nd International Conference on Global Trends and Challenges in Higher Education and Quality Assurance . Muscat: Mazoon College.
Ala-Mutka, K. (2004). Problems in learning and teaching programming – a literature study for developing visualizations in the Codewitz-Minerva project, Codewitz needs analysis, http://www.cs.tut.fi/~edge/literature_study.pdf. Accessed 20 Dec 2013.
Anderson, L. W., Krathwohl, D. R., Airasian, P. W., Cruikshank, K. A., Pintrich, P. R., Mayer, R. E., Raths, J., & Withrock, M. C. (2000). A taxonomy for learning, teaching and assessing. Pearson: Abridged Edn.
Baird, J. (2006). Quality frameworks, reflections from Australian Universities: Australian Universities Quality Agency, http://www.auqa.edu.au/files/publications/qf_final_web_pages_281106.pdf. Accessed Jul 2013.
Ben-Ari, M. (2001). Constructivism in computer science. Journal of Computers in Mathematics and Science, 20(1), 45–73.
Biggs, J.B. (2003). Teaching for quality learning at University. In Innovations in Education and Teaching International, Vol. 50, No. 4, 2nd edn, Buckingham open University Press, Open University Press.
Biggs, J. B., & Collis, K. F. (1982). Evaluating the quality of learning – the SOLO taxonomy. New York: Academic.
Boud, D., Cohen, R., & Sampson, J. (1999). Peer learning and assessment. Assessment & Evaluation in Higher Education, 24(4), 413–426.
Boyer, N.R., Langevin, S., & Gaspar, A. (2008). Self direction & constructivism in programming education (pp. 89–94). Proceedings of the 9th ACM SIGITE conference on Information technology education, SIGITE ’08. New York: ACM.
Brito, M.A., & Sa-Soares F.D. (2010). Computer programming: fail fast to learn sooner. In: M. D. Lytras (Ed.): Tech-education (pp. 223–229). Springer-Verlag.
Candy, P. C. (1991). Self-direction for life-long learning: a comprehensive guide to theory and practice (1st ed.). San Francisco: Jossey-Bass.
Carroll, M. & Razvi, S. (2006). ADRI a quality assurance model for self-reviews and external-reviews, MOHE and OAC, Workshop hand-out, Training Module 01 v6, http://www.nct.edu.om/_documents/qa_portal/manual_adri.pdf. Accessed Jul 5 2013.
Corney, M., Lister, R., & Teague, D. (2011). Early relational reasoning and the novice programmer: swapping as the ‘Hello World’ of relational reasoning (pp. 95–104). Proceeding of 13th Australasian Computer Education Conference Perth: Australia.
De Raadt, M. (2008). Teaching programming strategies explicitly to novice programmers, PhD thesis, University of Southern Queensland, Australia, retrieved June 2013, USQ ePrints.
De Raadt, M., Toleman, M., & Watson, R. (2005). Textbooks under inspection, technical report. Australia: University of Southern Queensland. http://eprints.usq.edu.au/id/eprint/167 . Accessed Jul 14 2014.
Education.com (2016). Different learning styles in education, http://www.education.com/reference/article/Ref_Teaching_Tips/. Accessed Jan 25 2016.
Fleming, N., & Baume, D. (2006). Learning styles again: VARKing up the right tree! Educational Developments, SEDA Ltd, Issue 7.4, (pp. 4–7).
Fuller, U., Johnson, C. G., Ahoniemi, T., Cukierman, D., Hernán-Losada, I., Jackova, J., Lahtinen, E., Lewis, T. L., Thompson, D. M., Riedesel, C., & Thompson, E. (2007). Developing a computer science-specific learning taxonomy. ACM SIGCSE Bulletin, 39(4), 152–170.
Gazza, E. A. (2015). Continuously improving online course design using the plan-Do-study-Act cycle. MERLOT Journal of Online Learning and Teaching, 11(2), 291–297.
Guzdial, M., & Soloway, E. (2002). Log on education: teaching the Nintendo generation to program. Communications of the ACM, 45(4), 17–21.
Iqbal, S., & Harsh, O. K. (2013). A self-review and external review model for teaching and assessing novice programmers. International Journal of Information and Education Technology, 2(3), 120–123.
Jantti, M.H. (2002). Minding your own business: can a business excellence framework translate to the education sector? Proceedings of Quality conversations on the Annual Higher Education Research and Development Society of Australasia Conference, Perth: HERDSA.
Jenkins, T. (2001). Teaching programming – A journey from teacher to motivator (pp. 65–71). Proceedings of 2nd Annual LTSN-ICS Conference: London.
Johnson, C.G. & Fuller, U. (2006). Is Bloom’s taxonomy appropriate for computer science (pp. 115–118). Proceeding of 6th Baltic Sea Conference on Computing Education Research (Koli calling 2006). Finland: Koli National Park.
Kaasbøll, J.J. (1998). Exploring didactic models for programming (pp. 195–203). Proceedings of NIK’98 (Norwegian Computer Science Conference): Kristiansand.
Kansanen, P. (1999). Teaching as teaching-studying-learning interaction. Scandinavian Journal of Educational Research, 43(1), 81–89.
Kinnunen, P. & Malmi L. (2006). Why students drop out CS1 course? ICER ’06 (pp. 97–108). Proceedings of the second international workshop on Computing education research, ACM: USA.
Klug, B. (1976). To grade, or not to grade: a dramatic discussion in eleven parts. Studies in Higher Education, 1(2), 197–207.
Lahtinen, E., Ala-Mutka, K., & Järvinen, H.M. (2005). A study of the difficulties of novice programmers. Proceeding of ITiCSE’05,ACM: Monte de Caparica.
Linn, M. C., & Clancy, M. J. (1992). The case for case studies of programming problems. Communication of the ACM, 35(3), 121–132.
McGregor, F. (2003). Benchmarking with the Best. Proceedings of the 5th Northumbria Conference on Performance Measurement in Libraries and Information Services, International Federation of Library Associations: Durham.
McKinney, D., & Denton, L. F. (2006). Developing collaborative skills early in the CS curriculum in a laboratory environment. ACM SIGCSE Bulletin, 38(1), 138–142.
Meisalo, V., Suhonen, J., Sutinen, E., & Torvinen, S. (2002). Formative evaluation scheme for a web-based course design (pp. 130–134). Proceedings of the 7thITiCSE, ACM, University of Aarhus, Denmark.
Moen, R., & Norman, C. (2010). Evolution of the PDCA Cycle, pkpinc.com/files/NA01MoenNormanFullpaper.pdf. Accessed 05 Jul 2013
Mohorovicic, S., & Strcic, V. (2011). An overview of computer programming teaching methods (pp. 47–52). Proceedings of Central European Conference on Information and Intelligent Systems, CECIIS, Croatia.
Oliver, B. (2010). Final report teaching fellowship: benchmarking partnerships for graduate employability, Australian Learning and Teaching Council, http://tls.vu.edu.au/portal/site/design/resources/Benchmarking%20Partnerships%20for%20Graduate%20Employability.pdf. Accessed Jul 2013.
Papp-Varga, Z., Szlávi, P., & Zsakó, L. (2008). ICT teaching methods – Programming languages. Annales Mathematicae et Informaticae, 35(1), 163–172.
Pashler, H., McDaniel, M., & Bjork, R. (2008). Learning styles concepts and evidence. Psychological Science in the Public Interest, 9(3), 105–119.
Razvi, S., Trevor-Roper, S., Goodliffe, T., Al-Habsi, F. & Al-Rawahi, A. (2012). Evolution of OAAA strategic planning: using ADRI as an analytical tool to review its activities and strategic planning. Proceedings of Seventh Annual International Conference on Strategic Planning for Quality Assurance and Accreditation of Universities and Educational Arab Institutions, Cairo.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: a review and discussion. Computer Science Education, 13(2), 137–172.
Schmeck, R. R. (1988). Learning strategies and learning styles (1st ed.). New York: Springer.
Shuhidan, S.M. (2012). Probing the minds of novice programmers through guided learning, PhD thesis, retrieved July 2013, RMIT University: Australia.
Sykes, E. R. (2007). Determining the effectiveness of the 3D Alice programming environment at the computer science I level. Journal of Educational Computing Research, 36(2), 223–244.
Tavares, J., Brzezinski, I., Huet, I., Cabreal, A., & Neri, D. (2001). Having coffee with professors and students to talk about higher education pedagogy and academic success. Proceedings of the 24th International HERDSA conference: Newcastle.
Ten-Berge, T., & Van-Henewijk, R. (1999). Procedural and declarative knowledge: an evolutionary perspective. Theory and Psychology, 5(5), 605–624.
Thevathayan C., & Hamilton M. (2015). Supporting diverse novice programming cohorts through flexible and incremental visual constructivist pathways (pp. 296–301). Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, ACM.
Thompson, E., Luxton-Reilly, A., Whalley, J.L., Hu, M., & Robbins, P. (2008). Bloom’s Taxonomy for CS Assessment (pp. 155–161). Proceedings of the tenth ACE2008, ACM: Wollongong.
Tirronen, V., & Isomottonen, V. (2011). Making teaching of programming learning-oriented and learner-directed (pp. 60–65). Proceedings of the Koli calling, ACM: Koli.
Vihavainen, A., Paksula, M., & Luukkainen, M. (2011). Extreme apprenticeship method in teaching programming for beginners (pp. 93–98). Proceedings of the 42nd ACM technical symposium on Computer science education, SIGCSE ’11, ACM: New York.
Wang, C.X., Dong, L.L., Li, C.H., Zhang, W.Q., & He, J. (2012). The reform of programming teaching based on constructivism. In W Hu Edition: Advances in electric and electronics (pp. 425–431), Springer-Verlag.
Webster, M. (1994). Overview of programming and problem solving. Merriam-Webster’s Collegiate Dictionary, 10th Edn, computerscience.jbpub.com/vbnet/pdfs/mcmillan01.pdf, Accessed 15 Jul 2013.
Wiedenbeck, S., LaBelle, D. & Kain, V.N.R. (2004). Factors affecting course outcomes in introductory programming (pp. 97–110). Proceedings of 16th Workshop of the Psychology of Programming Interest Group. Carlow: Ireland.
Wilson, J.D., Hoskin, N. & Nosek, J.T. (1993) The benefits of collaboration for student programmers (pp. 160–164). Proceedings of the 24th SIGCSE Technical Symposium on Computer Science Education, ACM, Indianapolis.
Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17–22.
Woodhouse, D. (2003). Quality improvement through quality audit. Quality in Higher Education, 9(2), 133–139.
Wu, C. C., Lin, J. M. C., & Lin, K. Y. (1999). A content analysis of programming examples in high school computer textbooks in Taiwan. Journal of Computers in Mathematics and Science Teaching, 18(3), 225–244.
Yadin, A. (2011). Reducing the dropout rates in an introductory programming course. ACM Inroads, 2(4), 71–76.
Author information
Authors and Affiliations
Corresponding author
Appendix 1
Rights and permissions
About this article
Cite this article
Malik, S.I., Coldwell-Neilson, J. A model for teaching an introductory programming course using ADRI. Educ Inf Technol 22, 1089–1120 (2017). https://doi.org/10.1007/s10639-016-9474-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10639-016-9474-0