ABSTRACT
Teaching introductory programming requires knowledge of both content and pedagogy. Pedagogy includes understanding the typical difficulties students face as they learn, as well as recognizing didactic strategies professors can use to help students to overcome these difficulties. Our research aims to improve the pedagogical knowledge instructors have to teach introductory programming courses, especially those new in this area. We conducted 16 semi-structured interviews with instructors who teach introductory programming courses and collected diaries filled by 110 students during their studies. Qualitative analysis of this data revealed a set of difficulties students faced when learning programming basics and a set of didactic strategies professors use to mitigate them. The results were reviewed by senior instructors in order to confirm them and by junior instructors to verify the importance of this material from their perspective. The main contribution of our paper is a set of difficulties faced by students learning programming, a classification of the most harmful challenges, and the didactic strategies usually used to teach and avoid them. Thus, we provide the basis for the pedagogical content necessary to junior and senior professors planning introductory programming courses.
- Essi Lahtinen; Kirsti Ala-Mutka and Hannu-Matti Jarvinen. 2005. A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, Vol. 37, 3 (Sept 2005), 14. Google ScholarDigital Library
- Kirsti M. Ala-Mutka. 2004. Problems in learning and teaching programming-a literature study for developing visualizations in the Codewitz-Minerva project. Codewitz Needs Analysis (2004), 1--13.Google Scholar
- Jens Bennedsen and Michael E. Caspersen. 2007. Failure rates in Introductory Programming. ACM SIGCSE Bulletin, Vol. 39, 2 (Jun 2007), 32--36. Google ScholarDigital Library
- Ilias Bergstrom and Alan F Blackwell. 2016. The practices of programming. 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2016), 190--198.Google ScholarCross Ref
- Yorah Bosse and Marco Aurelio Gerosa. 2016. Why is programming so difficult to learn? Patterns of Difficulties Related to Programming Learning. ACM SIGSOFT Software Engineering Notes, Vol. 41, 6 (2016), 1--6. Google ScholarDigital Library
- John D. Bransford; Ann L. Brown and Rodney R. Cocking. 2000. How People Learn: Brain, Mind, Experience, and School. Expanded Edition. National Academy Press (2000), 384.Google Scholar
- Jill Cao; Irwin Kwan; Rachel White; Scott D. Fleming; Margaret M. Burnett and Christopher Scaffidi. 2012. From barriers to learning in the idea garden: An empirical study. IEEE Symposium on Visual Languages and Human (2012), 59--66.Google Scholar
- Juliet Corbin and Anselm Strauss. 1990. Grounded theory research: Procedures, canons, and evaluative criteria. Qualitative Sociology, Vol. 13, 1 (1990), 3--21.Google ScholarCross Ref
- Juliet Corbin and Anselm Strauss. 2015. Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory 4rd ed.). SAGE Publications, Inc. 456 pages. https://us.sagepub.com/en-us/nam/basics-of-qualitative-research/book235578Google Scholar
- John W. Creswell. 2014. Research design: Qualitative, quantitative, and mixed methods approaches 4rd ed.). SAGE Publications, Inc. 304 pages.Google Scholar
- Juan C. Rodriguez del Pino; Enrique Rubio-Royo and Zenon J. Hernandez-Figueroa. 2012. A Virtual Programming Lab for Moodle with automatic assessment and anti-plagiarism features. Conf. e-Learning, e-Business, Entrep. Inf. Syst. e-Government (2012).Google Scholar
- Michelle Ichinco; Yoanna Dosouto and Caitlin Kelleher. 2014. A tool for authoring programs that automatically distribute feedback to novice programmers. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2014), 207--208.Google Scholar
- Matthew Fisher and Frank C. Keil. 2015. The Curse of Expertise: When More Knowledge Leads to Miscalibrated Explanatory Insight. Cognitive Science: A Multidisciplinary Journal, Vol. 40, 5 (Sep 2015), 1251--1269.Google Scholar
- Anabela Gomes and Antonio Mendes. 2007. Learning to program - difficulties and solutions. International Conference on Engineering Education - ICEE 2007 (2007). http://icee2007.dei.uc.pt/proceedings/papers/411.pdfGoogle Scholar
- Anabela Gomes and Antonio Mendes. 2015. A teacher's view about introductory programming teaching and learning: Difficulties, strategies and motivations. 2014 IEEE Frontiers in Education Conference (FIE) Proceedings (Feb 2015), 1--8.Google Scholar
- Sandy Garner; Patricia Haden and Anthony Robins. 2005. My program is correct but it doesn't run: A preliminary investigation of novice programmers' problems. ACE '05 Proceedings of the 7th Australasian conference on Computing education, Vol. 42 (2005), 173--180. Google ScholarDigital Library
- Michelle Ichinco and Caitlin Kelleher. 2017. Towards Block Code Examples that Help Young Novices Notice Critical Elements. 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2017), 335--336.Google ScholarCross Ref
- Tony Jenkins. 2002. On the Difficulty of Learning to Program. Language, Vol. 4 (2002), 53--58.Google Scholar
- Ian Drosos; Philip J.Guo and Chris Parnin. 2017. HappyFace: Identifying and predicting frustrating obstacles for learning programming at scale. Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC (2017), 171--179.Google Scholar
- Fadi P. Deek; Howard Kimmel and James A. McHugh. 1998. Pedagogical Changes in the Delivery of the First-Course in Computer Science: Problem Solving, Then Programming. Journal of Engineering Education, Vol. 87, 3 (July 1998), 313--320.Google Scholar
- Michael J. Lee. 2014. Gidget: An online debugging game for learning and engagement in computing education. 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2014), 193--194.Google ScholarCross Ref
- Mahmoud M. Mhashi and Ali M. Alakeel. 2013. Difficulties Facing Students in Learning Computer Programming Skills at Tabuk University. Recent Advances in Modern Educational Technologies (2013), 15--24. https://www.tib.eu/en/search/id/BLCP%3ACN084897952/Difficulties-Facing-Students-in-Learning-Computer/Google Scholar
- Iain Milne and Glenn Rowe. 2002. Difficulties in Learning and Teaching Programming - Views of Students and Tutors. Education and Information Technologies, Vol. 7, 1 (Mar 2002), 55--66. Google ScholarDigital Library
- Martinha Piteira and Carlos Costa. 2013. Learning Computer Programming: Study of difficulties in learning programming. Proceedings of the 2013 International Conference on Information Systems and Design of Communication - ISDOC '13 (2013), 75--80. Google ScholarDigital Library
- Edward F. Redish. 1996. Discipline-Specific Science Education and Educational Research: The Case of Physics. Journal of Applied Developmental Psychology, Vol. 21, 1 (1996), 85--96.Google ScholarCross Ref
- Alexander Repenning. 2011. Making programming more conversational. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (2011), 191--194.Google ScholarCross Ref
- Maria Hristova; Ananya Misra; Megan Rutter and Rebecca Mercuri. 2003. Identifying and correcting Java programming errors for introductory computer science students. ACM SIGCSE Bulletin, Vol. 35, 1 (2003), 19--23. Google ScholarDigital Library
- Pranay Kumar Sevella and Young Lee. 2013. Determining the barriers faced by novice programmers. International Journal of Software Engineering (IJSE), Vol. 4, 1 (2013), 10--22. https://vpn.utm.my/docview/1416417332?accountid=41678Google Scholar
- Lee S. Shulman. 1986. Those Who Understand: Knowledge Growth in Teaching. American Educational Researcher Association, Vol. 15, 2 (Feb 1986), 4--14. http://www.jstor.org/stable/1175860Google ScholarCross Ref
- Lee S. Shulman. 1987. Knowledge and Teaching: Foundations of the New Reform. Harvard Educational Review, Vol. 57, 1 (Apr 1987), 1--23. http://hepgjournals.org/doi/10.17763/haer.57.1.j463w79r56455411Google ScholarCross Ref
- David Weintrop. 2015. Blocks, text, and the space between: The role of representations in novice programming environments. 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Vol. 2015-Decem, C (2015), 301--302.Google ScholarCross Ref
Index Terms
- Pedagogical Content for Professors of Introductory Programming Courses
Recommendations
A Survey of Introductory Programming Courses in Ireland
ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science EducationBetween January and April of 2018, a comprehensive survey of introductory programming courses was undertaken across all sectors of Irish third-level institutions (universities, institutes of technology, and private colleges). The survey instrument was ...
A model for teaching an introductory programming course using ADRI
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 ...
Infusing Visual Programming and Interactive Learning to Teach an Introductory Programming Course with Positive Learning Outcomes: (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationA core challenge in introductory programming courses during the freshmen year is getting students to understand how a static textual representation (source code) maps to a highly dynamic process (program execution). Most students nowadays are visual ...
Comments