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

skip to main content
10.5555/2667490.2667496acmconferencesArticle/Chapter ViewAbstractPublication Pagesaus-ceConference Proceedingsconference-collections
research-article
Free access

Program visualization and explanation for novice C programmers

Published: 20 January 2014 Publication History

Abstract

Program visualization and natural language explanations of program behaviour have been shown to assist novice programmers with improving their programming knowledge, correcting misunderstandings, and debugging programs. These techniques have been used in several novice-focused debugging systems, but few have been developed for the C programming language -- despite it being widely reported as a difficult language for novices. We present robust, maintainable systems for visualizing the memory state and explaining the behaviour of programs written in the standard C programming language.

References

[1]
Brusilovsky, P. (1993), Program visualization as a debugging tool for novices, in 'INTERACT '93 and CHI '93 conference companion on Human factors in computing systems', CHI '93, ACM, New York, NY, USA, pp. 29--30.
[2]
Brusilovsky, P., Grady, J., Spring, M. & Lee, C.-H. (2006), 'What should be visualized?: faculty perception of priority topics for program visualization', SIGCSE Bull. 38, 44--48.
[3]
Cross, II, J. H., Hendrix, T. D., Umphress, D. A., Barowski, L. A., Jain, J. & Montgomery, L. N. (2009), 'Robust generation of dynamic data structure visualizations with multiple interaction approaches', Trans. Comput. Educ. 9, 13:1--13:32.
[4]
Heinsen Egan, M. & McDonald, C. (2013a), Reducing novice C programmers' frustration through improved runtime error checking, in 'Proceedings of the 18th ACM conference on Innovation and technology in computer science education', ITiCSE '13, ACM, New York, NY, USA, pp. 322--322.
[5]
Heinsen Egan, M. & McDonald, C. (2013b), Run-time error checking for novice C programmers, in 'Proceedings of the 4th Annual International Conference on Computer Science Education: Innovation and Technology', CSEIT '13, Global Science & Technology Forum, Singapore, pp. 1--9.
[6]
Hundhausen, C. D. & Brown, J. L. (2007), 'What you see is what you code: A "live" algorithm development and visualization environment for novice learners', J. Vis. Lang. Comput. 18, 22--47.
[7]
Lahtinen, E. (2009), Students' Individual Differences in Using Visualizations, in A. Pears & L. Malmi, eds, 'Koli Calling 2008 8th International Conference on Computing Education Research', Uppsala University, Box 337, SE-751 05 Uppsala, Sweden, pp. 92--95.
[8]
Moreno, A. & Joy, M. S. (2007), 'Jeliot 3 in a demanding educational setting', Electronic Notes in Theoretical Computer Science 178, 51--59. Proceedings of the Fourth Program Visualization Workshop (PVW 2006).
[9]
Smith, P. A. & Webb, G. I. (1995), Transparency Debugging with Explanations for Novice Programmers, in M. Ducassé, ed., 'Proceedings of the 2nd International Workshop on Automated and Algorithmic Debugging'.
[10]
Sundararaman, J. & Back, G. (2008), HDPV: interactive, faithful, in-vivo runtime state visualization for C/C++ and Java, in 'SoftVis '08: Proceedings of the 4th ACM Symposium on Software Visualization', ACM, New York, NY, USA, pp. 47--56.
[11]
Virtanen, A., Lahtinen, E. & Jarvinen, H.-M. (2005), VIP, a Visual Interpreter for Learning Introductory Programming with C++, in 'Proceedings of The Fifth Koli Calling Conference on Computer Science Education'.
[12]
Zimmermann, T. & Zeller, A. (2002), Visualizing Memory Graphs, in 'Revised Lectures on Software Visualization, International Seminar', Springer-Verlag, London, UK, pp. 191--204.

Cited By

View all
  • (2024)EasyTracker: A Python Library for Controlling and Inspecting Program ExecutionProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444823(359-372)Online publication date: 2-Mar-2024
  • (2022)Demystifying the Abstractness: Teaching Programming Concepts with VisualizationProceedings of the 23rd Annual Conference on Information Technology Education10.1145/3537674.3555786(134-136)Online publication date: 21-Sep-2022
  • (2019)Teaching a University-Wide Programming LaboratoryProceedings of the Twenty-First Australasian Computing Education Conference10.1145/3286960.3286961(1-10)Online publication date: 29-Jan-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ACE '14: Proceedings of the Sixteenth Australasian Computing Education Conference - Volume 148
January 2014
174 pages
ISBN:9781921770319

Sponsors

  • Datacom: Datacom
  • Australian Comp Soc: Australian Computer Society
  • SERL: Software Engineering Research Lab, Auckland University of Technology
  • Auckland University of Technology
  • ACM: Association for Computing Machinery
  • Univ. of Western Sydney: University of Western Sydney
  • The University of Auckland, New Zealand
  • CORE - Computing Research and Education
  • Colab: Collaboratory of Design & Creative Technologies, Auckland University of Technology
  • RMIT University
  • IITP: Institute of IT Professionals New Zealand
  • SIGCSE: ACM Special Interest Group on Computer Science Education

Publisher

Australian Computer Society, Inc.

Australia

Publication History

Published: 20 January 2014

Check for updates

Author Tags

  1. debuggers
  2. novice programmers
  3. visualization

Qualifiers

  • Research-article

Acceptance Rates

ACE '14 Paper Acceptance Rate 19 of 40 submissions, 48%;
Overall Acceptance Rate 161 of 359 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)154
  • Downloads (Last 6 weeks)14
Reflects downloads up to 08 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)EasyTracker: A Python Library for Controlling and Inspecting Program ExecutionProceedings of the 2024 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO57630.2024.10444823(359-372)Online publication date: 2-Mar-2024
  • (2022)Demystifying the Abstractness: Teaching Programming Concepts with VisualizationProceedings of the 23rd Annual Conference on Information Technology Education10.1145/3537674.3555786(134-136)Online publication date: 21-Sep-2022
  • (2019)Teaching a University-Wide Programming LaboratoryProceedings of the Twenty-First Australasian Computing Education Conference10.1145/3286960.3286961(1-10)Online publication date: 29-Jan-2019
  • (2018)PVCProceedings of the 49th ACM Technical Symposium on Computer Science Education10.1145/3159450.3159566(245-250)Online publication date: 21-Feb-2018
  • (2017)Effects of visualizing roles of variables with animation and IDE in novice program constructionTelematics and Informatics10.1016/j.tele.2017.02.00534:5(743-754)Online publication date: 1-Aug-2017
  • (2016)Student difficulties with pointer concepts in CProceedings of the Australasian Computer Science Week Multiconference10.1145/2843043.2843348(1-10)Online publication date: 1-Feb-2016

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media