CN112133146B - 一种算法练习代码执行可视化系统 - Google Patents

一种算法练习代码执行可视化系统 Download PDF

Info

Publication number
CN112133146B
CN112133146B CN202011099534.6A CN202011099534A CN112133146B CN 112133146 B CN112133146 B CN 112133146B CN 202011099534 A CN202011099534 A CN 202011099534A CN 112133146 B CN112133146 B CN 112133146B
Authority
CN
China
Prior art keywords
student
execution
debugging
code
codes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011099534.6A
Other languages
English (en)
Other versions
CN112133146A (zh
Inventor
李博学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Zhiyi Technology Co ltd
Original Assignee
Tianjin Zhiyi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Zhiyi Technology Co ltd filed Critical Tianjin Zhiyi Technology Co ltd
Priority to CN202011099534.6A priority Critical patent/CN112133146B/zh
Publication of CN112133146A publication Critical patent/CN112133146A/zh
Application granted granted Critical
Publication of CN112133146B publication Critical patent/CN112133146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/08Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • G06Q50/205Education administration or guidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers

Abstract

本发明提供了一种算法练习代码执行可视化系统,包括后台服务器端、学生端和教师端,所述后台服务器端、学生端和教师端均可以通过数据进行连通传输数据,包括:学生根据教师端指示,选择任意后台服务器端存储的算法,所选择得到的算法在学生端执行可视化演示,所述后台服务器端、学生端和教师端共同协同完成算法练习可视化演示。本发明系能监控执行过程的平台,并且将执行过程变成逐帧动画,学生就能通过动画理解代码执行过程,对比不同的解决方案的不同效果,对于计算机类院系学生学习并理解算法有明显帮助。

Description

一种算法练习代码执行可视化系统
技术领域
本发明涉及可视化教育应用技术领域,更具体地说,尤其涉及学生学习使用的一种算法练习代码执行可视化系统。
背景技术
现有技术的学生教育可视化系统中,如在线编程判题网站,核心功能:网站里提供题库,编写代码,将代码上传后在云端执行,执行时输入标准测试数据,等待用户的代码算出答案,将用户代码的答案用来对比标准答案,给用户的代码打分,其利用云端虚拟技术,云端只进行了代码的编译和执行,对比执行结果学生只能看到代码的执行结果,让代码在云端执行时安全可控,不会让云端服务器受恶意代码影响,目的只在意学生代码的执行结果,不在意执行过程,学生无法获得代码执行的过程中,代码在内存中的值;而国外算法可视化网站(如https://www.cs.usfca.edu),学生只能查看算法执行过程,学生不能自己写代码,同时看到自己代码的执行效果。
发明内容
针对现有技术的上述缺陷和问题,本发明提供一种算法练习代码执行可视化系统。
为了达到上述目的,本发明提供如下技术方案:
一种算法练习代码执行可视化系统,包括后台服务器端、学生端和教师端,所述后台服务器端、学生端和教师端均可以通过数据进行连通传输数据,包括:学生根据教师端指示,选择任意后台服务器端存储的算法,所选择得到的算法在学生端执行可视化演示,所述后台服务器端、学生端和教师端共同协同完成算法练习可视化演示。
所述后台服务器端包括调试控制器,完成执行过程追踪,接收学生提交的代码以及定义要在内存中追踪的变量值,检查学生代码对于系统的威胁,限制学生代码执行占用的内存空间,限制执行时间,以调试的方式控制学生代码的执行过程,收集执行过程中的信息,所述调试控制器,基于代码编译调试软件作为基础,编译学生的代码,然后逐步执行,处理执行过程中的意外,根据调试器返回的信息动态设定调试流程;
所述学生端完成每一个算法题目的模拟数据生成方式、学生自定义数据的检查、代码执行过程追踪计划、每一阶段的执行结果显示方案、结果统计方案都是定制代码可储存到云端数据库,在web端执行的时候提取出来执行,题目定制中的显示方案得到的代码放到echarts里出现结果,代码执行中间状态动画过程。解析代码执行结果,渲染成逐帧数据,在echarts里形成逐帧动画,并能够实现动画的开始、暂停、跳帧,执行过程的控制台输出,与动画过程同步进行文字输出,描述学生代码执行过程;
所述教师端可以自己定制新的算法,并加入数据库,查看学生的提交情况,可以给学生布置作业。
上述技术方案中,在后台服务器端,任务队列接收到学生端发来的任务请求,任务请求里除了学生代码还有任务配置,任务配置包括:代码语言、允许占用的最大内存、允许执行的最多时间、需要跟踪的代码内容和追踪方式、回调链接;守护进程将任务分配给空闲的执行管理器。
上述技术方案中,所述执行管理器根据不同的编程语言,选择不同的编译器、调试器、调试管理器、分析器,执行管理器发送指令,完成学生代码的编译,如果发生编译错误,直接将错误信息发送到通知模块,执行管理器将编译好的内容交给调试管理器。
上述技术方案中,所述调试管理器发起调试命令,根据任务配置中要追踪的代码内容决定程序断点,然后开始执行,执行过程中,调试管理器通过调试器的返回内容识别出程序中断状态,将中断之前调试器反馈的信息提交给分析器。
上述技术方案中,所述分析器参考反馈信息和追踪相关的配置,决定下一步调试指令或者完成调试提交分析结果,结束调试有顺利完成、出错这两种情况,调试管理器将执行结果提交给执行管理器,执行管理器转给通知模块,通知模块将执行结果通过回调链接发送回业务端。
本发明系能监控执行过程的平台,并且将执行过程变成逐帧动画,学生就能通过动画理解代码执行过程,对比不同的解决方案的不同效果,对于计算机类院系学生学习并理解算法有明显帮助。
具体实施方式
下面将结合本发明的实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下以具体的具体模拟实施例说明本发明的技术方案:
作为本发明实施例一种算法练习代码执行可视化系统,包括后台服务器端、学生端和教师端,所述后台服务器端、学生端和教师端均可以通过数据进行连通传输数据,包括:学生根据教师端指示,选择任意后台服务器端存储的算法,所选择得到的算法在学生端执行可视化演示,所述后台服务器端、学生端和教师端共同协同完成算法练习可视化演示。
后台服务器端包括调试控制器,完成执行过程追踪,接收学生提交的代码以及定义要在内存中追踪的变量值,检查学生代码对于系统的威胁,限制学生代码执行占用的内存空间,限制执行时间,以调试的方式控制学生代码的执行过程,收集执行过程中的信息,所述调试控制器,基于代码编译调试软件作为基础,编译学生的代码,然后逐步执行,处理执行过程中的意外,根据调试器返回的信息动态设定调试流程;
学生端完成每一个算法题目的模拟数据生成方式、学生自定义数据的检查、代码执行过程追踪计划、每一阶段的执行结果显示方案、结果统计方案都是定制代码可储存到云端数据库,在web端执行的时候提取出来执行,题目定制中的显示方案得到的代码放到echarts里出现结果,代码执行中间状态动画过程。解析代码执行结果,渲染成逐帧数据,在echarts里形成逐帧动画,并能够实现动画的开始、暂停、跳帧,执行过程的控制台输出。与动画过程同步进行文字输出,描述学生代码执行过程;
教师端可以自己定制新的算法,并加入数据库,查看学生的提交情况,可以给学生布置作业。
具体使用为:
学生端:
1.学生选择一个要做实验的问题,打开。
2.打开后学生可以生成测试数据。包含随机生成测试数据,自定义数据等。
3.生成测试数据后,右侧生成部分已经写好的代码,左侧生成了测试数据的图像。
4.学生在写好的代码中插入核心的算法代码,提交执行。
5.等待一段时间,服务器计算好了执行结果,开始生成逐帧动画,每一帧是学生算法的一个关键步骤。学生看到动画细节,同时也能看到对应的文字记录。
6.可以进行动画播放控制,一帧一帧地观察自己的代码的执行效果。
7.学生也可以查看自己的代码执行后的情况,下载统计图放入实验报告。统计图中包含代码执行前和执行后数据的样子,学生代码关键步骤的执行次数,方便老师评估学生代码的质量。
二.学生端程序流程
1.当学生打开一个实验问题,从数据库里得到这个问题的细节设置数据,然后前端通过js进行渲染。
2.当学生生成测试数据,通过给每个问题定制的数据生成代码在前端生成。
3.右侧写好的代码,是根据每个问题定制的规则,结合生成的测试数据得到的。
4.学生补充完代码提交代码,根据每个问题定制的规则确定哪些是关键步骤,并将关键步骤信息和代码一起提交给服务器。
5.服务器备份学生代码到数据库,并将临时任务状态信息放入redis。
6.服务器调用编译器编译学生代码。
7.服务器以调试的方式在关键步骤位置,获取学生代码执行的中间状态,并放入返回结果中。
8.前端收到服务器发来的执行结果,根据每个问题定制的规则渲染成图像,每一步的过程的图像串联起来就是逐帧动画。
9.学生通过前端的控制按钮控制动画,实际上就是控制渲染的图像的出现过程。
10.学生查看统计结果,根据每个问题定制的规则,结合执行结果中的数据,生成统计图。
下面以红黑树教学说明本发明的实施例,红黑树是大学算法教学的难点。
红黑树的关键操作,包含节点间建立关系、节点上色、节点间删除关系等。
在学生端给学生提供模版代码,模版代码里包含这些操作,学生只需要在模版代码中指定的位置写好操作代码,即可完成代码的编写。
学生写好算法操作代码后点击提交,学生端把学生插入的代码和所选模版提交到后台服务器端,后台服务器端结合存在数据库里的模版补全代码,从数据库获取信息,关于这个模版里哪些内容要被追踪在红黑树的模版代码里,如关键点(1)左、右节点建立关系;(2)删除关系;(3)节点上色,这三个操作会被追踪,后台服务器端将要最终的信息、代码以及其它信息打包给代码执行服务端,以及在数据库和redis做记录。
代码执行后台服务器端接受到http请求,将任务放到任务队列,当发现有空闲的执行管理器时,就开始执行。
学生的C++代码执行的第一步,是调用C++编译器编译成二进制程序,如果没有编译错误,就开始调试。
调试管理器调试的方式是:向调试器发送命令加载二进制程序,然后用命令标记好要追踪的内容,然后下命令调试器开始执行。调试器执行到对应的位置会输出一些信息,这些信息包含无用信息、变量信息、错误信息、程序结束通知、程序暂停信息等等。调试器将这些信息给到分析器,分析器判断哪些信息需要记录,要记录的信息是要追踪的内容。然后分析器决定下一步是否结束调试,如果不结束下一步应该发什么指令给调试器。
完成调试任务或发生错误时,调试管理器将记录的内容通过执行管理器发送给通知中心。记录内容包含关键操作的执行情况,比如红黑树中记录的信息包含:值为3的点成为值为5的点的左子节点;将值为6的点变成红色。
通知中心通过http的POST请求,将结果发送回后台服务器端,后台服务器端将结果写入数据库和redis。
学生端通过订阅redis,得到执行过程中的结果,就能渲染动画还原整个红黑树建立、修改的过程,每一个算法的渲染方式都是定制的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (5)

1.一种算法练习代码执行可视化系统,其特征在于:包括后台服务器端、学生端和教师端,所述后台服务器端、学生端和教师端均可以通过数据进行连通传输数据,包括:学生根据教师端指示,选择任意后台服务器端存储的算法,所选择得到的算法在学生端执行可视化演示,所述后台服务器端、学生端和教师端共同协同完成算法练习可视化演示;
所述后台服务器端包括调试控制器,完成执行过程追踪,接收学生提交的代码以及定义要在内存中追踪的变量值,检查学生代码对于系统的威胁,限制学生代码执行占用的内存空间,限制执行时间,以调试的方式控制学生代码的执行过程,收集执行过程中的信息,所述调试控制器,基于代码编译调试软件作为基础,编译学生的代码,然后逐步执行,处理执行过程中的意外,根据调试器返回的信息动态设定调试流程;
所述学生端完成每一个算法题目的模拟数据生成方式、学生自定义数据的检查、代码执行过程追踪计划、每一阶段的执行结果显示方案、结果统计方案都是定制代码可储存到云端数据库,在web端执行的时候提取出来执行,题目定制中的显示方案得到的代码放到echarts里出现结果,代码执行中间状态动画过程,解析代码执行结果,渲染成逐帧数据,在echarts里形成逐帧动画,并能够实现动画的开始、暂停、跳帧,执行过程的控制台输出,与动画过程同步进行文字输出,描述学生代码执行过程;
所述教师端可以自己定制新的算法,并加入数据库,查看学生的提交情况,可以给学生布置作业。
2.根据权利要求1所述一种算法练习代码执行可视化系统,其特征在于:在后台服务器端,任务队列接收到学生端发来的任务请求,任务请求里除了学生代码还有任务配置,任务配置包括:代码语言、允许占用的最大内存、允许执行的最多时间、需要跟踪的代码内容和追踪方式、回调链接;守护进程将任务分配给空闲的执行管理器。
3.根据权利要求2所述一种算法练习代码执行可视化系统,其特征在于:所述执行管理器根据不同的编程语言,选择不同的编译器、调试器、调试管理器、分析器,执行管理器发送指令,完成学生代码的编译,如果发生编译错误,直接将错误信息发送到通知模块,执行管理器将编译好的内容交给调试管理器。
4.根据权利要求3所述一种算法练习代码执行可视化系统,其特征在于:所述调试管理器发起调试命令,根据任务配置中要追踪的代码内容决定程序断点,然后开始执行,执行过程中,调试管理器通过调试器的返回内容识别出程序中断状态,将中断之前调试器反馈的信息提交给分析器。
5.根据权利要求4所述一种算法练习代码执行可视化系统,其特征在于:所述分析器参考反馈信息和追踪相关的配置,决定下一步调试指令或者完成调试提交分析结果,结束调试有顺利完成、出错这两种情况,调试管理器将执行结果提交给执行管理器,执行管理器转给通知模块,通知模块将执行结果通过回调链接发送回业务端。
CN202011099534.6A 2020-10-14 2020-10-14 一种算法练习代码执行可视化系统 Active CN112133146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011099534.6A CN112133146B (zh) 2020-10-14 2020-10-14 一种算法练习代码执行可视化系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011099534.6A CN112133146B (zh) 2020-10-14 2020-10-14 一种算法练习代码执行可视化系统

Publications (2)

Publication Number Publication Date
CN112133146A CN112133146A (zh) 2020-12-25
CN112133146B true CN112133146B (zh) 2022-05-27

Family

ID=73854093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011099534.6A Active CN112133146B (zh) 2020-10-14 2020-10-14 一种算法练习代码执行可视化系统

Country Status (1)

Country Link
CN (1) CN112133146B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800011A (zh) * 2021-01-20 2021-05-14 王铭东 一种对比式在线编程教学方法
CN112883035B (zh) * 2021-03-04 2023-05-19 中山大学 一种面向方面的算法可视化方法及系统
CN113643579A (zh) * 2021-08-12 2021-11-12 北京思明启创科技有限公司 一种在线课堂交互的方法、系统、装置、设备和介质
CN114115003B (zh) * 2021-11-12 2023-08-22 浙江银盾云科技有限公司 远程启停控制平台

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282699B1 (en) * 1999-02-23 2001-08-28 National Instruments Corporation Code node for a graphical programming system which invokes execution of textual code
CN104503793A (zh) * 2014-12-24 2015-04-08 风腾科技(北京)有限公司 代码练习软件中代码的运行和图形化的解析方法
CN104636143A (zh) * 2015-02-12 2015-05-20 天津职业技术师范大学 一种用于c语言教学的电子展示装置及其控制方法
CN106021094A (zh) * 2016-04-29 2016-10-12 南京慕测信息科技有限公司 一种基于程序静态分析的Java单元测试教学反馈方法
CN107391222A (zh) * 2017-08-14 2017-11-24 广东工业大学 一种过程可视化的代码执行方法及装置
US20200357301A1 (en) * 2017-12-29 2020-11-12 Rose River Software, Llc Interactive Learning Tool
CN108628608A (zh) * 2018-04-16 2018-10-09 朗新科技股份有限公司 一种数据可视化的方法及装置
WO2020077326A1 (en) * 2018-10-12 2020-04-16 Code Walker L.L.C. Annotated method for computer code mapping and visualization
CN109408077B (zh) * 2018-10-23 2022-04-22 嘉兴南洋职业技术学院 一种基于虚拟机的高校实训软件快速部署方法
CN110111648A (zh) * 2019-04-17 2019-08-09 吉林大学珠海学院 一种编程训练系统及方法
CN110533969B (zh) * 2019-08-05 2022-03-29 深圳市编玩边学教育科技有限公司 一种编程教学端及系统
CN110544399A (zh) * 2019-08-30 2019-12-06 高勇 图形化远程教学系统以及图形化远程教学方法
CN110908710B (zh) * 2019-11-19 2023-08-29 天津大学 一种Web前端代码依赖关系可视化方法

Also Published As

Publication number Publication date
CN112133146A (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN112133146B (zh) 一种算法练习代码执行可视化系统
EP1236104B1 (en) Method for computer-assisted testing of software application components
Corbett et al. LISP intelligent tutoring system: Research in skill acquisition
US4772206A (en) Multi-mode teaching simulator
US4696003A (en) System for testing interactive software
US6061643A (en) Method for defining durable data for regression testing
CN112596731B (zh) 一种融合智能教育的编程教学系统及方法
Chung et al. Computational thinking in augmented reality: An investigation of collaborative debugging practices
CN110633072B (zh) 一种可供自动批改的编程训练题目构造方法及装置
Maicus et al. Autograding interactive computer graphics applications
Carter An intelligent debugging tutor for novice computer science students
Eicher et al. Toward mutual theory of mind as a foundation for co-creation
CN110928536A (zh) 一种图形化编程作品在线评测装置、系统及方法
CA1267229A (en) Reconfigurable automatic tasking system
Chou et al. An educational tool for visualizing students' program tracing processes
Ma et al. HypoCompass: Large-Language-Model-based Tutor for Hypothesis Construction in Debugging for Novices
Hundhausen et al. Can direct manipulation lower the barriers to programming and promote positive transfer to textual programming? An experimental study
McCabe et al. Visual Cues in Compiler Conversations
Lienard et al. Extracting unit tests from patterns mined in student code to provide improved feedback in autograders
Krichevsky et al. E-TRIALS
Fonte et al. Partial correctness and continuous integration in computer supported education
Fleming et al. Debugging concurrent software: A study using multithreaded sequence diagrams
Costa et al. Automated Assessment of Simple Web Applications
Barbosa et al. An experience on applying learning mechanisms for teaching inspection and software testing
Yang JavelinaCode: A Web-Based Object-Oriented Programming Environment with Static and Dynamic Visualization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant