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

skip to main content
10.1145/3545947.3576336acmconferencesArticle/Chapter ViewAbstractPublication PagessigcseConference Proceedingsconference-collections
poster

RAVIC: Runtime Analysis Visualizer for Introductory Courses

Published: 06 March 2023 Publication History

Abstract

As the global economy's demand for computer applications soars, the demand for well-trained computer science (CS) professionals is rising. This trend fuels a surge in CS undergraduate degree production which, in turn, puts a strain on departmental resources. In addition, CS departments have to contend with high dropout and failure rates, fragile learning and bimodal outcomes \citeRobins19. Thus, the need for effective teaching techniques in CS education is greater than ever. Some concepts and skills in CS are very difficult to acquire such as analyzing the running time of short pieces of code \citeAlbluwi21, and particularly, computing the running time of loops. Most instructors use a trace-sum-approximate flow chart described in \citeAlbluwi21 to teach students how to analyze the running time of code. The two most important skills in this analysis process are the tracing of code and the approximation of the sum of different number patterns, e.g. the sum of the linear number pattern 1+2+3+...+n is equal to \fracn*(n+1) 2 and it is approximated to O(n^2). Novice programmers struggle with both these integral skills \citeCunningham17, Farghally17. Visual systems have been recognized to improve students' understanding of these concepts \citeFarghally17. Several tools have been developed to assist students with running time analysis. Existing tools are targeted at students with more advanced training, such as a background in advanced data structures (AAV \citeFarghally17 ) or experience with code tracing and approximation of the sum of different number patterns (Compigorithm \citeSmith20 ). However, none of the existing tools teach students how to compute the running time at the introductory level, and this gap presented a unique opportunity for us. An effective run-time analysis visualization system for introductory courses must depict the tracing and approximation of the sum. We propose a design in which the depiction of the loop tracing for run-time analysis is done through the use of a table, where the columns represent loop variables and each row represents one iteration of the loop. More specifically, it tabulates the operations in the order they happen during the execution of the loop as shown in Figure~\reffig:ravic. The table is displayed alongside the program. The current line of code being executed is highlighted while the table information is updated. At the end of the execution, the number of operations is determined by summing all the operations in the table column-by-column from the right-most side to the left as shown in Figure~\reffig:ravic. The student controls the visualization using navigation arrows to go back and forth. Instructors use a similar technique in the tracing of loops, but this approach allows students to proceed at their own pace. The tool is currently being developed as an extension to VS Code.

References

[1]
Anthony V. Robins. Novice Programmers and Introductory Programming, page 327--376. Cambridge Handbooks in Psychology. Cambridge University Press, 2019.
[2]
Ibrahim Albluwi and Haley Zeng. Novice difficulties with analyzing the running time of short pieces of code. ACE'21, February 2021.
[3]
Kathryn Cunningham, Sarah Blanchard, Barbara Ericson, and Mark Guzdial. Using tracing and sketching to solve programming problems: Replicating and extending an analysis of what students draw. ICER '17, August 2017.
[4]
Mohammed F. Farghally, Kyu Han Koh, Hossameldin Shahin, and Clifford A. Shaffer. Evaluating the effectiveness of algorithm analysis visualizations. SIGCSE '17, March 2017.
[5]
Rebecca Smith and Scott Rixner. Compigorithm: An interactive tool for guided practice of complexity analysis. ITiCSE '20, June 2020.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGCSE 2023: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 2
March 2023
1481 pages
ISBN:9781450394338
DOI:10.1145/3545947
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 March 2023

Check for updates

Author Tags

  1. code tracing
  2. runtime analysis
  3. time complexity
  4. visualization

Qualifiers

  • Poster

Conference

SIGCSE 2023
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,595 of 4,542 submissions, 35%

Upcoming Conference

SIGCSE TS 2025
The 56th ACM Technical Symposium on Computer Science Education
February 26 - March 1, 2025
Pittsburgh , PA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 45
    Total Downloads
  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Dec 2024

Other Metrics

Citations

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