| Русский Русский | English English |
   
Главная Архив номеров
19 | 12 | 2024
10.14489/vkit.2014.07.pp.049-055

DOI: 10.14489/vkit.2014.07.pp.049-055

Олифер Н. О., Сычев О. А.
ВИЗУАЛИЗАЦИЯ СОСТОЯНИЯ ПРОГРАММЫ ПРИ ОБУЧЕНИИ РАБОТЕ СО СТРОКАМИ И ДИНАМИЧЕСКИМИ СТРУКТУРАМИ ДАННЫХ НА ЯЗЫКЕ С
(c. 49-55)

Аннотация. Разработан визуализатор состояния программы в виде графа. Визуализация осуществляется на каждом шаге выполнения программы при ее трассировке в среде разработки MS Visual Studio. Реализован показ анимации выполнения функций работы со строками в языке С. Визуализатор испытан при проведении лабораторных работ и положительно оценен в ходе учебного процесса при анкетировании студентов.

Ключевые слова: визуализация состояния программы; графы; укладка; строки; функции; обучение программированию.

 

Olifer N. O., Sychev O. A.
USING PROGRAM STATE VISUALIZATION IN TEACHING PROGRAMMING STRINGS AND DYNAMIC DATA STRUCTURES IN THE C LANGUAGE
(pp. 49-55)

Abstract. The paper discusses using program state visualization as a help tool in the basic programming education and developed by authors program state visualizer for C++ language. Program state is a complete set of values of local variables and dynamic allocated memory blocks in the given moment of program execution. Visualizer is a standalone program which connects to debugged process and visualizes debugged program state as a graph. In this graph vertexes are variables and dynamic memory blocks, while edges connect pointers and data they points to. Program state graph is laid out on the plane by layered layout algorithm modified for clustered graphs, needed to correctly visualize С/C++ program state.Visualizer interacts with Microsoft Visual Studio IDE and shows state of programs debugged in it. Existing similar visualizer for C/C++ programs “DDD” works for the Unix-based operating systems and contains serious defects. The main problem is DDD not drawing edges to nested vertexes, it creates additional vertexes for them. That leads to duplicated vertexes for one piece of data and may seriously mislead user. It is also quite hard to port DDD on Windows to interact with MS Visual Studio. Visualizer is designed to allow easy improvement in different ways, including external plugins for visualize program state in the it’s domain terms. It is possible to implement interaction with other debuggers, for example GDB. Visualizer can also animate changes in program state graph. It was used for animation of standard C string functions execution  for the ‘Programming Basics’ course. When user steps over a function, graph animates what happens with strings in the memory. Developed visualizer was used in Volgograd State Technical University in the courses ‘Programming Basics’ and ‘Programming’ when teaching dynamic data structures and working with C language strings. In survey students mentioned, that it was particularly useful on debugging code using typical data structures such as linked lists, trees. The most useful animation of string function was animation of strtok. 87 % of the students of ‘Programming’ course give the visualizer highest mark for usefulness in learning dynamic data structures.

Keywords: Program state visualization; Graph; Layout; Strings; Functions; Teaching programming.

Рус

 Н. О. Олифер, О. А. Сычeв (Волгоградский государственный технический университет) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

Eng

N. O. Olifer, O. A. Sychev (Volgograd State Technical University) E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript  

Рус

1. Roberts E. S. Using C in CS1: Evaluating the Stan-ford Experience // SIGCSE’93 Proceedings of the Twenty-fourth SIGCSE Technical Symposium on Computer Science Education, New York, 1993. P. 117 – 121.
2. Software Visualization: The Educational Tool to Enhance Student Learning / M. Čisar [et al.] // MIPRO, 2010 Proceedings of the 33rd International Convention, Opatija, 2010. P. 990 – 994.
3. Kehoe C. M. Rethinking the Evaluation of Algo-rithm Animations as Learning Aids: an Observational Study // International Journal of Human Computer Studies. 1999. V. 54. P. 265 – 284.
4. Helminen J. Jype – a Program Visualization and Programming Exercise Tool for Python // SOFTVIS’10 Proceedings of the 5th International Symposium on Software Visualization, New York, 2010. P. 153 – 162.
5. AnyviewC: A Visual Practice Platform for Data Structures Course / W. Wu [et al.] // Computer Science and Information Engineering, 2009, WRI World Congress on, Los Angeles, 2009. V. 7. P. 493 – 497.
6. Sundararaman J., Back G. HDPV: Interactive, Faithful, In-vivo Runtime State Visualization for C/C++ and Java // SoftVis’08 Proc. of the 4th ACM Sympo¬sium on Software Visualization, New York, 2008. P. 47 – 56.
7. Zeller A. DDD – A Free Graphical Front-End for UNIX Debuggers // ACM SIGPLAN Notices, New York, 1996. V. 31. P. 22 – 27.
8. Eades P. Multilevel Visualization of Clustered Graphs // Proc. of the Symposium on Graph Drawing (GD’96), London, 1997. P. 101 – 112.
9. Касьянов В. Н. Графы в программировании: обработка, визуализация и применение. СПб.: БХВ-Петербург, 2003. 1104 с.
10. Всероссийский интенсив. Онлайн-курс «Основы программирования» [Электронный ресурс]. URL: http://www.youtu.be/tLpvfWqwb20 (дата обращения 16.09.2013)
11. Олифер Н. О. Визуализация структур данных отлаживаемых программ и ее применение при обучении работе с динамическими структурами данных на язы-ке C++ // Известия Волгоградского государственного технического университета. 2012. № 8(111). Вып. 16. С. 91 – 97.
12. Репозиторий проекта SeePP. Bitbucket [Элек-тронный ресурс]. URL: https://www.bitbucket.org/ onoliferon/ seepp/wiki/Home (дата обращения 25.05.2014)

Eng

1. Roberts E. S. (1993). Using C in CS1: Evaluating the Stan¬ford Experience. SIGCSE’93 Proceedings of the Twenty-fourth SIGCSE Technical Symposium on Computer Science Education, New York, pp. 117 – 121.
2. Čisar M. et al. (2010). Software Visualization: The Educational Tool to Enhance Student Learning. MIPRO, 2010 Proceedings of the 33rd International Convention, Opatija, pp. 990 – 994.
3. Kehoe C. M. (1999). Rethinking the evaluation of algorithm animations as learning Aids: an observational study. International Journal of Human Computer Stud-ies, 54, pp. 265-284.
4. Helminen J. (2010). Jype – a Program Visualization and Programming Exercise Tool for Python. SOFTVIS’10 Proceedings of the 5th International Symposium on Software Visualization, New York, pp. 153 – 162.
5. Wu W. et al. (2009). AnyviewC: A Visual Practice Platform for Data Structures Course. Computer Science and Information Engineering. WRI World Congress on, Los Angeles. Vol. 7, pp. 493 – 497.
6. Sundararaman J., Back G. (2008). HDPV: Interac-tive, Faithful, In-vivo Runtime State Visualization for C/C++ and Java. SoftVis’08 Proceedings of the 4th ACM Sympo-sium on Software Visualization, New York, pp. 47 – 56.
7. Zeller A. (1996). DDD – A Free Graphical Front-End for UNIX Debuggers. ACM SIGPLAN Notices, New York. Vol. 31, pp. 22 – 27.
8. Eades P. (1997). Multilevel Visualization of Clus-tered Graphs. Proceedings of the Symposium on Graph Drawing (GD’96), London, pp. 101 – 112.
9. Kas'ianov V. N. (2003). Graphs in programming: processing, visualization, and application. St. Petersburg: BKhV-Peterburg.
10. All-Russian intensive. Online course "Basics of pro-gramming". Available at: http://youtu.be/tLpvfWqwb20 (Accessed 16 September 2013).
11. Olifer N. O. (2012). Visualization of the data structures being debugged programs and its use in training of dynamic data structures in C++. Izvestiia Volgogradskogo gosudarstvennogo tekhnicheskogo universiteta, 111(8), pp. 91-97.
12. Repository of the project SeePP. Bitbucket. Availa-ble at: https://bitbucket.org/onoliferon/seepp/wiki/Home (Accessed 25 May 2014)

Рус

Статью можно приобрести в электронном виде (PDF формат).

Стоимость статьи 250 руб. (в том числе НДС 18%). После оформления заказа, в течение нескольких дней, на указанный вами e-mail придут счет и квитанция для оплаты в банке.

После поступления денег на счет издательства, вам будет выслан электронный вариант статьи.

Для заказа статьи заполните форму:

{jform=1,doi=10.14489/vkit.2014.07.pp.049-055}

.

Eng

This article  is available in electronic format (PDF).

The cost of a single article is 250 rubles. (including VAT 18%). After you place an order within a few days, you will receive following documents to your specified e-mail: account on payment and receipt to pay in the bank.

After depositing your payment on our bank account we send you file of the article by e-mail.

To order articles please fill out the form below:

{jform=2,doi=10.14489/vkit.2014.07.pp.049-055}

 

 

 

 

 

.

.

 

 
Поиск
Rambler's Top100 Яндекс цитирования