Skip to main content
Log in

A model for teaching an introductory programming course using ADRI

  • Published:
Education and Information Technologies Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2

Similar content being viewed by others

References

  • Abuid, B.A. (2010). ADRISelf 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Boud, D., Cohen, R., & Sampson, J. (1999). Peer learning and assessment. Assessment & Evaluation in Higher Education, 24(4), 413–426.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Guzdial, M., & Soloway, E. (2002). Log on education: teaching the Nintendo generation to program. Communications of the ACM, 45(4), 17–21.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Pashler, H., McDaniel, M., & Bjork, R. (2008). Learning styles concepts and evidence. Psychological Science in the Public Interest, 9(3), 105–119.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Schmeck, R. R. (1988). Learning strategies and learning styles (1st ed.). New York: Springer.

    Book  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Woodhouse, D. (2003). Quality improvement through quality audit. Quality in Higher Education, 9(2), 133–139.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Yadin, A. (2011). Reducing the dropout rates in an introductory programming course. ACM Inroads, 2(4), 71–76.

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Sohail Iqbal Malik.

Appendix 1

Appendix 1

Table 11

Table 11 C++ program to demonstrate four stages of ADRI model

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10639-016-9474-0

Keywords

Navigation