skip to main content
10.1145/3622780.3623644acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Teaching Programming with Graphics: Pitfalls and a Solution

Published:19 October 2023Publication History

ABSTRACT

Many introductory programming courses employ graphics libraries that promote engagement and enable fun visuals. However, student excitement over graphical outputs is not a guarantee of conceptual understanding of programming, and graphics may even distract from intended learning outcomes. Our contribution is twofold. First, we analyze a selection of existing graphics libraries designed for novice programmers. We consider how these libraries foster clean decomposition, direct students’ attention to key content, and manage complexity; we find shortcomings in these respects. These shortcomings involve the libraries’ support for global coordinates and external graphics, as well as their rich APIs; we argue that these features, although powerful, are also potential pitfalls in student learning. Second, we present the design of a new graphics library, PyTamaro, which avoids the pitfalls with a minimalist design that eschews coordinates; we also outline a pedagogical approach that builds on PyTamaro’s strengths and deliberate limitations. We briefly discuss PyTamaro’s trade-offs in comparison to coordinate-based libraries. The work reported here paves the way for future empirical evaluations of PyTamaro and associated teaching practices.

References

  1. Harold Abelson and Andrea diSessa. 1981. Turtle Geometry: The Computer as a Medium for Exploring Mathematics. MIT Press, Cambridge, MA, USA. isbn:978-0-262-01063-4 Google ScholarGoogle ScholarCross RefCross Ref
  2. Carl Alphonce and Phil Ventura. 2003. Using Graphics to Support the Teaching of Fundamental Object-Oriented Principles in CS1. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. ACM, Anaheim CA USA. 156–161. isbn:978-1-58113-751-4 https://doi.org/10.1145/949344.949391 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Aivar Annamaa. 2015. Introducing Thonny, a Python IDE for Learning Programming. In Proceedings of the 15th Koli Calling Conference on Computing Education Research - Koli Calling ’15. ACM Press, Koli, Finland. 117–121. isbn:978-1-4503-4020-5 https://doi.org/10.1145/2828959.2828969 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Ian Barland, Robert Bruce Findler, and Matthew Flatt. 2010. The Design of a Functional Image Library. In Workshop on Scheme and Functional Programming (SFP). Google ScholarGoogle Scholar
  5. Mordechai Ben-Ari. 2001. Constructivism in Computer Science Education. Journal of Computers in Mathematics and Science Teaching, 20, 1 (2001), 45–73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Karen Brennan and Mitchel Resnick. 2012. New Frameworks for Studying and Assessing the Development of Computational Thinking. In Proceedings of the 2012 Annual Meeting of the American Educational Research Association, Vancouver, Canada. 1, 25. Google ScholarGoogle Scholar
  7. Michael E. Caspersen and Jens Bennedsen. 2007. Instructional Design of a Programming Course: A Learning Theoretic Approach. In Proceedings of the Third International Workshop on Computing Education Research. ACM, Atlanta Georgia USA. 111–122. isbn:978-1-59593-841-1 https://doi.org/10.1145/1288580.1288595 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Luca Chiodini, Igor Moreno Santos, Andrea Gallidabino, Anya Tafliovich, André L. Santos, and Matthias Hauswirth. 2021. A Curated Inventory of Programming Language Misconceptions. In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1 (ITiCSE ’21). Association for Computing Machinery, New York, NY, USA. 380–386. isbn:978-1-4503-8214-4 https://doi.org/10.1145/3430665.3456343 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Keith Devlin. 2003. Why Universities Require Computer Science Students to Take Math. Commun. ACM, 46, 9 (2003), Sept., 36. issn:00010782 https://doi.org/10.1145/903893.903917 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Matthias Felleisen. 1991. On the Expressive Power of Programming Languages. Science of Computer Programming, 17, 1 (1991), Dec., 35–75. issn:0167-6423 https://doi.org/10.1016/0167-6423(91)90036-W Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2018. How to Design Programs, Second Edition: An Introduction to Programming and Computing. MIT Press. isbn:978-0-262-34412-8 Google ScholarGoogle Scholar
  12. Matthias Felleisen and Shriram Krishnamurthi. 2009. Why Computer Science Doesn’t Matter. Commun. ACM, 52, 7 (2009), July, 37–40. issn:0001-0782, 1557-7317 https://doi.org/10.1145/1538788.1538803 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Sally Fincher, Johan Jeuring, Craig S. Miller, Peter Donaldson, Benedict du Boulay, Matthias Hauswirth, Arto Hellas, Felienne Hermans, Colleen Lewis, Andreas Mühling, Janice L. Pearce, and Andrew Petersen. 2020. Notional Machines in Computing Education: The Education of Attention. In Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education (ITiCSE-WGR ’20). Association for Computing Machinery, New York, NY, USA. 21–50. isbn:978-1-4503-8293-9 https://doi.org/10.1145/3437800.3439202 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sigbjorn Finne and Simon Peyton Jones. 1995. Pictures: A Simple Structured Graphics Model. In Proceedings of the 1995 Glasgow Workshop on Functional Programming. https://doi.org/10.14236/ewic/FP1995.6 Google ScholarGoogle ScholarCross RefCross Ref
  15. Kathi Fisler, Shriram Krishnamurthi, and Preston Tunnell Wilson. 2017. Assessing and Teaching Scope, Mutation, and Aliasing in Upper-Level Undergraduates. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. ACM, Seattle Washington USA. 213–218. isbn:978-1-4503-4698-6 https://doi.org/10.1145/3017680.3017777 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Michael H. Goldwasser and David Letscher. 2009. A Graphics Package for the First Day and Beyond. ACM SIGCSE Bulletin, 41, 1 (2009), March, 206–210. issn:0097-8418 https://doi.org/10.1145/1539024.1508945 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Shuchi Grover and Satabdi Basu. 2017. Measuring Student Learning in Introductory Block-Based Programming: Examining Misconceptions of Loops, Variables, and Boolean Logic. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE ’17). Association for Computing Machinery, New York, NY, USA. 267–272. isbn:978-1-4503-4698-6 https://doi.org/10.1145/3017680.3017723 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Philip J. Guo. 2018. Non-Native English Speakers Learning Computer Programming: Barriers, Desires, and Design Opportunities. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems - CHI ’18. ACM Press, Montreal QC, Canada. 1–14. isbn:978-1-4503-5620-6 https://doi.org/10.1145/3173574.3173970 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Mark Guzdial. 2003. A Media Computation Course for Non-Majors. In Proceedings of the 8th Annual Conference on Innovation and Technology in Computer Science Education. ACM, Thessaloniki Greece. 104–108. isbn:978-1-58113-672-2 https://doi.org/10.1145/961511.961542 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Pontus Haglund, Filip Strömbäck, and Linda Mannila. 2021. Understanding Students’ Failure to Use Functions as a Tool for Abstraction – An Analysis of Questionnaire Responses and Lab Assignments in a CS1 Python Course. Informatics in Education, 20, 4 (2021), Dec., 583–614. issn:1648-5831, 2335-8971 https://doi.org/10.15388/infedu.2021.26 Google ScholarGoogle ScholarCross RefCross Ref
  21. Brian Harvey. 1997. Computer Science Logo Style: Beyond Programming (second ed.) (Exploring with LOGO, Vol. 3). MIT Press, Cambridge, MA, USA. isbn:978-0-262-58150-9 Google ScholarGoogle Scholar
  22. Peter Henderson. 1982. Functional Geometry. In Proceedings of the 1982 ACM Symposium on LISP and Functional Programming (LFP ’82). Association for Computing Machinery, New York, NY, USA. 179–187. isbn:978-0-89791-082-8 https://doi.org/10.1145/800068.802148 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Simon Holland, Robert Griffiths, and Mark Woodman. 1997. Avoiding Object Misconceptions. In Proceedings of the Twenty-eighth SIGCSE Technical Symposium on Computer Science Education (SIGCSE ’97). ACM, New York, NY, USA. 131–134. isbn:978-0-89791-889-3 https://doi.org/10.1145/268084.268132 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kristina Holsapple and Austin Cory Bart. 2022. Designing Designer: The Evidence-Oriented Design Process of a Pedagogical Interactive Graphics Python Library. In Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 1 (SIGCSE 2022). Association for Computing Machinery, New York, NY, USA. 85–91. isbn:978-1-4503-9070-5 https://doi.org/10.1145/3478431.3499363 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Cruz Izu and Peter Dinh. 2018. Can Novice Programmers Write C Functions? In 2018 IEEE International Conference on Teaching, Assessment, and Learning for Engineering (TALE). IEEE, Wollongong, NSW. 965–970. isbn:978-1-5386-6522-0 https://doi.org/10.1109/TALE.2018.8615375 Google ScholarGoogle ScholarCross RefCross Ref
  26. Fionnuala Johnson, Stephen McQuistin, and John O’Donnell. 2020. Analysis of Student Misconceptions Using Python as an Introductory Programming Language. In Proceedings of the 4th Conference on Computing Education Practice 2020. ACM, Durham United Kingdom. 1–4. isbn:978-1-4503-7729-4 https://doi.org/10.1145/3372356.3372360 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Cazembe Kennedy and Eileen T. Kraemer. 2019. Qualitative Observations of Student Reasoning: Coding in the Wild. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education. ACM, Aberdeen Scotland Uk. 224–230. isbn:978-1-4503-6895-7 https://doi.org/10.1145/3304221.3319751 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. 2017. Code Quality Issues in Student Programs. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE ’17). Association for Computing Machinery, New York, NY, USA. 110–115. isbn:978-1-4503-4704-4 https://doi.org/10.1145/3059009.3059061 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jonathan Knudsen. 1999. Java 2D Graphics. O’Reilly. isbn:978-1-56592-484-0 Google ScholarGoogle Scholar
  30. Tobias Kohn. 2017. Teaching Python Programming to Novices: Addressing Misconceptions and Creating a Development Environment. Ph. D. Dissertation. ETH Zurich. https://doi.org/10.3929/ETHZ-A-010871088 Google ScholarGoogle ScholarCross RefCross Ref
  31. Herman Koppelman and Betsy van Dijk. 2010. Teaching Abstraction in Introductory Courses. In Proceedings of the Fifteenth Annual Conference on Innovation and Technology in Computer Science Education - ITiCSE ’10. ACM Press, Bilkent, Ankara, Turkey. 174. isbn:978-1-60558-729-5 https://doi.org/10.1145/1822090.1822140 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Teemu Lehtinen, Aleksi Lukkarinen, and Lassi Haaranen. 2021. Students Struggle to Explain Their Own Program Code. In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education V. 1. 206–212. https://doi.org/10.1145/3430665.3456322 arxiv:2104.06710. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Aleksi Lukkarinen and Juha Sorva. 2016. Classifying the Tools of Contextualized Programming Education and Forms of Media Computation. In Proceedings of the 16th Koli Calling International Conference on Computing Education Research. ACM, Koli Finland. 51–60. isbn:978-1-4503-4770-9 https://doi.org/10.1145/2999541.2999551 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Linxiao Ma, John Ferguson, Marc Roper, and Murray Wood. 2007. Investigating the Viability of Mental Models Held by Novice Programmers. In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education. ACM, Covington Kentucky USA. 499–503. isbn:978-1-59593-361-4 https://doi.org/10.1145/1227310.1227481 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Orni Meerbaum-Salant, Michal Armoni, and Mordechai Ben-Ari. 2011. Habits of Programming in Scratch. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education (ITiCSE ’11). Association for Computing Machinery, New York, NY, USA. 168–172. isbn:978-1-4503-0697-3 https://doi.org/10.1145/1999747.1999796 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Bartosz Milewski. 2018. Category Theory for Programmers. Blurb. Google ScholarGoogle Scholar
  37. Craig S. Miller and Amber Settle. 2016. Some Trouble with Transparency: An Analysis of Student Errors with Object-oriented Python. In Proceedings of the 2016 ACM Conference on International Computing Education Research. ACM, Melbourne VIC Australia. 133–141. isbn:978-1-4503-4449-4 https://doi.org/10.1145/2960310.2960327 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Seymour A. Papert. 1971. A Computer Laboratory for Elementary Schools. MIT. Google ScholarGoogle Scholar
  39. Seymour A. Papert and Cynthia Solomon. 1971. Twenty Things To Do With A Computer. MIT. Google ScholarGoogle Scholar
  40. D. L. Parnas. 1972. On the Criteria to Be Used in Decomposing Systems into Modules. Commun. ACM, 15, 12 (1972), Dec., 1053–1058. issn:0001-0782 https://doi.org/10.1145/361598.361623 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Joe Gibbs Politz, Alejandro Martinez, Matthew Milano, Sumner Warren, Daniel Patterson, Junsong Li, Anand Chitipothu, and Shriram Krishnamurthi. 2013. Python: The Full Monty. In Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA ’13). ACM, New York, NY, USA. 217–232. isbn:978-1-4503-2374-1 https://doi.org/10.1145/2509136.2509536 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Yizhou Qian and James Lehman. 2017. Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Transactions on Computing Education, 18, 1 (2017), Oct., 1–24. issn:19466226 https://doi.org/10.1145/3077618 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Eric Roberts and Keith Schwarz. 2013. A Portable Graphics Library for Introductory CS. In Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE ’13. ACM Press, Canterbury, England, UK. 153. isbn:978-1-4503-2078-8 https://doi.org/10.1145/2462476.2465590 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Anthony Robins, Janet Rountree, and Nathan Rountree. 2003. Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13, 2 (2003), June, 137–172. issn:0899-3408, 1744-5175 https://doi.org/10.1076/csed.13.2.137.14200 Google ScholarGoogle ScholarCross RefCross Ref
  45. Emmanuel Schanzer, Shriram Krishnamurthi, and Kathi Fisler. 2018. Creativity, Customization, and Ownership: Game Design in Bootstrap: Algebra. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education. ACM, Baltimore Maryland USA. 161–166. isbn:978-1-4503-5103-4 https://doi.org/10.1145/3159450.3159471 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Juha Sorva. 2023. Misconceptions and the Beginner Programmer. In Computer Science Education : Perspectives on Teaching and Learning in School (second ed.), Sue Sentance, Erik Barendsen, Nicol R. Howard, and Carsten Schulte (Eds.). Bloomsbury Academic, London. 259–273. isbn:978-1-350-29694-7 Google ScholarGoogle Scholar
  47. Wayne P. Stevens, Glenford J. Myers, and Larry L. Constantine. 1974. Structured Design. IBM Systems Journal, 13, 2 (1974), 115–139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Vicki Trowler. 2010. Student Engagement Literature Review. The Higher Education Academy, York. Google ScholarGoogle Scholar
  49. Preston Tunnell Wilson, Kathi Fisler, and Shriram Krishnamurthi. 2018. Evaluating the Tracing of Recursion in the Substitution Notional Machine. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE ’18). ACM, New York, NY, USA. 1023–1028. isbn:978-1-4503-5103-4 https://doi.org/10.1145/3159450.3159479 Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. David Weintrop, Alexandria K. Hansen, Danielle B. Harlow, and Diana Franklin. 2018. Starting from Scratch: Outcomes of Early Computer Science Learning Experiences and Implications for What Comes Next. In Proceedings of the 2018 ACM Conference on International Computing Education Research. ACM, Espoo Finland. 142–150. isbn:978-1-4503-5628-2 https://doi.org/10.1145/3230977.3230988 Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Jeannette M. Wing. 2006. Computational Thinking. Commun. ACM, 49, 3 (2006), March, 33–35. issn:0001-0782 https://doi.org/10.1145/1118178.1118215 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Brent A. Yorgey. 2012. Monoids: Theme and Variations (Functional Pearl). ACM SIGPLAN Notices, 47, 12 (2012), Sept., 105–116. issn:0362-1340 https://doi.org/10.1145/2430532.2364520 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Teaching Programming with Graphics: Pitfalls and a Solution

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      SPLASH-E 2023: Proceedings of the 2023 ACM SIGPLAN International Symposium on SPLASH-E
      October 2023
      74 pages
      ISBN:9798400703904
      DOI:10.1145/3622780

      Copyright © 2023 ACM

      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 the author(s) 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].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 19 October 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Upcoming Conference

    • Article Metrics

      • Downloads (Last 12 months)95
      • Downloads (Last 6 weeks)8

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader