[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ 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 2023 Publication 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
[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
[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
[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).
[5]
Mordechai Ben-Ari. 2001. Constructivism in Computer Science Education. Journal of Computers in Mathematics and Science Teaching, 20, 1 (2001), 45–73.
[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.
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[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
[29]
Jonathan Knudsen. 1999. Java 2D Graphics. O’Reilly. isbn:978-1-56592-484-0
[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
[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
[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.
[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
[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
[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
[36]
Bartosz Milewski. 2018. Category Theory for Programmers. Blurb.
[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
[38]
Seymour A. Papert. 1971. A Computer Laboratory for Elementary Schools. MIT.
[39]
Seymour A. Papert and Cynthia Solomon. 1971. Twenty Things To Do With A Computer. MIT.
[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
[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
[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
[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
[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
[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
[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
[47]
Wayne P. Stevens, Glenford J. Myers, and Larry L. Constantine. 1974. Structured Design. IBM Systems Journal, 13, 2 (1974), 115–139.
[48]
Vicki Trowler. 2010. Student Engagement Literature Review. The Higher Education Academy, York.
[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
[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
[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
[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

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2023

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. decomposition
  2. education
  3. graphics
  4. library
  5. novices
  6. programming
  7. visual

Qualifiers

  • Research-article

Funding Sources

Conference

SPLASH-E '23
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 128
    Total Downloads
  • Downloads (Last 12 months)72
  • Downloads (Last 6 weeks)9
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media