A Tool for Visualizing the Execution of Programs and Stack Traces Especially Suited for Novice Programmers

Stanislav Litvinov, Marat Mingazov, Vladislav Myachikov, Vladimir Ivanov, Yuliya Palamarchuk, Pavel Sozonov, Giancarlo Succi

2017

Abstract

Software engineering education and training has obstacles caused by a lack of basic knowledge about a process of program execution. The article is devoted to the development of special tools that help to visualize the process. We analyze existing tools and propose a new approach to stack and heap visualization. The solution is able to overcome major drawbacks of existing tools and suites well for analysis of programs written in Java and C/C++.

References

  1. Alsallakh, B., Bodesinsky, P., Gruber, A., and Miksch, S. (2012). Visual tracing for the eclipse java debugger. In Software Maintenance and Reengineering (CSMR), 2012 16th European Conference on, pages 545-548. IEEE.
  2. Bennedsen, J. and Caspersen, M. E. (2007). Failure rates in introductory programming. ACM SIGCSE Bulletin, 39(2):32-36.
  3. Bennedsen, J. and Schulte, C. (2010). Bluej visual debugger for learning the execution of object-oriented programs? ACM Transactions on Computing Education (TOCE), 10(2):8.
  4. Bissyandé, T. F., Thung, F., Lo, D., Jiang, L., and Réveillere, L. (2013). Popularity, interoperability, and impact of programming languages in 100,000 open source projects. In Computer Software and Applications Conference (COMPSAC), 2013 IEEE 37th Annual, pages 303-312. IEEE.
  5. Bruce-Lockhart, M. P. and Norvell, T. S. (2000). Lifting the hood of the computer: Program animation with the teaching machine. In Electrical and Computer Engineering, 2000 Canadian Conference on, volume 2, pages 831-835. IEEE.
  6. Coman, I. D., Sillitti, A., and Succi, G. (2008). Investigating the usefulness of pair-programming in a mature agile team. In Agile Processes in Software Engineering and Extreme Programming: 9th International Conference, XP 2008, Limerick, Ireland. Proceedings, pages 127- 136, Berlin, Heidelberg. Springer Berlin Heidelberg.
  7. Cornelissen, B., Zaidman, A., Holten, D., Moonen, L., van Deursen, A., and van Wijk, J. J. (2008). Execution trace analysis through massive sequence and circular bundle views. Journal of Systems and Software, 81(12):2252-2268.
  8. Corral, L., Sillitti, A., Succi, G., Garibbo, A., and Ramella, P. (2011). Evolution of Mobile Software Development from Platform-Specific to Web-Based Multiplatform Paradigm. In Proceedings of the 10th SIGPLAN Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2011, pages 181-183, New York, NY, USA. ACM.
  9. Cross, J. H., Hendrix, D., and Umphress, D. A. (2004). Jgrasp: an integrated development environment with visualizations for teaching java in cs1, cs2, and beyond. In Frontiers in Education, 2004. FIE 2004. 34th Annual, pages 1466-1467. IEEE.
  10. cs.umd.edu (2003). Understanding the stack. http://www.cs.umd.edu/class/sum2003/cmsc311/ Notes/Mips/stack.html.
  11. Deitz, S. and Buy, U. (2016). From video games to debugging code. In Proceedings of the 5th International Workshop on Games and Software Engineering, pages 37-41. ACM.
  12. Kovács, G. L., Drozdik, S., Zuliani, P., and Succi, G. (2004). Open Source Software for the Public Administration. In Proceedings of the 6th International Workshop on Computer Science and Information Technologies.
  13. Kumar, A. N. (2009). Data space animation for learning the semantics of c++ pointers. ACM SIGCSE Bulletin, 41(1):499-503.
  14. Lessa, D., Czyz, J. K., and Jayaraman, B. (2010). Jive: A pedagogic tool for visualizing the execution of java programs. University at Buffalo, Tech. Rep.
  15. Maurer, F., Succi, G., Holz, H., Kötting, B., Goldmann, S., and Dellen, B. (1999). Software Process Support over the Internet. In Proceedings of the 21st International Conference on Software Engineering, ICSE 7899, pages 642-645. ACM.
  16. Mehner, K. (2002). Javis: A uml-based visualization and debugging environment for concurrent java programs. In Software Visualization, pages 163-175. Springer.
  17. Moons, J. and De Backer, C. (2013). The design and pilot evaluation of an interactive learning environment for introductory programming influenced by cognitive load theory and constructivism. Computers & Education, 60(1):368-384.
  18. Moreno, A., Myller, N., Sutinen, E., and Ben-Ari, M. (2004). Visualizing programs with jeliot 3. In Proceedings of the working conference on Advanced visual interfaces, pages 373-376. ACM.
  19. Moser, R., Pedrycz, W., and Succi, G. (2008). A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In Proceedings of the 30th International Conference on Software Engineering, ICSE 2008, pages 181-190. ACM.
  20. Mota, M. P., Pereira, L. W. K., and Favero, E. L. (2008). Javatool: Uma ferramenta para o ensino de programac¸a˜o. In Congresso da Sociedade Brasileira de Computac¸a˜o. Belém. XXVIII Congresso da Sociedade Brasileira de Computac¸a˜o, pages 127-136.
  21. Oechsle, R. and Schmitt, T. (2002). Javavis: Automatic program visualization with object and sequence diagrams using the java debug interface (jdi). In Software visualization, pages 176-190. Springer.
  22. Oracle (2016). Java platform debugger architecture (jpda). http://docs.oracle.com/javase/7/docs/technotes/ guides/jpda/.
  23. Oroma, J. O., Wanga, H., and Ngumbuke, F. (2012). Challenges of teaching and learning computer programming in developing countries: Lessons from tumaini university.
  24. Pedrycz, W. and Succi, G. (2005). Genetic granular classifiers in modeling software quality. Journal of Systems and Software, 76(3):277-285.
  25. Pedrycz, W., Succi, G., Sillitti, A., and Iljazi, J. (2015). Data description: A general framework of information granules. Knowl.-Based Syst., 80:98-108.
  26. Reiss, S. P. (2009). Visualizing the java heap demonstration proposal. In Software Maintenance, 2009. ICSM 2009. IEEE International Conference on, pages 389- 390. IEEE.
  27. Safina, L., Mazzara, M., Montesi, F., and Rivera, V. (2016). Data-driven workflows for microservices: Genericity in jolie. In 2016 IEEE 30th International Conference on Advanced Information Networking and Applications (AINA), pages 430-437.
  28. Scarpino, M. (2008a). Interfacing with the cdt debugger, part 1: Understand the c/c++ debugger interface. http://www.ibm.com/developerworks/library/oseclipse-cdt-debug1/.
  29. Scarpino, M. (2008b). Interfacing with the cdt debugger, part 2: Accessing gdb with the eclipse cdt and mi. http://www.ibm.com/developerworks/library/oseclipse-cdt-debug2/.
  30. Scotto, M., Sillitti, A., Succi, G., and Vernazza, T. (2004). A Relational Approach to Software Metrics. In Proceedings of the 2004 ACM Symposium on Applied Computing, SAC 7804, pages 1536-1540. ACM.
  31. Smith, P. A. and Webb, G. I. (1995). Reinforcing a generic computer model for novice programmers. ASCILITE'95.
  32. Sorva, J., Karavirta, V., and Malmi, L. (2013). A review of generic program visualization systems for introductory programming education. ACM Transactions on Computing Education (TOCE), 13(4):15.
  33. Succi, G., Paulson, J., and Eberlein, A. (2001). Preliminary results from an empirical study on the growth of open source and commercial software products. In EDSER3 Workshop, pages 14-15.
  34. Watson, C. and Li, F. W. (2014). Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education, pages 39-44. ACM.
  35. Yurichev, D. (2013). C/c++ programming language notes. http://yurichev.com/writings/C-notes-en.pdf.
Download


Paper Citation


in Harvard Style

Litvinov S., Mingazov M., Myachikov V., Ivanov V., Palamarchuk Y., Sozonov P. and Succi G. (2017). A Tool for Visualizing the Execution of Programs and Stack Traces Especially Suited for Novice Programmers . In Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-250-9, pages 235-240. DOI: 10.5220/0006336902350240


in Bibtex Style

@conference{enase17,
author={Stanislav Litvinov and Marat Mingazov and Vladislav Myachikov and Vladimir Ivanov and Yuliya Palamarchuk and Pavel Sozonov and Giancarlo Succi},
title={A Tool for Visualizing the Execution of Programs and Stack Traces Especially Suited for Novice Programmers},
booktitle={Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},
year={2017},
pages={235-240},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006336902350240},
isbn={978-989-758-250-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 12th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - A Tool for Visualizing the Execution of Programs and Stack Traces Especially Suited for Novice Programmers
SN - 978-989-758-250-9
AU - Litvinov S.
AU - Mingazov M.
AU - Myachikov V.
AU - Ivanov V.
AU - Palamarchuk Y.
AU - Sozonov P.
AU - Succi G.
PY - 2017
SP - 235
EP - 240
DO - 10.5220/0006336902350240