ABSTRACT
While prior work has investigated many aspects of programming problem solving, the role of self-regulation in problem solving success has received little attention. In this paper we contribute a framework for reasoning about self-regulation in programming problem solving. We then use this framework to investigate how 37 novice programmers of varying experience used self-regulation during a sequence of programming problems. We analyzed the extent to which novices engaged in five kinds of self-regulation during their problem solving, how this self-regulation varied between students enrolled in CS1 and CS2, and how self-regulation played a role in structuring problem solving. We then investigated the relationship between self-regulation and programming errors. Our results indicate that while most novices engage in self-regulation to navigate and inform their problem solving efforts, these self-regulation efforts are only effective when accompanied by programming knowledge adequate to succeed at solving a given problem, and only some types of self-regulation appeared related to errors. We discuss the implications of these findings on problem solving pedagogy in computing education.
- Askar, P. and Davenport, D. 2009. An investigation of factors related to self-efficacy for Java programming among engineering students. TOJET: The Turkish Online Journal of Educational Technology 8. http://eric.ed.gov/?id=ED503900.Google Scholar
- Beaubouef, T., and Mason, J. 2005. Why the high attrition rate for computer science students: some thoughts and observations. ACM SIGCSE Bulletin, 37(2), 103--106. Google ScholarDigital Library
- Bergin, S, Reilly, R and Traynor, D. 2005. Examining the Role of Self-Regulated Learning on Introductory Programming Performance. Proceedings of the First International Workshop on Computing Education Research, 81--86. Google ScholarDigital Library
- Bielaczyc, K., Pirolli, P. L., and Brown, A. L. 1995. Training in self-explanation and self-regulation strategies: Investigating the effects of knowledge acquisition activities on problem solving. Cognition and instruction, 13(2), 221--252.Google Scholar
- Cao, J., Fleming, S., Burnett, M. M., and Scaffidi, C. 2015. Idea Garden: Situated support for problem solving by end-user programmers. Interacting with Computers 27(6), 640--660.Google ScholarCross Ref
- Chi, M. T. 1997. Quantifying qualitative analyses of verbal data: A practical guide. The journal of the learning sciences, 6(3), 271--315.Google Scholar
- Clements, D. H., and Gullo, D. F. 1984. Effects of computer programming on young children's cognition. Journal of Educational Psychology, 76(6), 1051.Google ScholarCross Ref
- Crippen, K. J., and Earl, B.L. 2007 The impact of web-based worked examples and self-explanation on performance, problem solving, and self-efficacy. Computers & Education 49, no. 3: 809--21. Google ScholarDigital Library
- Eteläpelto, A. 1993. Metacognition and the expertise of computer program comprehension. Scandinavian Journal of Educational Research, 37(3), 243--254.Google ScholarCross Ref
- Fahim, M, and Fakhri Alamdari, E. Maximizing Learners' 2014. Metacognitive awareness in listening through metacognitive instruction: An empirical study. International Journal of Research Studies in Education 3, no.3.Google ScholarCross Ref
- Falkner, K, Vivian, R and Falkner, N.J.G. 2014 Identifying Computer Science Self-Regulated Learning Strategies. Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education, 291--96. Google ScholarDigital Library
- Falkner, K, Szabo, C, Vivian, R and Falkner, N.J.G. 2015. Evolution of Software Development Strategies. Proceedings of the 37th International Conference on Software Engineering - Volume 2, 243--52. Google ScholarDigital Library
- Greeno, J.G. and Hall, R.P. 1997. Practicing representation. Phi Delta Kappan 78(5), 361.Google Scholar
- Hoc, J, and Nguyen-Xuan, A. 1990. Language semantics, mental models and analogy. Psychology of programming, 10, 139--156.Google Scholar
- Ko, A.J., Myers, B. and Aung, H.H. 2004. Six learning barriers in end-user programming systems. Proceedings of the IEEE Symposium on Visual Languages and Human Centric Computing, 199--206. Google ScholarDigital Library
- Koriat, A. 2016. Processes in Self-monitoring and Self-regulation. The Wiley Blackwell Handbook of Judgment and Decision Making, 2 Volume Set.Google Scholar
- Li, P. L., Ko, A. J., & Zhu, J. 2015. What makes a great software engineer?. International Conference on Software Engineering-Volume 1 Google ScholarDigital Library
- Linn, M. C., and Clancy, M. J. 1992. Can experts' explanations help students develop program design skills? International Journal of Man-Machine Studies, 36(4), 511--551. Google ScholarDigital Library
- Loksa, D., Ko, A. J., Jernigan, W., Oleson, A., Mendez, C. J., and Burnett, M. M. Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance. ACM Conference on Human Factors in Computing (CHI), to appear. Google ScholarDigital Library
- Margulieux, L.E., Guzdial, M., and Catrambone, R. 2012. Subgoal-labeled instructional material improves performance and transfer in learning to develop mobile applications. ACM International Conference on Computing Education Research, 71--78. Google ScholarDigital Library
- Michelene T. H. Chi, M. B. 1989. Self-Explanations: How Students Study and Use Examples in Learning to Solve Problems. Cognitive Science 13(2), 145--82.Google ScholarCross Ref
- Morrison, B. B., Margulieux, L. E., and Guzdial, M. 2015. Subgoals, context, and worked examples in learning computing problem solving. ACM International Conference on Computing Education Research, 21--29. Google ScholarDigital Library
- Morrison, B.B., Margulieux, L.E., Ericson, B., Guzdial M. 2016. Subgoals help Students Solve Parsons Problems. ACM Technical Symposium on Computing Science Education, 42--47. Google ScholarDigital Library
- Pea, R. D., and Kurland, D. M. 1984. On the cognitive effects of learning computer programming. New ideas in psychology, 2(2), 137--168.Google Scholar
- Pennington, N. and Grabowski, B., 1990. The tasks of programming. Psychology of programming, 307, 45--62.Google Scholar
- Pintrich, P. R., Wolters, C. A., and Baxter, G. P. 2000. Assessing metacognition and self-regulated learning. In G. Schraw, & J. C. Impara (Eds.), Issues in the measurement of metacognition. NE: University of Nebraska-Lincoln.Google Scholar
- Ido, R., Holmes, N. G., Day, J., and Bonn, D. 2012. Evaluating Metacognitive Scaffolding in Guided Invention Activities. Instructional Science 40(4). 691--710.Google ScholarCross Ref
- Sawyer, K. R. 2006. Introduction: The new science of learning. In R. K. Sawyer (Ed.) The Cambridge handbook of learning sciences (1--18). New York: Cambridge University Press.Google Scholar
- Soloway, E., and Spohrer, J. C. 2013. Studying the novice programmer. Psychology Press.Google Scholar
- Soloway, E. 1986. Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850--858. Google ScholarDigital Library
- Winne, P.H. and Perry, N.E. 2000. Measuring self-regulated learning. In P. Pintrich, M. Boekaerts, & M. Seidner (Eds.), Handbook of self-regulation. 531--566. Orlando, FL: Academic Press.Google Scholar
Index Terms
- The Role of Self-Regulation in Programming Problem Solving Process and Success
Recommendations
Metacognition and Self-Regulation in Programming Education: Theories and Exemplars of Use
Metacognition and self-regulation are important skills for successful learning and have been discussed and researched extensively in the general education literature for several decades. More recently, there has been growing interest in understanding how ...
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, ...
Teaching programming and problem solving to CS2 students using think-alouds
SIGCSE '09: Proceedings of the 40th ACM technical symposium on Computer science educationMany studies have shown that students often face difficulty in applying programming concepts to design a program that solves a given task. To impart better problem solving skills a number of pedagogical approaches have been presented in the literature. ...
Comments