Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2978192.2978231acmconferencesArticle/Chapter ViewAbstractPublication PagesiteConference Proceedingsconference-collections
research-article

Learning by Taking Apart: Deconstructing Code by Reading, Tracing, and Debugging

Published: 28 September 2016 Publication History

Abstract

This theoretical paper discusses several lines of research which support the premise that people learning to program can do so more effectively and efficiently if they spend as much time deconstructing code (reading, tracing, and debugging) as they do writing code. This work builds upon research in computing education on reading and tracing code, and in education psychology on learning from worked-examples and errors. A graphical model is included of cognitive science principles that scaffold the process of learning to solve problems. A sample learning progression is provided for teachers and instructional designers. The progression begins with low-stakes deconstructionist activities such as exploring, identifying, comparing, and debugging, before activities that require writing code. Deconstructionism is discussed as a pedagogy and learning theory complementary to Seymour Papert's Constructionism.

References

[1]
Abelson, H. 2009. App Inventor for Android. Google Research Blog.
[2]
Adams, D.M., McLaren, B.M., Durkin, K., Mayer, R.E., Rittle-Johnson, B., Isotani, S. and van Velsen, M. 2014. Using erroneous examples to improve mathematics learning with a web-based tutoring system. Computers in Human Behavior. 36, (2014), 401--411.
[3]
Barker, L. and Hovey, C.L. 2014. Results of a Large-Scale, Multi-Institutional Study of Undergraduate Retention in Computing. Frontiers in Education (2014), 1--8.
[4]
Bell, T., Alexander, J., Freeman, I. and Grimley, M. 2009. Computer Science Unplugged: school students doing real computing without computers. The New Zealand Journal of Applied Computing and Information Technology. 13, 1 (2009), 20--29.
[5]
Booth, J.L., Lange, K.E., Koedinger, K.R. and Newton, K.J. 2013. Using example problems to improve student learning in algebra: Differentiating between correct and incorrect examples. Learning and Instruction. 25, (2013), 24--34.
[6]
Booth, J.L., McGinn, K.M., Barbieri, C., Begolli, K.N., Chang, B., Miller-Cotto, D., Young, L.K. and Davenport, J.L. 2016. Evidence for Cognitive Science Principles that Impact Learning in Mathematics. Cognitive Science and Mathematics (in press).
[7]
Booth, J.L., McGinn, K.M., Young, L.K. and Barbieri, C. 2015. Simple Practice Doesn't Always Make Perfect: Evidence From the Worked Example Effect. Policy Insights from the Behavioral and Brain Sciences. 2, 1 (2015), 24--32.
[8]
du Boulay, B., O'Shea, T. and Monk, J. 1981. The black box inside the glass box: presenting computing concepts to novices. International Journal of Man-Machine Studies. 14, (1981), 237--249.
[9]
Braught, G., Wahls, T. and Eby, L.M. 2011. The Case for Pair Programming in the Computer Science Classroom. ACM Transactions on Computing Education.
[10]
Brennan, K., Balch, C. and Chung, M. Creative Computing. Harvard Graduate School of Education.
[11]
Bruner, J. 1966. Toward a theory of instruction. Harvard University Press.
[12]
Buechley, L. 2006. A construction kit for electronic textiles. 10th IEEE International Symposium on Wearable Computers (2006), 83--90.
[13]
Caspersen, M.E. and Bennedsen, J. 2007. Instructional Design of a Programming Course -- A Learning Theoretic Approach. (2007), 111--122.
[14]
Catrambone, R. 1998. The subgoal learning model: Creating better examples so that students can solve novel problems. Journal of Experimental Psychology: General. 127, 4 (1998), 355--376.
[15]
Chi, M.T.H., Bassok, M., Lewis, M.W., Reimann, P. and Glaser, R. 1989. Self-Explanations: How students study and use examples in learning to solve problems. Cognitive Science. 13, (1989), 145--182.
[16]
Chi, M.T.H., De Leeuw, N., Chiu, M.-H. and Lavancher, C. 1994. Eliciting Self-Explanations Improves Understanding. Cognitive Science. 18, 3 (1994), 439--477.
[17]
Cross, J.H., Hendrix, T.D. and Barowski, L.A. 2011. Combining Dynamic Program Viewing and Testing in Early Computing Courses. Computer Software and Applications Conference IEEE 35th Annual (2011), 184--192.
[18]
csunplugged.org: http://csunplugged.org/.
[19]
Cuny, J. 2012. Transforming high school computing. ACM Inroads. 3, 2 (2012), 32.
[20]
DiSalvo, B., Yardi, S., Guzdial, M., McKlin, T., Meadows, C., Perry, K. and Bruckman, A. 2011. African American Males Constructing Computing Identity. Proceedings of the 2011 Annual Conference on Human Factors in Computing Systems - CHI '11. (2011), 2967--2970.
[21]
Fincher, S. and Petre, M. eds. 2004. Computer Science Education Research. Psychology Press.
[22]
Fitzgerald, S., Lewandowski, G., McCauley, R., Murphy, L., Simon, B., Thomas, L. and Zander, C. 2008. Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education.
[23]
Ginat, D. 2008. Learning from Wrong and Creative Algorithm Design. ACM SIGCSE Bulletin. 40, 1 (2008), 26--30.
[24]
Ginat, D. and Shmallo, R. 2013. Constructive Use of Errors in Teaching CS1. Proceeding of the 44th ACM technical symposium on Computer science education (SIGCSE 2013) (2013), 353--358.
[25]
Gray, S., Clair, C.S., James, R., Park, W. and Mead, J. 2007. Suggestions for Graduated Exposure to Programming Concepts Using Fading Worked Examples. Proceedings of the third International Workshop on Computing Education Research (ICER '07) (2007), 99--110.
[26]
Griffin, J., Kaplan, E. and Burke, Q. 2012. Debug-ems and Other Deconstruction Kits for STEM learning. Integrated STEM Education Conference (ISEC), IEEE 2nd (2012), 1--4.
[27]
Große, C.S. and Renkl, A. 2007. Finding and fixing errors in worked examples: Can this foster learning outcomes? Learning and Instruction. 17, 6 (Dec. 2007), 612--634.
[28]
Guzdial, M. 2015. Learner-Centered Design of Computing Education: Research on Computing for Everyone. Synthesis Lectures on Human-Centered Informatics. Morgan & Claypool. 1--165.
[29]
Harel, I.R. 1988. Software Design for Learning: Children's Construction of Meaning for Fractions and LOGO Programming (Doctoral Dissertation). MIT.
[30]
Hu, H. and Shepherd, T.D. 2013. Using POGIL to Help Students Learn to Program. ACM Transactions on Computing Education (TOCE). 13, 3 (2013).
[31]
Jenkins, T. 2002. On the Difficulty of Learning to Program. Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences. 4, (2002), 53--58.
[32]
Johnson, W.L. 1990. Understanding and debugging novice programs. Artificial Intelligence. 42, 1 (1990), 51--97.
[33]
Kafai, Y.B., Lee, E., Searle, K., Fields, D., Kaplan, E. and Lui, D. 2014. A crafts-oriented approach to computing in high school: Introducing computational concepts, practices, and perspectives with electronic textiles. ACM Transactions on Computing Education. 14, 1 (2014), 1--20.
[34]
Katz, A. and Shmallo, R. 2015. Improving Relational Data Modelling Through Learning From Errors. Proceedings of the IADIS Multi Conference of Computer Science and Information Systems (MCCSIS 2015), Volume: Theory and Practice in Modern Computing TPMC. (2015), 198--202.
[35]
Katz, I. and Anderson, J. 1987. Debugging: An Analysis of Bug-Location Strategies. Human-Computer Interaction. 3, 4 (1987), 351--399.
[36]
Kick, R. and Trees, F.P. 2015. AP CS Principles: Engaging, Challenging, and Rewarding. ACM Inroads. 6, 1 (2015), 42--45.
[37]
Klahr, D. and Carver, S.M. 1988. Cognitive objectives in a LOGO debugging curriculum: Instruction, learning, and transfer. Cognitive Psychology. 20, 3 (1988), 362--404.
[38]
Kussmaul, C. 2012. Process Oriented Guided Inquiry Learning (POGIL) for Computer Science. Proceedings of the 43rd ACM Technical Symposium on Computer Science Education (2012), 373--378.
[39]
Lahtinen, E., Ala-Mutka, K. and Järvinen, H.-M. 2005. A study of the difficulties of novice programmers. Proceedings of the 10th annual conference on Innovation and Technology in Computer Science Education. (2005), 14--18.
[40]
Lawrance, J., Bogart, C., Burnett, M., Bellamy, R., Rector, K. and Fleming, S.D. 2013. How programmers debug, revisited: An information foraging theory perspective. IEEE Transactions on Software Engineering. 39, 2 (2013), 197--215.
[41]
Lee, G.C. and Wu, J.C. 1999. Debug It: A debugging practicing system. Computers & Education. 32, 2 (1999), 165--179.
[42]
Lee, M.J. 2015. Teaching and Engaging with Debugging Puzzles (Doctoral Dissertation). University of Washington.
[43]
Lieberman, H. 1997. The Debugging Scandal and What to Do About It. Communications of the ACM. 40, 4 (1997), 26--78.
[44]
Lister, R., Adams, E.S., Fitzgerald, S., Fone, W., Hamer, J., Lindholm, M., McCartney, R., Moström, J.E., Sanders, K., Seppälä, O., Simon, B. and Thomas, L. 2004. A multi-national study of reading and tracing skills in novice programmers. ACM SIGCSE Bulletin. 36, 4 (2004), 119.
[45]
Lister, R., Fidge, C. and Teague, D. 2009. Further evidence of a relationship between explaining, tracing and writing skills in introductory programming. ACM SIGCSE Bulletin. 41, (2009), 161.
[46]
Lopez, M., Whalley, J., Robbins, P. and Lister, R. 2008. Relationships between reading, tracing and writing skills in introductory programming. Proceedings of the fourth International Workshop on Computing Education Research (ICER '08) (2008), 101--112.
[47]
Maloney, J., Resnick, M., Rusk, N., Silverman, B. and Eastmond, E. 2010. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE). 10, 4 (2010), 16.
[48]
Margolis, J., Estrella, R., Goode, J. and Nao, K. 2008. Stuck in the shallow end: Education, race, and computing. The MIT Press.
[49]
Margolis, J. and Fisher, A. 2003. Unlocking the clubhouse: Women in computing. The MIT press.
[50]
Margulieux, L.E., Catrambone, R. and Guzdial, M. 2016. Employing subgoals in computer programming education. Computer Science Education. (2016), 1--24.
[51]
Mazur, E. 1997. Peer instruction. Prentice-Hall.
[52]
McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L. and Zander, C. 2008. Debugging: a review of the literature from an educational perspective. Computer Science Education. 18, April 2015 (2008), 67--92.
[53]
McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Ben-David Kolikant, Y., Laxer, C., Thomas, L., Utting, I. and Wilusz, T. 2001. A Multi-National, Multi-Institutional Study of Assessment of Programming Skills of First-Year CS Students. SIGCSE Bulletin. 33, 4 (2001), 125--180.
[54]
McLaren, B.M., Adams, D.M. and Mayer, R.E. 2015. Delayed Learning Effects with Erroneous Examples: A Study of Learning Decimals with a Web-Based Tutor. International Journal of Artificial Intelligence in Education. 25, 4 (2015), 520--542.
[55]
Moog, R.S. and Spencer, J.N. 2008. Process-Oriented Guided Inquiry Learning (POGIL). Oxford University Press.
[56]
Morrison, B.B., Margulieux, L.E. and Street, C. 2015. Subgoals, Context, and Worked Examples in Learning Computing Problem Solving. Proceedings of the eleventh International Conference on Computing Education Research (ICER '15) (2015), 21--29.
[57]
Ohlsson, S. 1996. Learning from error and the design of task environments. International Journal of Educational Research. 25, 5 (1996), 419--448.
[58]
Paas, F., Renkl, A. and Sweller, J. 2004. Cognitive Load Theory: Instructional Implications of the Interaction between Information Structures and Cognitive Architecture. Instructional Science. 32, 1 (2004), 1--8.
[59]
Papert, S. 1980. Mindstorms: children, computers, and powerful ideas. Basic Books, Inc.
[60]
Patitsas, E., Craig, M. and Easterbrook, S. 2013. Comparing and Contrasting Different Algorithms Leads to Increased Student Learning. Proceedings of the 9th International Conference on Computing Education Research (ICER '13). (2013), 145--152.
[61]
Pirolli, P. 1993. Effects of Examples and Their Explanations in a Lesson on Recursion: A Production System Analysis. Cognition and Instruction. 8, 3 (1993), 207--259.
[62]
Pirolli, P. and Recker, M. 1994. Learning Strategies and Transfer in the Domain of Programming. Cognition and Instruction. 12, 3 (1994), 235--275.
[63]
Porter, L., Bailey-Lee, C. and Simon, B. 2013. Halving Fail Rates using Peer Instruction?: A Study of Four Computer Science Courses. Proceeding of the 44th technical symposium on Computer science education (SIGCSE '13) (2013), 177--182.
[64]
Richards, B. 2000. Bugs as Features: Teaching Network Protocols Through Debugging. ACM SIGCSE Bulletin. (2000), 256--259.
[65]
Rittle-Johnson, B. and Star, J.R. 2009. Compared with what? The effects of different comparisons on conceptual knowledge and procedural flexibility for equation solving. Journal of Educational Psychology. 101, 3 (2009), 529--544.
[66]
Schworm, S. and Renkl, A. 2006. Computer-supported example-based learning: When instructional explanations reduce self-explanations. Computers and Education. 46, 4 (2006), 426--445.
[67]
Simon, B., Kohanfars, M., Lee, J., Tamayo, K. and Cutts, Q. 2010. Experience report: peer instruction in introductory computing. SIGCSE '10: Proceedings of the 41st ACM technical symposium on Computer science education (2010).
[68]
Skudder, B. and Luxton-Reilly, A. 2014. Worked Examples in Computer Science. Sixteenth Australasian Computing Education Conference (2014), 59--64.
[69]
Soloway, E. and Spohrer, J.C. eds. 1989. Studying the novice programmer. L. Erlbaum Associates.
[70]
Sorva, J. 2013. Notional machines and introductory programming education. ACM Transactions on Computing Education. 13, 2 (2013), 1--31.
[71]
Sorva, J., Karavirta, V. and Malmi, L. 2013. A review of generic program visualization systems for introductory programming education. Transactions on Computing Education. 13, 4 (2013).
[72]
Sweller, J. 1988. Cognitive Load During Problem Solving: Effects on Learning. Cognitive Science. 12, 2 (1988), 257--285.
[73]
Sweller, J. and Cooper, G.A. 1985. The Use of Worked Examples as a Substitute for Problem Solving in Learning Algebra. Cognition and Instruction. 2, 1 (1985), 59--89.
[74]
Vygotsky, L.S. 1978. Mind in society: the development of higher psychological processes. Harvard University Press.
[75]
Whalley, J.L., Lister, R., Thompson, E., Clear, T., Robbins, P., Kumar, P.K. and Prasad, C. 2006. An Australasian Study of Reading and Comprehension Skills in Novice Programmers, using the Bloom and SOLO Taxonomies. Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (2006), 243--252.
[76]
Wood, D., Bruner, J.S. and Ross, G. 1976. The role of tutoring in problem-solving. Journal of Child Psychology and Psychiatry. 17, 2 (1976), 89--100.
[77]
Yoon, I., Kang, E. and Kwon, O. 2014. DeBugger Game: Mobile Virtual Lab for Introductory Computer Programming Courses. Proceedings of the 2014 American Society for Engineering Education Zone IV Conference (2014).

Cited By

View all
  • (2024)Characterizing Teacher Support of Debugging with Physical Computing: Debugging Pedagogies in PracticeACM Transactions on Computing Education10.1145/367761224:4(1-28)Online publication date: 9-Sep-2024
  • (2024)A Case Study of Taking AP Computer Science Principles: A Student's PerspectiveProceedings of the 55th ACM Technical Symposium on Computer Science Education V. 210.1145/3626253.3635490(1588-1589)Online publication date: 14-Mar-2024
  • (2023)Comparing Code Explanations Created by Students and Large Language ModelsProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588785(124-130)Online publication date: 29-Jun-2023
  • Show More Cited By

Index Terms

  1. Learning by Taking Apart: Deconstructing Code by Reading, Tracing, and Debugging

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SIGITE '16: Proceedings of the 17th Annual Conference on Information Technology Education
    September 2016
    188 pages
    ISBN:9781450344524
    DOI:10.1145/2978192
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 28 September 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. constructionism
    2. cs0
    3. cs1
    4. debugging
    5. deconstructionism
    6. worked examples

    Qualifiers

    • Research-article

    Conference

    SIGITE/RIIT 2016
    Sponsor:

    Acceptance Rates

    SIGITE '16 Paper Acceptance Rate 26 of 67 submissions, 39%;
    Overall Acceptance Rate 176 of 429 submissions, 41%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)76
    • Downloads (Last 6 weeks)7
    Reflects downloads up to 26 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Characterizing Teacher Support of Debugging with Physical Computing: Debugging Pedagogies in PracticeACM Transactions on Computing Education10.1145/367761224:4(1-28)Online publication date: 9-Sep-2024
    • (2024)A Case Study of Taking AP Computer Science Principles: A Student's PerspectiveProceedings of the 55th ACM Technical Symposium on Computer Science Education V. 210.1145/3626253.3635490(1588-1589)Online publication date: 14-Mar-2024
    • (2023)Comparing Code Explanations Created by Students and Large Language ModelsProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588785(124-130)Online publication date: 29-Jun-2023
    • (2023)Experiences from Using Code Explanations Generated by Large Language Models in a Web Software Development E-BookProceedings of the 54th ACM Technical Symposium on Computer Science Education V. 110.1145/3545945.3569785(931-937)Online publication date: 2-Mar-2023
    • (2023)Logistics, Affordances, and Evaluation of Build ProgrammingProceedings of the 54th ACM Technical Symposium on Computer Science Education V. 110.1145/3545945.3569756(179-185)Online publication date: 2-Mar-2023
    • (2022)Debugging behaviors of early childhood teacher candidates with or without scaffoldingInternational Journal of Educational Technology in Higher Education10.1186/s41239-022-00319-919:1Online publication date: 10-Mar-2022
    • (2022)The effect of play and worked examples on first and third graders' creating and debugging of programming algorithmsComputational Thinking in PreK-510.1145/3507951.3519284(19-29)Online publication date: 15-Jan-2022
    • (2022)The Role of Learning Theory in Child-Computer Interaction - A Semi-Systematic Literature ReviewProceedings of the 21st Annual ACM Interaction Design and Children Conference10.1145/3501712.3529728(50-68)Online publication date: 27-Jun-2022
    • (2022)Developing computational thinking collaboratively: the nexus of computational practices within small groupsComputer Science Education10.1080/08993408.2022.203948833:3(342-374)Online publication date: 3-Apr-2022
    • (2022)Participatory design and participatory debugging: Listening to students to improve computational thinking by creating gamesInternational Journal of Child-Computer Interaction10.1016/j.ijcci.2022.10052534(100525)Online publication date: Dec-2022
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media