Sprinter: A Didactic Linter for Structured Programming

Authors Francisco Alfredo, André L. Santos , Nuno Garrido



PDF
Thumbnail PDF

File

OASIcs.ICPEC.2022.2.pdf
  • Filesize: 0.61 MB
  • 8 pages

Document Identifiers

Author Details

Francisco Alfredo
  • Visor.ai Portugal, S.A., Lisbon, Portugal
André L. Santos
  • ISTAR-IUL, University Institute of Lisbon, Portugal
Nuno Garrido
  • ISCTE-IUL, IT-IUL, University Institute of Lisbon, Portugal

Cite AsGet BibTex

Francisco Alfredo, André L. Santos, and Nuno Garrido. Sprinter: A Didactic Linter for Structured Programming. In Third International Computer Programming Education Conference (ICPEC 2022). Open Access Series in Informatics (OASIcs), Volume 102, pp. 2:1-2:8, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2022)
https://doi.org/10.4230/OASIcs.ICPEC.2022.2

Abstract

Code linters are tools for detecting improper uses of programming constructs and violations of style issues. Despite that professional linters are available for numerous languages, they are not targeted to introductory programming, given their prescriptive nature that does not take into consideration a didactic viewpoint of learning programming fundamentals. We present Sprinter, a didactic code linter for structured programming supporting Java whose novelty aspects are twofold: (a) providing formative feedback on code with comprehensive explanatory messages (rather then prescriptive); (b) capability of detecting some control-flow issues to a deeper extent than professional linters. We review Sprinter features against popular tools, namely IntelliJ IDEA and Sonarlint.

Subject Classification

ACM Subject Classification
  • Social and professional topics → Computer science education
  • Applied computing → Interactive learning environments
Keywords
  • structured programming
  • code quality
  • code linter

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads

References

  1. Anastasiia Birillo, Ilya Vlasov, Artyom Burylov, Vitalii Selishchev, Artyom Goncharov, Elena Tikhomirova, Nikolay Vyahhi, and Timofey Bryksin. Hyperstyle: A tool for assessing the code quality of solutions to programming assignments. In Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 1, SIGCSE 2022, pages 307-313, New York, NY, USA, 2022. Association for Computing Machinery. URL: https://doi.org/10.1145/3478431.3499294.
  2. Hannah Blau and J. Eliot B. Moss. Frenchpress gives students automated feedback on java program flaws. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '15, pages 15-20, New York, NY, USA, 2015. Association for Computing Machinery. URL: https://doi.org/10.1145/2729094.2742622.
  3. 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. "I know it when I see it" perceptions of code quality: ITiCSE '17 working group report. In Proceedings of the 2017 ITiCSE Conference on Working Group Reports, ITiCSE-WGR '17, pages 70-85, New York, NY, USA, 2018. Association for Computing Machinery. URL: https://doi.org/10.1145/3174781.3174785.
  4. Neil Christopher Charles Brown, Michael Kölling, Davin McCall, and Ian Utting. Blackbox: A large scale repository of novice programmers' activity. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE '14, pages 223-228, New York, NY, USA, 2014. Association for Computing Machinery. URL: https://doi.org/10.1145/2538862.2538924.
  5. Giuseppe De Ruvo, Ewan Tempero, Andrew Luxton-Reilly, Gerard B. Rowe, and Nasser Giacaman. Understanding semantic style by analysing student code. In Proceedings of the 20th Australasian Computing Education Conference, ACE '18, pages 73-82, New York, NY, USA, 2018. Association for Computing Machinery. URL: https://doi.org/10.1145/3160489.3160500.
  6. Gordon Fraser, Ute Heuer, Nina Körber, Florian Obermüller, and Ewald Wasmeier. Litterbox: A linter for scratch programs. In 2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET), pages 183-188, 2021. URL: https://doi.org/10.1109/ICSE-SEET52601.2021.00028.
  7. Lucy Jiang, Robert Rewcastle, Paul Denny, and Ewan Tempero. Comparecfg: Providing visual feedback on code quality using control flow graphs. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '20, pages 493-499, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3341525.3387362.
  8. Cazembe Kennedy and Eileen T. Kraemer. Qualitative observations of student reasoning: Coding in the wild. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '19, pages 224-230, New York, NY, USA, 2019. Association for Computing Machinery. URL: https://doi.org/10.1145/3304221.3319751.
  9. Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. Code quality issues in student programs. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '17, pages 110-115, New York, NY, USA, 2017. Association for Computing Machinery. URL: https://doi.org/10.1145/3059009.3059061.
  10. Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. How teachers would help students to improve their code. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '19, pages 119-125, New York, NY, USA, 2019. Association for Computing Machinery. URL: https://doi.org/10.1145/3304221.3319780.
  11. Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. Student refactoring behaviour in a programming tutor. In Koli Calling '20: Proceedings of the 20th Koli Calling International Conference on Computing Education Research, Koli Calling '20, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3428029.3428043.
  12. T. C. Lethbridge, R. J. Leblanc Jr, A. E. Kelley Sobel, T. B. Hilburn, and J. L. Diaz-Herrera. Se2004: Recommendations for undergraduate software engineering curricula. IEEE Software, 23(6):19-25, 2006. URL: https://doi.org/10.1109/MS.2006.171.
  13. Yizhou Qian and James Lehman. Students' misconceptions and other difficulties in introductory programming: A literature review. ACM Trans. Comput. Educ., 18(1), October 2017. URL: https://doi.org/10.1145/3077618.
  14. Jean Salac and Diana Franklin. If they build it, will they understand it? exploring the relationship between student code and performance. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '20, pages 473-479, New York, NY, USA, 2020. Association for Computing Machinery. URL: https://doi.org/10.1145/3341525.3387379.
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail