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

Some Trouble with Transparency: An Analysis of Student Errors with Object-oriented Python

Published: 25 August 2016 Publication History

Abstract

We investigated implications of transparent mechanisms in the context of an introductory object-oriented programming course using Python. Here transparent mechanisms are those that reveal how the instance object in Python relates to its instance data. We asked students to write a new method for a provided Python class in an attempt to answer two research questions: 1) to what extent do Python's transparent OO mechanisms lead to student difficulties? and 2) what are common pitfalls in OO programming using Python that instructors should address? Our methodology also presented the correct answer to the students and solicited their comments on their submission. We conducted a content analysis to classify errors in the student submissions. We find that most students had difficulty with the instance (self) object, either by omitting the parameter in the method definition, by failing to use the instance object when referencing attributes of the object, or both. Reference errors in general were more common than other errors, including misplaced returns and indentation errors. These issues may be connected to problems with parameter passing and using dot-notation, which we argue are prerequisites for OO development in Python.

References

[1]
K. K. Agarwal and A. Agarwal. Python for CS1, CS2 and beyond. J. Comput. Sci. Coll., 20(4):262--270, Apr. 2005.
[2]
G. Alexandron, M. Armoni, M. Gordon, and D. Harel. Scenario-based programming: Reducing the cognitive load, fostering abstract thinking. In Companion Proceedings of the 36th International Conference on Software Engineering, ICSE Companion 2014, pages 311--320, New York, NY, USA, 2014. ACM.
[3]
J. Boustedt, A. Eckerdal, R. McCartney, J. E. Moström, M. Ratcliffe, K. Sanders, and C. Zander. Threshold concepts in computer science: Do they exist and are they useful? In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education, SIGCSE '07, pages 504--508, New York, NY, USA, 2007. ACM.
[4]
C. Dierbach. Python as a first programming language. J. Comput. Sci. Coll., 29(6):153--154, June 2014.
[5]
B. Du Boulay. Some difficulties of learning to program. Journal of Educational Computing Research, 2(1):57--73, 1986.
[6]
R. J. Enbody and W. F. Punch. Performance of Python CS1 students in mid-level non-Python CS courses. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education, SIGCSE '10, pages 520--523, New York, NY, USA, 2010. ACM.
[7]
M. H. Goldwasser and D. Letscher. Teaching an object-oriented CS1 -- with Python. In ACM SIGCSE Bulletin, volume 40, pages 42--46. ACM, 2008.
[8]
T. R. Green. Cognitive dimensions of notations. In A. Sutcliffe and L. Macaulay, editors, People and Computers V, pages 443--460. Cambridge University Press, Cambridge, UK, 1989.
[9]
M. Guzdial. Centralized mindset: A student problem with object-oriented programming. In Proceedings of the Twenty-sixth SIGCSE Technical Symposium on Computer Science Education, SIGCSE '95, pages 182--185, New York, NY, USA, 1995. ACM.
[10]
C. E. Hmelo and M. Guzdial. Of black and glass boxes: Scaffolding for doing and learning. In Proceedings of the 1996 international conference on Learning sciences, pages 128--134. International Society of the Learning Sciences, 1996.
[11]
S. Holland, R. Griffiths, and M. Woodman. Avoiding object misconceptions. SIGCSE Bull., 29(1):131--134, 1997.
[12]
G. Kiczales. Towards a new model of abstraction in the engineering of software. International Workshop on Reflection and Meta-Level Architecture, pages 67--76, 1992.
[13]
H. Koppelman and B. van Dijk. Teaching abstraction in introductory courses. In Proceedings of the Fifteenth Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE '10, pages 174--178, New York, NY, USA, 2010. ACM.
[14]
A.-J. Lakanen, V. Lappalainen, and V. Isomöttönen. Revisiting rainfall to explore exam questions and performance on cs1. In Proceedings of the 15th Koli Calling Conference on Computing Education Research, Koli Calling '15, pages 40--49, New York, NY, USA, 2015. ACM.
[15]
K. Malan and K. Halland. Examples that can do harm in learning programming. In Companion to the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, OOPSLA '04, pages 83--87, New York, NY, USA, 2004. ACM.
[16]
C. S. Miller. Metonymy and reference-point errors in novice programming. Computer Science Education, 24(3):123--152, 2014.
[17]
C. S. Miller, A. Settle, and J. Lalor. Learning object-oriented programming in python: Towards an inventory of difficulties and testing pitfalls. In Proceedings of the 16th Annual Conference on Information Technology Education, SIGITE '15, pages 59--64, New York, NY, USA, 2015. ACM.
[18]
B. B. Morrison, B. Dorn, and M. Guzdial. Measuring cognitive load in introductory cs: Adaptation of an instrument. In Proceedings of the Tenth Annual Conference on International Computing Education Research, ICER '14, pages 131--138, New York, NY, USA, 2014. ACM.
[19]
J. E. Moström, J. Boustedt, A. Eckerdal, R. McCartney, K. Sanders, L. Thomas, and C. Zander. Concrete examples of abstraction as manifested in students' transformative experiences. In Proceedings of the Fourth International Workshop on Computing Education Research, ICER '08, pages 125--136, New York, NY, USA, 2008. ACM.
[20]
T. Newhall, L. Meeden, A. Danner, A. Soni, F. Ruiz, and R. Wicentowski. A support program for introductory CS courses that improves student performance and retains students from underrepresented groups. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE '14, pages 433--438, New York, NY, USA, 2014. ACM.
[21]
R. Or-Bach and I. Lavy. Cognitive activities of abstraction in object orientation: an empirical study. ACM SIGCSE Bulletin, 36(2):82--86, 2004.
[22]
J. Sajaniemi, M. Kuittinen, and T. Tikansalo. A study of the development of students' visualizations of program state during an elementary object-oriented programming course. J. Educ. Resour. Comput., 7(4):3:1--3:31, Jan. 2008.
[23]
K. Sanders and L. Thomas. Checklists for grading object-oriented CS1 programs: Concepts and misconceptions. In Proceedings of the 12th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE '07, pages 166--170, New York, NY, USA, 2007. ACM.
[24]
O. Seppälä, P. Ihantola, E. Isohanni, J. Sorva, and A. Vihavainen. Do we know how difficult the rainfall problem is? In Proceedings of the 15th Koli Calling Conference on Computing Education Research, Koli Calling '15, pages 87--96, New York, NY, USA, 2015. ACM.
[25]
J. Sorva. Notional machines and introductory programming education. ACM Transactions on Computing Education (TOCE), 13(2):8, 2013.
[26]
J. Sorva, V. Karavirta, and L. Malmi. A review of generic program visualization systems for introductory programming education. ACM Transactions on Computing Education (TOCE), 13(4):15, 2013.
[27]
J. Spolsky. The law of leaky abstractions. In Joel on Software, pages 197--202. Apress, 2004.
[28]
J. Sweller. Cognitive load during problem solving: Effects on learning. Cognitive science, 12(2):257--285, 1988.
[29]
J. M. Wing. Computational thinking. Commun. ACM, 49(3):33--35, Mar. 2006.

Cited By

View all
  • (2023)Teaching Programming with Graphics: Pitfalls and a SolutionProceedings of the 2023 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3622780.3623644(1-12)Online publication date: 18-Oct-2023
  • (2023)An Experiment on the Effects of Modularity on Code Modification and UnderstandingProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576138(105-112)Online publication date: 30-Jan-2023
  • (2022)A Decade of Demographics in Computing Education Research: A Critical Review of Trends in Collection, Reporting, and UseProceedings of the 2022 ACM Conference on International Computing Education Research - Volume 110.1145/3501385.3543967(323-343)Online publication date: 3-Aug-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICER '16: Proceedings of the 2016 ACM Conference on International Computing Education Research
August 2016
310 pages
ISBN:9781450344494
DOI:10.1145/2960310
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: 25 August 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstraction
  2. object-oriented programming
  3. python

Qualifiers

  • Research-article

Conference

ICER '16
Sponsor:
ICER '16: International Computing Education Research Conference
September 8 - 12, 2016
VIC, Melbourne, Australia

Acceptance Rates

ICER '16 Paper Acceptance Rate 26 of 102 submissions, 25%;
Overall Acceptance Rate 189 of 803 submissions, 24%

Upcoming Conference

ICER 2025
ACM Conference on International Computing Education Research
August 3 - 6, 2025
Charlottesville , VA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)3
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Teaching Programming with Graphics: Pitfalls and a SolutionProceedings of the 2023 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3622780.3623644(1-12)Online publication date: 18-Oct-2023
  • (2023)An Experiment on the Effects of Modularity on Code Modification and UnderstandingProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576138(105-112)Online publication date: 30-Jan-2023
  • (2022)A Decade of Demographics in Computing Education Research: A Critical Review of Trends in Collection, Reporting, and UseProceedings of the 2022 ACM Conference on International Computing Education Research - Volume 110.1145/3501385.3543967(323-343)Online publication date: 3-Aug-2022
  • (2020)Robust Unsupervised Cross-modal Hashing for Multimedia RetrievalACM Transactions on Information Systems10.1145/338954738:3(1-25)Online publication date: 5-Jun-2020
  • (2020)Keeping the Data Lake in FormACM Transactions on Information Systems10.1145/338887038:3(1-30)Online publication date: 18-May-2020
  • (2020)Understanding the “this” reference in object oriented programming: Misconceptions, conceptions, and teaching recommendationsEducation and Information Technologies10.1007/s10639-020-10265-6Online publication date: 23-Jul-2020
  • (2019)A Deep Neural Network Framework for English Hindi Question AnsweringACM Transactions on Asian and Low-Resource Language Information Processing10.1145/335998819:2(1-22)Online publication date: 21-Nov-2019
  • (2019)A mechanical formalization of higher-ranked polymorphic type inferenceProceedings of the ACM on Programming Languages10.1145/33417163:ICFP(1-29)Online publication date: 26-Jul-2019
  • (2019)Mixed linear and non-linear recursive typesProceedings of the ACM on Programming Languages10.1145/33417153:ICFP(1-29)Online publication date: 26-Jul-2019
  • (2019)Quantitative program reasoning with graded modal typesProceedings of the ACM on Programming Languages10.1145/33417143:ICFP(1-30)Online publication date: 26-Jul-2019
  • 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media