Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3304221.3319746acmconferencesArticle/Chapter ViewAbstractPublication PagesiticseConference Proceedingsconference-collections
research-article

An Exploration of Novice Programmers' Comprehension of Conditionals in Imperative and Functional Programming

Published: 02 July 2019 Publication History

Abstract

Students of introductory programming courses are expected to develop higher-order thinking skills to inspect, understand and modify code. However, although novices can correctly write small programs, they appear to lack a more abstract, comprehensive grasp of basic constructs, such as conceiving the overall effect of alternative conditional flows. This work takes a little-explored perspective on the comprehension of tiny programs by asking students to reason about reversing conditionals in either an imperative or a functional context. More specifically, besides deciding if the given constructs can be reversed, students had to justify their choice by writing a reversing program or by providing suitable counterexamples. The students' answers to four reversibility questions have been analysed through the lens of the SOLO taxonomy. 45% of students correctly identified the reversibility for the four code items; furthermore, more than 50% of each cohort were able to provide correct justifications for at least three of their four answers. Most incorrect answers were due to failures to consider border cases or to edit the conditional expressions appropriately to reverse the construct. Differences in comprehension between functional and imperative languages are explored indicating the explicit else paths of the functional examples facilitate comprehension compared with the implicit else (no update) of its imperative counterpart.

References

[1]
J. B. Biggs and K. F Collis. 1982. Evaluating the quality of learning: The SOLO taxonomy .Academic Press, New York, USA.
[2]
R. Bornat, S. Dehnadi, and D. Barton. 2012. Observing Mental Models in Novice Programmers. In Proc. 24th Annual Workshop of the Psychology of Programming Interest Group. Article 6, bibinfonumpages7 pages.
[3]
Ibrahim Cetin. 2015. Student's Understanding of Loops and Nested Loops in Computer Programming: An APOS Theory Perspective . Canadian Journal of Science, Mathematics and Technology Education, Vol. 15, 2 (Feb. 2015), 155--170.
[4]
Yuliya Cherenkova, Daniel Zingaro, and Andrew Petersen. 2014. Identifying Challenging CS1 Concepts in a Large Problem Dataset. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education (SIGCSE '14). ACM, New York, USA, 695--700.
[5]
Kevin Cox and David Clark. 1998. The Use of Formative Quizzes for Deep Learning. Computers & Education, Vol. 30, 3--4 (April 1998), 157--167.
[6]
David Ginat and Michal Armoni. 2006. Reversing: An Essential Heuristic in Program and Proof Design. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education (SIGCSE '06). ACM, New York, NY, USA, 469--473.
[7]
Cruz Izu, Claudio Mirolo, and Amali Weerasinghe. 2018. Novice Programmers' Reasoning About Reversing Conditional Statements. In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE '18). ACM, New York, USA, 646--651.
[8]
Cruz Izu, Cheryl Pope, and Amali Weerasinghe. 2017. On the Ability to Reason About Program Behaviour: A Think-Aloud Study. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '17). ACM, New York, USA, 305--310.
[9]
F.J. King, L. Goodson, and F. Rohani. 1998. Higher order thinking skills: Definitions, strategies, assessment. Florida State University -- Center for Advancement of Learning and Assessment.
[10]
Raymond Lister. 2007. The Neglected Middle Novice Programmer: Reading and Writing without Abstracting. In Proceedings of the 20th Conference of the National Advisory Committee on Computing Qualifications (NACCQ'07), S. Mann and N. Bridgeman (Eds.). 133--140.
[11]
Raymond Lister. 2011. Concrete and other neo-piagetian forms of reasoning in the novice programmer . Conf. Res. Pract. Inf. Technol. Ser., Vol. 114 (2011), 9--18.
[12]
Raymond Lister, Beth Simon, Errol Thompson, Jacqueline L. Whalley, and Christine Prasad. 2006. Not Seeing the Forest for the Trees: Novice Programmers and the SOLO Taxonomy. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITICSE '06). ACM, New York, USA, 118--122.
[13]
Mike Lopez, Jacqueline Whalley, Phil Robbins, and Raymond Lister. 2008. Relationships Between Reading, Tracing and Writing Skills in Introductory Programming. In Proc. 4th Int. Workshop on Computing Education Research (ICER '08). ACM, New York, USA, 101--112.
[14]
Andrew Luxton-Reilly, Brett A. Becker, Yingjun Cao, Roger McDermott, Claudio Mirolo, Andreas Mühling, Andrew Petersen, Kate Sanders, Simon, and Jacqueline Whalley. 2017. Developing Assessments to Determine Mastery of Programming Fundamentals. In Proceedings of the 2017 ITiCSE Conference on Working Group Reports (ITiCSE-WGR '17). ACM, New York, USA, 47--69.
[15]
Philipp Mayring. 2014. Qualitative content analysis: theoretical foundation, basic procedures and software solution .Klagenfurt, Austria.
[16]
Robert McCartney, Jan Erik Moström, Kate Sanders, and Otto Sepp"al"a. 2004. Questions, Annotations, and Institutions: observations from a study of novice programmers. In Proceedings of the 4th Koli Calling International Conference on Computing Education Research (Koli Calling '04). ACM, New York, USA, 11-- 19.
[17]
Nancy Pennington. 1987. Comprehension Strategies in Programming. In Empirical Studies of Programmers: Second Workshop, Gary M. Olson, Sylvia Sheppard, and Elliot Soloway (Eds.). Ablex Publishing Corp., Norwood, NJ, USA, 100--113.
[18]
Jean Piaget. 1999. The Construction of Reality in the Child .Routledge. Original edition: La représentation du monde chez l'enfant, F. Alcan, Paris, 1926.
[19]
Ian Sanders, Vashti Galpin, and Tina Götschi. 2006. Mental models of recursion revisited. In Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (ITICSE '06). ACM, New York, USA, 138--142.
[20]
Judy Sheard, Angela Carbone, Raymond Lister, Beth Simon, Errol Thompson, and Jacqueline L. Whalley. 2008. Going SOLO to Assess Novice Programmers. In Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE '08). ACM, New York, USA, 209--213.
[21]
Shuhaida Shuhidan, Margaret Hamilton, and Daryl D'Souza. 2009. A Taxonomic Study of Novice Programming Summative Assessment. In Proc. 11th Australasian Conf. on Computing Education - Volume 95 (ACE '09). Australian Computer Society, Inc., Darlinghurst, Australia, 147--156.
[22]
Peter Sutherland. 1999. The application of Piagetian and Neo-Piagetian ideas to further and higher education. International Journal of Lifelong Education, Vol. 18, 4 (1999), 286--294.
[23]
Donna Teague. 2015. Neo-Piagetian Theory and the Novice Programmer . Ph.D. Dissertation. Queensland University of Technology -- School of Electrical Engineering & Computer Science, Brisbane City, QLD, Australia. R. Lister, C. Fidge & M. Corney supervisors.
[24]
Donna Teague and Raymond Lister. 2014. Programming: Reading, Writing and Reversing. In Proceedings of the 2014 Conference on Innovation and Technology in Computer Science Education (ITiCSE '14). ACM, New York, USA, 285--290.
[25]
Errol Thompson, Jacqueline Whalley, Raymond Lister, and Beth Simon. 2006. Code Classification as Learning and Assessment Exercise for Novice Programmers. In Proceedings of the 19th Annual Conference of the National Advisory Committee on Computing Qualifications, S. Mann and N. Bridgeman (Eds.). NACCQ in cooperation with ACM SIGCSE, 291--298.
[26]
Jacqueline Whalley, Tony Clear, Phil Robbins, and Errol Thompson. 2011. Salient elements in novice solutions to code writing problems . Conferences in Research and Practice in Information Technology Series, Vol. 114 (2011), 37--45.

Cited By

View all
  • (2023)The convergence of computational thinking, computational intelligence, and multi-agencyJournal of Integrated Design and Process Science10.3233/JID-22000926:3-4(369-391)Online publication date: 13-Oct-2023
  • (2020)High-school students' mastery of basic flow-control constructs through the lens of reversibilityProceedings of the 15th Workshop on Primary and Secondary Computing Education10.1145/3421590.3421603(1-10)Online publication date: 28-Oct-2020
  • (2020)Comparing Small Programs for Equivalence: A Code Comprehension Task for Novice ProgrammersProceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education10.1145/3341525.3387425(466-472)Online publication date: 15-Jun-2020
  • Show More Cited By

Index Terms

  1. An Exploration of Novice Programmers' Comprehension of Conditionals in Imperative and Functional Programming

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ITiCSE '19: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education
    July 2019
    583 pages
    ISBN:9781450368957
    DOI:10.1145/3304221
    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: 02 July 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. cs1
    2. imperative vs. functional programming
    3. program comprehension
    4. reversibility
    5. solo taxonomy

    Qualifiers

    • Research-article

    Conference

    ITiCSE '19
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 552 of 1,613 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)17
    • Downloads (Last 6 weeks)5
    Reflects downloads up to 21 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)The convergence of computational thinking, computational intelligence, and multi-agencyJournal of Integrated Design and Process Science10.3233/JID-22000926:3-4(369-391)Online publication date: 13-Oct-2023
    • (2020)High-school students' mastery of basic flow-control constructs through the lens of reversibilityProceedings of the 15th Workshop on Primary and Secondary Computing Education10.1145/3421590.3421603(1-10)Online publication date: 28-Oct-2020
    • (2020)Comparing Small Programs for Equivalence: A Code Comprehension Task for Novice ProgrammersProceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education10.1145/3341525.3387425(466-472)Online publication date: 15-Jun-2020
    • (2019)Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning TrajectoriesProceedings of the Working Group Reports on Innovation and Technology in Computer Science Education10.1145/3344429.3372501(27-52)Online publication date: 18-Dec-2019

    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