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

skip to main content
10.1145/3350768.3351303acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
short-paper

Willow: A Tool for Interactive Programming Visualization to Help in the Data Structures and Algorithms Teaching-Learning Process

Published: 23 September 2019 Publication History

Abstract

Data Structures and Algorithms (DSA) are one of the main pillars of software development; however, abstractions around them are hard to teach and to be understood by students. The most common approaches adopted by instructors to demonstrate the behavior of DSAs are the use of resources like slides and whiteboard sketches to create program illustrations. This task may be slow and tedious because these illustrations need to be continuously updated to represent new algorithm inputs and modifications. In this paper, we propose Willow, a tool for Program Visualization Simulation (PVS), which supports user interactions to manipulate the generated visualizations. With these manipulations in the visualization, we expect the user to be able to create better examples, resembling Algorithm Visualization Simulation tools (AVS), which are specialized in providing visualizations for specific DSAs. We evaluated our tool through a preliminary qualitative study with teaching assistants from an introductory Computer Science course who all give review lessons to the students. Our preliminary results show that the tool was well accepted by the participants, but we still need more studies to validate the use of the tool in classrooms. With the use of our tool features in the teaching-learning process, we expect that instructors may be able to interactively and more clearly explain DSAs to their students, without the hassle of hours creating slides or drawing by hand messy examples of algorithms.

References

[1]
Muhammad Ateeq, Hina Habib, Adnan Umer, and Muzammil Ul Rehman. 2014. C++ or Python? Which One to Begin with: A Learner's Perspective. In 2014 International Conference on Teaching and Learning in Computing and Engineering. IEEE, 64--69.
[2]
David Bau, Jeff Gray, Caitlin Kelleher, Josh Sheldon, and Franklyn Turbak. 2017. Learnable programming: blocks and beyond. arXiv preprint arXiv:1705.09413 (2017).
[3]
Katrin Becker and Melissa Beacham. 2000. A tool for teaching advanced data structures to computer science students: an overview of the BDP system. In Journal of Computing Sciences in Colleges, Vol. 16. Consortium for Computing Sciences in Colleges, 65--71.
[4]
Alexandre Bergel, Felipe Banados, Romain Robbes, and David Röthlisberger. 2012. Spy: A flexible code profiling framework. Computer Languages, Systems & Structures 38, 1 (2012), 16--28.
[5]
ANM Imroz Choudhury and Paul Rosen. 2011. Abstract visualization of runtime memory behavior. In 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT). IEEE, 1--8.
[6]
Habibie Ed Dien and Yudistira Dwi Wardhana Asnar. 2018. OPT+ Graph: Detection of Graph Data Structure on Program Visualization Tool to Support Learning. In 2018 5th International Conference on Data and Software Engineering (ICoDSE). IEEE, 1--6.
[7]
Stephen H Edwards, Daniel S Tilden, and Anthony Allevato. 2014. Pythy: improving the introductory python programming experience. In Proceedings of the 45th ACM technical symposium on Computer science education. ACM, 641--646.
[8]
Eric Fouh, Monika Akbar, and Clifford A Shaffer. 2012. The role of visualization in computer science education. Computers in the Schools 29, 1-2 (2012), 95--117.
[9]
Denis Gračanin, Krešimir Matković, and Mohamed Eltoweissy. 2005. Software visualization. Innovations in Systems and Software Engineering 1, 2 (2005), 221--230.
[10]
Philip J Guo. 2013. Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM technical symposium on Computer science education. ACM, 579--584.
[11]
John Guttag. 2011. 6.00SC Introduction to Computer Science and Programming. https://ocw.mit.edu/
[12]
Juha Helminen and Lauri Malmi. 2010. Jype-a program visualization and programming exercise tool for Python. In Proceedings of the 5th international symposium on Software visualization. ACM, 153--162.
[13]
Hyeonsu Kang and Philip J Guo. 2017. Omnicode: A novice-oriented live programming environment with always-on run-time value visualizations. In Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology. ACM, 737--745.
[14]
Ravi Khatwal and Manoj Kumar Jain. 2016. An Efficient Application Specific Memory Storage and ASIP Behavior Optimization in Embedded System. INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS 7, 7 (2016), 179--190.
[15]
Linxiao Ma, John Ferguson, Marc Roper, and Murray Wood. 2011. Investigating and improving the models of programming concepts held by novice programmers. Computer Science Education 21, 1 (2011), 57--80.
[16]
Akio Oka, Hidehiko Masuhara, and Tomoyuki Aotani. 2018. Live, synchronized, and mental map preserving visualization for data structure programming. In Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. ACM, 72--87.
[17]
Michael C Orsega, Bradley T Vander Zanden, and Christopher H Skinner. 2012. Experiments with algorithm visualization tool development. In Proceedings of the 43rd ACM technical symposium on Computer Science Education. ACM, 559--564.
[18]
Jibin Ou, Martin Vechev, and Otmar Hilliges. 2015. An interactive system for data structure development. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems. ACM, 3053--3062.
[19]
Yizhou Qian, Susanne Hambrusch, Aman Yadav, Sarah Gretter, and Yue Li. 2019. TeachersâĂŹ Perceptions of Student Misconceptions in Introductory Programming. Journal of Educational Computing Research (2019), 0735633119845413.
[20]
Yizhou Qian and James Lehman. 2017. StudentsâĂŹ misconceptions and other difficulties in introductory programming: A literature review. ACM Transactions on Computing Education (TOCE) 18, 1 (2017), 1.
[21]
Katarzyna Romanowska, Gurpreet Singh, M Ali Akber Dewan, and Fuhua Lin. 2018. Towards Developing an Effective Algorithm Visualization Tool for Online Learning. In 2018 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI). IEEE, 2011--2016.
[22]
Juha Sorva et al. 2012. Visual program simulation in introductory programming education. Aalto University.
[23]
Juha Sorva, Ville Karavirta, and Lauri Malmi. 2013. A review of generic program visualization systems for introductory programming education. ACM Transactions on Computing Education (TOCE) 13, 4 (2013), 15.
[24]
Juha Sorva, Jan Lönnberg, and Lauri Malmi. 2013. StudentsâĂŹ ways of experiencing visual program simulation. Computer Science Education 23, 3 (2013), 207--238.
[25]
Juha Sorva and Teemu Sirkiä. 2010. UUhistle: a software tool for visual program simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research. ACM, 49--54.
[26]
Euripides Vrachnos and Athanassios Jimoyiannis. 2014. Design and evaluation of a web-based dynamic algorithm visualization environment for novices. Procedia Computer Science 27 (2014), 229--239.
[27]
Daniel Zingaro, Yuliya Cherenkova, Olessia Karpova, and Andrew Petersen. 2013. Facilitating code-writing in PI classes. In Proceeding of the 44th ACM technical symposium on Computer science education. ACM, 585--590.

Cited By

View all
  • (2024)Analysis of Research into the Teaching and Learning of Programming: An Updated Review2024 9th International STEM Education Conference (iSTEM-Ed)10.1109/iSTEM-Ed62750.2024.10663138(1-6)Online publication date: 31-Jul-2024
  • (2023)Educational Programming Environments for Enhancing Conceptual Design in the Object-Oriented Paradigm: A Systematic Mapping StudyJournal of Educational Computing Research10.1177/0735633123120325162:1(290-322)Online publication date: 21-Sep-2023
  • (2023)Applying Cognitive Load Theory and the Split Attention Effect to Learning Data StructuresIEEE Revista Iberoamericana de Tecnologias del Aprendizaje10.1109/RITA.2023.325058018:1(107-113)Online publication date: Feb-2023
  • Show More Cited By
  1. Willow: A Tool for Interactive Programming Visualization to Help in the Data Structures and Algorithms Teaching-Learning Process

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    SBES '19: Proceedings of the XXXIII Brazilian Symposium on Software Engineering
    September 2019
    583 pages
    ISBN:9781450376518
    DOI:10.1145/3350768
    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].

    In-Cooperation

    • SBC: Sociedade Brasileira de Computação

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 September 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. algorithm visualization
    2. data structures and algorithms
    3. program visualization
    4. programming learning

    Qualifiers

    • Short-paper
    • Research
    • Refereed limited

    Funding Sources

    • Conselho Nacional de Desenvolvimento Científico e Tecnológico
    • Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco

    Conference

    SBES 2019

    Acceptance Rates

    SBES '19 Paper Acceptance Rate 67 of 153 submissions, 44%;
    Overall Acceptance Rate 147 of 427 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)46
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 23 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Analysis of Research into the Teaching and Learning of Programming: An Updated Review2024 9th International STEM Education Conference (iSTEM-Ed)10.1109/iSTEM-Ed62750.2024.10663138(1-6)Online publication date: 31-Jul-2024
    • (2023)Educational Programming Environments for Enhancing Conceptual Design in the Object-Oriented Paradigm: A Systematic Mapping StudyJournal of Educational Computing Research10.1177/0735633123120325162:1(290-322)Online publication date: 21-Sep-2023
    • (2023)Applying Cognitive Load Theory and the Split Attention Effect to Learning Data StructuresIEEE Revista Iberoamericana de Tecnologias del Aprendizaje10.1109/RITA.2023.325058018:1(107-113)Online publication date: Feb-2023
    • (2023)Students’ difficulties with inserting and deleting nodes in a singly linked list in the C programming languageJournal of Computer Languages10.1016/j.cola.2022.10118474(101184)Online publication date: Jan-2023
    • (2023)Blended Enriched Virtual Model for the Prediction of Students’ Performance Using Probablistic Based ModelSoft Computing Applications10.1007/978-3-031-23636-5_11(138-144)Online publication date: 27-Oct-2023
    • (2022)Stop Reinventing the Wheel! Promoting Community Software in Computing EducationProceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education10.1145/3571785.3574129(261-292)Online publication date: 27-Dec-2022
    • (2022)Effects of a Block-Based Scaffolded Tool on Students’ Introduction to Hierarchical Data StructuresIEEE Transactions on Education10.1109/TE.2021.310960465:2(191-199)Online publication date: 1-May-2022
    • (2022)AR Compiler: A Visualization Data Structured Program Learning SystemInnovative Technologies and Learning10.1007/978-3-031-15273-3_7(63-67)Online publication date: 29-Aug-2022
    • (2021)Ten Million Users and Ten Years Later: Python Tutor’s Design Guidelines for Building Scalable and Sustainable Research Software in AcademiaThe 34th Annual ACM Symposium on User Interface Software and Technology10.1145/3472749.3474819(1235-1251)Online publication date: 10-Oct-2021
    • (2021)Algorithm Visualizer: Its features and working2021 IEEE 8th Uttar Pradesh Section International Conference on Electrical, Electronics and Computer Engineering (UPCON)10.1109/UPCON52273.2021.9667586(1-5)Online publication date: 11-Nov-2021
    • 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