ABSTRACT
One way to teach programming problem solving is to teach explicit, step-by-step strategies. While prior work has shown these to be effective in controlled settings, there has been little work investigating their efficacy in classrooms. We conducted a 5-week case study with 17 students aged 15-18, investigating students' sentiments toward two strategies for debugging and code reuse, students' use of scaffolding to execute these strategies, and associations between students' strategy use and their success at independently writing programs in class. We found that while students reported the strategies to be valuable, many had trouble regulating their choice of strategies, defaulting to ineffective trial and error, even when they knew systematic strategies would be more effective. Students that embraced the debugging strategy completed more features in a game development project, but this association was mediated by other factors, such as reliance on help, strategy self-efficacy, and mastery of the programming language used in the class. These results suggest that teaching of strategies may require more explicit instruction on strategy selection and self-regulation.
- Roger Azevedo and Jennifer G Cromley. 2004. Does training on self-regulated learning facilitate students' learning with hypermedia? Journal of Educational Psychology, Vol. 96, 3 (2004), 523.Google ScholarCross Ref
- Roy F. Baumeister and Kathleen D. Vohs. 2003. Self-regulation and the executive function of the self. Handbook of self and identity, Vol. 1 (2003), 197--217.Google Scholar
- Suresh K. Bhavnani, Frederick A. Peck, and Frederick Reif. 2008. Strategy-Based Instruction: Lessons Learned in Teaching the Effective and Efficient Use of Computer Applications. ACM Transactions on Computer-Human Interaction, Vol. 15, 1, Article 2 (May 2008), bibinfonumpages43 pages. Google ScholarDigital Library
- Alan F. Blackwell. 2002. First steps in programming: A rationale for attention investment models. In IEEE Symposium on Visual Languages and Human-Centric Computing. 2. Google ScholarDigital Library
- Ryan Chmiel and Michael C. Loui. 2004. Debugging: From Novice to Expert. In ACM SIGCSE Technical Symposium on Computer Science Education. 17--21. Google ScholarDigital Library
- K Anders Ericsson, Ralf T Krampe, and Clemens Tesch-Römer. 1993. The role of deliberate practice in the acquisition of expert performance. Psychological review, Vol. 100, 3 (1993), 363.Google Scholar
- Katrina Falkner, Rebecca Vivian, and Nickolas JG Falkner. 2014. Identifying computer science self-regulated learning strategies. In Proceedings of the 2014 conference on Innovation & technology in computer science education. ACM, New York, NY, 291--296. Google ScholarDigital Library
- Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2018. How to design programs: an introduction to programming and computing .MIT Press, Cambridge, MA. Google ScholarDigital Library
- David Hammer and Leema K Berland. 2014. Confusing claims for data: A critique of common practices for presenting qualitative research on learning. Journal of the Learning Sciences, Vol. 23, 1 (2014), 37--46.Google ScholarCross Ref
- Matthias Hauswirth and Andrea Adamoli. 2017. Metacognitive calibration when learning to program. In Proceedings of the 17th Koli Calling Conference on Computing Education Research. 50--59. Google ScholarDigital Library
- Ada S Kim and Amy J Ko. 2017. A pedagogical analysis of online coding tutorials. In ACM SIGCSE Technical Symposium on Computer Science Education. 321--326. Google ScholarDigital Library
- Amy J Ko, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scaffidi, Joseph Lawrance, Henry Lieberman, Brad Myers, et almbox. 2011. The state of the art in end-user software engineering. Comput. Surveys, Vol. 43, 3 (2011), 21. Google ScholarDigital Library
- Andrew J Ko, Brad A Myers, and Htet Htet Aung. 2004. Six learning barriers in end-user programming systems. In IEEE Symposium on Visual Languages and Human-Centric Computing. 199--206. Google ScholarDigital Library
- Thomas D LaToza, Maryam Arab, Dastyni Loksa, and Amy J. Ko. 2018. Explicit Programming Strategies. In review (2018).Google Scholar
- Raymond Lister, Elizabeth S. Adams, Sue Fitzgerald, William Fone, John Hamer, Morten Lindholm, Robert McCartney, Jan Erik Moström, Kate Sanders, Otto Sepp"al"a, Beth Simon, and Lynda Thomas. 2004. A Multi-national Study of Reading and Tracing Skills in Novice Programmers. SIGCSE Bulletin, Vol. 36, 4 (June 2004), 119--150. Google ScholarDigital Library
- Dastyni Loksa and Amy J Ko. 2016. The role of self-regulation in programming problem solving process and success. In ACM International Computing Education Research Conference. 83--91. Google ScholarDigital Library
- Dastyni Loksa, Amy J Ko, Will Jernigan, Alannah Oleson, Christopher J Mendez, and Margaret M Burnett. 2016. Programming, problem solving, and self-awareness: effects of explicit guidance. In ACM SIGCHI Conference on Human Factors in Computing Systems . 1449--1461. Google ScholarDigital Library
- Greg L Nelson, Benjamin Xie, and Amy J Ko. 2017. Comprehension First: Evaluating a Novel Pedagogy and Tutoring System for Program Tracing in CS1. In ACM International Computing Education Research Conference. 2--11. Google ScholarDigital Library
- Devon H. O'Dell. 2017. The Debugging Mindset. ACM Queue, Vol. 15, 1, Article 50 (Feb. 2017), bibinfonumpages20 pages. Google ScholarDigital Library
- James Prather, Raymond Pettit, Kayla McMurry, Alani Peters, John Homer, and Maxine Cohen. 2018. Metacognitive Difficulties Faced by Novice Programmers in Automated Assessment Tools. In Proceedings of the 2018 ACM Conference on International Computing Education Research. 41--50. Google ScholarDigital Library
- Yizhou Qian and James Lehman. 2017. Students' Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Transactions on Computing Education, Vol. 18, 1, Article 1 (Oct. 2017), bibinfonumpages24 pages. Google ScholarDigital Library
- Emmanuel Schanzer, Kathi Fisler, and Shriram Krishnamurthi. 2018. Assessing Bootstrap: Algebra Students on Scaffolded and Unscaffolded Word Problems. In ACM Technical Symposium on Computer Science Education. 8--13. Google ScholarDigital Library
- Benjamin Xie, Greg L. Nelson, and Amy J. Ko. 2018. An Explicit Strategy to Scaffold Novice Program Tracing. In ACM Technical Symposium on Computer Science Education. 344--349. Google ScholarDigital Library
Index Terms
- Teaching Explicit Programming Strategies to Adolescents
Recommendations
An Explicit Strategy to Scaffold Novice Program Tracing
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationWe propose and evaluate a lightweight strategy for tracing code that can be efficiently taught to novice programmers, building off of recent findings on "sketching" when tracing. This strategy helps novices apply the syntactic and semantic knowledge ...
Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review
Efforts to improve computer science education are underway, and teachers of computer science are challenged in introductory programming courses to help learners develop their understanding of programming and computer science. Identifying and addressing ...
Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance
CHI '16: Proceedings of the 2016 CHI Conference on Human Factors in Computing SystemsMore people are learning to code than ever, but most learning opportunities do not explicitly teach the problem solving skills necessary to succeed at open-ended programming problems. In this paper, we present a new approach to impart these skills, ...
Comments