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

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

How Teachers Would Help Students to Improve Their Code

Published: 02 July 2019 Publication History

Abstract

Code quality has been receiving less attention than program correctness in both the practice of and research into programming education. Writing poor quality code might be a sign of carelessness, or not fully understanding programming concepts and language constructs. Teachers play an important role in addressing quality issues, and encouraging students to write better code as early as possible.
In this paper we explore to what extent teachers address code quality in their teaching, which code quality issues they observe and how they would help novices to improve their code. We presented student code of low quality to 30 experienced teachers and asked them which hints they would give and how the student should improve the code step by step. We compare these hints to the output of professional code quality tools.
Although most teachers gave similar hints on reducing the algorithmic complexity and removing clutter, they gave varying subsets of hints on other topics. We found a large variety in how they would solve issues in code. We noticed that professional code quality tools do not point out the algorithmic complexity topics that teachers mention. Finally, we give some general guidelines on how to approach code improvement.

References

[1]
Shamsa Abid, Hamid Abdul Basit, and Naveed Arshad. 2015. Reflections on Teaching Refactoring: A Tale of Two Projects. In Proceedings of ITiCSE . 225--230.
[2]
Kirsti Ala-Mutka, Toni Uimonen, and Hannu-Matti Jarvinen. 2004. Supporting students in C
[3]
programming courses with automatic program style assessment. Journal of Information Technology Education: Research, Vol. 3 (2004), 245--262.
[4]
Hannah Blau and J. Eliot B. Moss. 2015. FrenchPress Gives Students Automated Feedback on Java Program Flaws. In Proceedings of ITiCSE . 15--20.
[5]
Jürgen Börstler, Marie Nordström, and James H Paterson. 2011. On the quality of examples in introductory Java textbooks. ACM Transactions on Computing Education (TOCE), Vol. 11, 1 (2011), 1--21.
[6]
Jürgen Börstler, Harald Störrle, Daniel Toll, Jelle van Assema, Rodrigo Duran, Sara Hooshangi, Johan Jeuring, Hieke Keuning, Carsten Kleiner, and Bonnie MacKellar. 2017. "I know it when I see it" Perceptions of Code Quality. In Proceedings of ITiCSE, Working Group Reports. 70--85.
[7]
Dennis Breuker, Jan Derriks, and Jacob Brunekreef. 2011. Measuring Static Quality of Student Code. In Proceedings of ITiCSE. 13--17.
[8]
Neil CC Brown and Amjad Altadmri. 2017. Novice Java programming mistakes: large-scale data vs. educator beliefs. ACM Transactions on Computing Education (TOCE), Vol. 17, 2 (2017), 7.
[9]
Giuseppe De Ruvo, Ewan Tempero, Andrew Luxton-Reilly, Gerard B. Rowe, and Nasser Giacaman. 2018. Understanding Semantic Style by Analysing Student Code. In Proceedings of the Australasian Computing Education Conference. 73--82.
[10]
Serge Demeyer, Filip Van Rysselberghe, Tudor Girba, Jacek Ratzinger, Radu Marinescu, Tom Mens, Bart Du Bois, Dirk Janssens, Stéphane Ducasse, Michele Lanza, et almbox. 2005. The LAN-simulation: a refactoring teaching example. In International Workshop on Principles of Software Evolution. IEEE, 123--131.
[11]
Martin Fowler. 1999. Refactoring: improving the design of existing code .Addison-Wesley Professional.
[12]
Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. 2017. Code Quality Issues in Student Programs. In Proceedings of ITiCSE. 110--115.
[13]
Andrew Luxton-Reilly, Paul Denny, Diana Kirk, Ewan Tempero, and Se-Young Yu. 2013. On the Differences Between Correct Student Solutions. In Proceedings of ITiCSE . 177--182.
[14]
Steve McConnell. 2004. Code Complete: A Practical Handbook of Software Construction, Second Edition .Microsoft Press.
[15]
Stephen Nutbrown and Colin Higgins. 2016. Static analysis of programming exercises: Fairness, usefulness and a method for application. Computer Science Education, Vol. 26, 2--3 (2016), 104--128.
[16]
Raymond Pettit, John Homer, Roger Gee, Susan Mengel, and Adam Starbuck. 2015. An Empirical Study of Iterative Improvement in Programming Assignments. In Proceedings of SIGCSE. 410--415.
[17]
Yizhou Qian and James Lehman. 2017. Students' Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Transactions on Computing Education (TOCE), Vol. 18, 1, Article 1 (2017), bibinfonumpages1:1--1:24 pages.
[18]
Suzanne Smith, Sara Stoecklin, and Catharina Serino. 2006. An Innovative Approach to Teaching Refactoring. In Proceedings of SIGCSE. 349--353.
[19]
Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. 2016. Designing a rubric for feedback on code quality in programming courses. In Proceedings of the Koli Calling International Conference on Computing Education Research. ACM, 160--164.
[20]
Sara Stoecklin, Suzanne Smith, and Catharina Serino. 2007. Teaching Students to Build Well Formed Object-oriented Methods Through Refactoring. In Proceedings of SIGCSE. 145--149.
[21]
Eliane S. Wiese, Michael Yen, Antares Chen, Lucas A. Santos, and Armando Fox. 2017. Teaching Students to Recognize and Implement Good Coding Style. In ACM Conference on Learning @ Scale. 41--50.

Cited By

View all
  • (2024)Bringing Industry-Grade Code Quality and Practices into Software Engineering Education (Doctoral Consortium)Proceedings of the 24th Koli Calling International Conference on Computing Education Research10.1145/3699538.3699571(1-2)Online publication date: 12-Nov-2024
  • (2024)Clustering MOOC Programming Solutions to Diversify Their Presentation to StudentsProceedings of the 24th Koli Calling International Conference on Computing Education Research10.1145/3699538.3699548(1-8)Online publication date: 12-Nov-2024
  • (2024)CFlow: Supporting Semantic Flow Analysis of Students' Code in Programming Problems at ScaleProceedings of the Eleventh ACM Conference on Learning @ Scale10.1145/3657604.3662025(188-199)Online publication date: 9-Jul-2024
  • Show More Cited By

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

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. code quality
  2. programming education
  3. refactoring

Qualifiers

  • Research-article

Funding Sources

  • Netherlands Organisation for Scientific Research (NWO)

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)68
  • Downloads (Last 6 weeks)13
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Bringing Industry-Grade Code Quality and Practices into Software Engineering Education (Doctoral Consortium)Proceedings of the 24th Koli Calling International Conference on Computing Education Research10.1145/3699538.3699571(1-2)Online publication date: 12-Nov-2024
  • (2024)Clustering MOOC Programming Solutions to Diversify Their Presentation to StudentsProceedings of the 24th Koli Calling International Conference on Computing Education Research10.1145/3699538.3699548(1-8)Online publication date: 12-Nov-2024
  • (2024)CFlow: Supporting Semantic Flow Analysis of Students' Code in Programming Problems at ScaleProceedings of the Eleventh ACM Conference on Learning @ Scale10.1145/3657604.3662025(188-199)Online publication date: 9-Jul-2024
  • (2024)Catalog of Code Quality Defects in Introductory ProgrammingProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653638(59-65)Online publication date: 3-Jul-2024
  • (2024)Asking Students to Refactor their Code: A Simple and Valuable ExerciseProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653546(73-79)Online publication date: 3-Jul-2024
  • (2024)Teachers' Beliefs and Practices on the Naming of Variables in Introductory Python Programming CoursesProceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3639474.3640069(368-379)Online publication date: 14-Apr-2024
  • (2024)A Literature-Informed Model for Code Style Principles to Support Teachers of Text-Based ProgrammingProceedings of the 26th Australasian Computing Education Conference10.1145/3636243.3636258(134-143)Online publication date: 29-Jan-2024
  • (2024)Using Program Comprehension Models to Teach ComprehensibilityProceedings of the 26th Australasian Computing Education Conference10.1145/3636243.3636244(1-10)Online publication date: 29-Jan-2024
  • (2023)Exploring CS1 Student's Notions of Code QualityProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588808(12-18)Online publication date: 29-Jun-2023
  • (2023)Detecting Code Quality Issues in Pre-written Templates of Programming Tasks in Online CoursesProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588800(152-158)Online publication date: 29-Jun-2023
  • 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