CN113903219A - 一种编程教学的展示方法、装置、电子设备及存储介质 - Google Patents
一种编程教学的展示方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113903219A CN113903219A CN202111386670.8A CN202111386670A CN113903219A CN 113903219 A CN113903219 A CN 113903219A CN 202111386670 A CN202111386670 A CN 202111386670A CN 113903219 A CN113903219 A CN 113903219A
- Authority
- CN
- China
- Prior art keywords
- program code
- execution result
- virtual container
- programming
- virtual
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/0053—Computers, e.g. programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Entrepreneurship & Innovation (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种编程教学的展示方法、装置、电子设备及存储介质。编程教学的展示方法包括:获取待执行的用于编程教学的程序代码;对所述程序代码进行解析并将解析后的程序代码发送至服务端;获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果并对所述执行结果进行展示。本申请实施例中,在获取待执行的用于编程教学的程序代码后,对程序代码进行解析并发送至服务端,再从服务端获取采用虚拟机上的虚拟容器获得的程序代码的执行结果,进而对执行结果进行展示。通过虚拟机上的虚拟容器直接执行待执行的程序代码,并对执行结果进行显示,从而在编程教学过程中直接展示程序代码的执行结果,提高了编程教学的效率。
Description
技术领域
本申请属于编程教学技术领域,涉及一种编程教学的展示方法、装置、电子设备及存储介质。
背景技术
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。编程是一种重要而且基础的计算机技术,针对编程的教学越来越受到人们的重视。
由于教学中设备条件的限制,如果要在编程教学过程中执行代码通常需要很长时间,因而编程教学通常采用传统的教学方式如幻灯片(Powerpoint,PPT)和图片教学,教师基于ppt或图片中展示的程序代码及其执行结果对教学内容进行讲解。然而,使用PPT或者图片只能展示预先确定的程序代码及其执行结果,无法灵活的调整程序代码并获取新的执行结果,这导致编程教学效率低下。
发明内容
有鉴于此,本申请提供一种编程教学的展示方法、装置、电子设备及存储介质,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种编程教学的展示方法,包括:获取待执行的用于编程教学的程序代码;对所述程序代码进行解析,并将解析后的程序代码发送至服务端;获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
在另一种可选的实施例中,所述获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示,包括:令所述服务端对所述程序代码设置任务标识,所述任务标识表明一次代码任务执行一个事务操作;根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码;获得并展示所述解析后的程序代码的执行结果。
在另一种可选的实施例中,所述根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码,包括:获得所述程序代码所使用的编程语言,并标识所述编程语言;根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行。
在另一种可选的实施例中,所述根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行,包括:根据不同的编程语言选择对应的虚拟机;所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果。
在另一种可选的实施例中,所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果,还包括:如所述虚拟容器执行超时,则返回超时执行结果并停止所述虚拟容器的执行。
在另一种可选的实施例中,所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果,还包括:如所述虚拟容器执行完对应的任务,则销毁所述虚拟容器。
在另一种可选的实施例中,所述获得并展示所述解析后的程序代码的执行结果,包括:通过长连接消息组件获得所述各虚拟容器的执行结果,并将所述执行结果进行展示。
根据本申请实施例的第二方面,提供了一种编程教学的展示装置,包括:代码获取模块,用于获取待执行的用于编程教学的程序代码;解析发送模块,用于对所述程序代码进行解析,并将解析后的程序代码发送至服务端;执行展示模块,用于获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
在另一种可选的实施例中,所述执行展示模块包括:标识模块,用于令所述服务端对所述程序代码设置任务标识,所述任务标识表明一次代码任务执行一个事务操作;执行模块,用于根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码;展示模块,获得并展示所述解析后的程序代码的执行结果。
在另一种可选的实施例中,在所述根据所述任务标识在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码中,所述执行模块进一步用于:获得所述程序代码所使用的编程语言,并标识所述编程语言;根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行。
在另一种可选的实施例中,在根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行中,所述执行模块进一步用于:根据不同的编程语言选择对应的虚拟机;所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果。
在另一种可选的实施例中,所述执行模块还用于:如所述虚拟容器执行超时,则返回超时执行结果并停止所述虚拟容器的执行。
在另一种可选的实施例中,所述执行模块还用于:如所述虚拟容器执行完对应的任务,则销毁所述虚拟容器。
在另一种可选的实施例中,在所述获得并展示所述解析后的程序代码的执行结果中,所述展示模块进一步用于:通过长连接消息组件获得所述各虚拟容器的执行结果,并将所述执行结果进行展示。
根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据本申请实施例第一方面所述的方法。
根据本申请实施例的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本申请实施例第一方面所述的方法。
根据本申请实施例的第五方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现本申请实施例第一方面所述的方法。
本申请实施例提供的方案中,在获取待执行的用于编程教学的程序代码后,对程序代码进行解析并发送至服务端,再从服务端获取采用虚拟机上的虚拟容器获得的程序代码的执行结果,进而对执行结果进行展示。本申请通过虚拟机上的虚拟容器直接执行待执行的程序代码,并对执行结果进行显示,从而在编程教学过程中可以直接展示程序代码的执行结果,提高了编程教学的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请示例性实施例提供的一种编程教学的展示方法流程图;
图2为本申请示例性实施例提供的编程教学的展示方法的示意图;
图3为本申请又一示例性实施例提供的编程教学的展示方法的示意图;
图4为本申请又一示例性实施例的编程教学的展示方法流程图;
图5为本申请又一示例性实施例的编程教学的展示方法流程图;
图6为本申请又一示例性实施例的编程教学的展示方法流程图;
图7为本申请示例性实施例提供的一种编程教学的展示装置结构示意图;
图8为本申请又一示例性实施例提供的编程教学的展示装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语:“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
根据本申请实施例的第一方面,如图1所示,本申请示例性实施例提供一种编程教学的展示方法,包括以下步骤:
S120,获取待执行的用于编程教学的程序代码。
所述程序代码从前端获取,示例性的,前端可以是教师端的电脑等设备,用于编程教学的程序代码可以是从前端直接编写输入的代码,也可以是从通过移动存储设备输入前端的。程序代码可以是Java、C语言、C++或Python等各种编程语言的代码,本申请对此不做限定。
S140,对所述程序代码进行解析,并将解析后的程序代码发送至服务端。
程序代码进行代码解析成为字符串并传输至服务端。各种编程语言的代码都可以解析成用于传输的字符串。
S160,获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
虚拟技术是一种通过组合或分区现有的计算机资源(CPU、内存、磁盘空间等),使得这些资源表现为一个或多个操作环境,从而提供优于原有资源配置的访问方式的技术。虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。虚拟容器(Docker)是一种新的虚拟化技术,虚拟容器可以直接与主操作系统进行通信,而不需要单独的操作系统,多个虚拟容器之间互相隔离,互不影响。虚拟容器可以在数毫秒内启动,由于没有臃肿的从操作系统,虚拟容器还可以节省大量的系统资源。
虚拟机和虚拟容器依赖于宿主机才能运行。宿主机可以是笔记本、数据中心的物理服务端,也可以是各种云服务端。
本申请实施例提供的方案中,在获取待执行的用于编程教学的程序代码后,对程序代码进行解析并发送至服务端,再从服务端获取采用虚拟机上的虚拟容器获得的程序代码的执行结果,进而对执行结果进行展示。本申请通过虚拟机上的虚拟容器直接执行待执行的程序代码,并对执行结果进行显示,从而在编程教学过程中可以直接展示程序代码的执行结果,提高了编程教学的效率。
具体地,如图2-3所示,前端可以通过接收编写输入或存储器输入的程序代码,程序代码经过解析后发送至服务端,服务端通过虚拟机上的虚拟容器执行程序代码得到程序代码的执行结果,将执行结果返回并展示完成编程教学的展示过程。
如图4所示,在另一种可选的实施例中,所述步骤S160包括:
S262,令所述服务端对所述程序代码设置任务标识,所述任务标识表明一次代码任务执行一个事务操作。
服务端使用一个任务标识(taskID)来标识执行一次代码任务的程序代码,不同的事务操作的代码拥有不同的任务标识。
S264,根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码。
虚拟机针对不同的代码任务生成对应的虚拟容器,根据任务标识在对应的虚拟容器中执行解析后的程序代码。
S266,获得并展示所述解析后的程序代码的执行结果。
虚拟容器完成代码任务后,服务端将执行结果返回给教师端,并展示给学生,完成编程教学的展示过程。
在这种实施例中,服务端对程序代码设置任务标识,根据任务标识在虚拟机上的虚拟容器中执行对应的程序代码以完成对应的事务操作,通过不同的虚拟容器执行不同的代码任务,保证代码任务所对应事务操作的实现,进一步提高编程教学的效果。
如图5所示,在另一种可选的实施例中,所述步骤S264包括:
S3641,获得所述程序代码所使用的编程语言,并标识所述编程语言。
获得所述程代码后,可以根据文件的后缀名来确定程序代码所使用的编程语言。比如文件后缀名时“.java”,则其编程语言是Java;后缀名是“.cs”,则其编程语言是C语言;后缀名是“.py”,则其编程语言是Python。在此不再一一列举。
通过文件的后缀名来确定程序代码所使用的编程语言,可以简便地标识,程序代码所使用的编程语言,易于操作。
S3642,根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行。
针对不同的编程语言可以采用对应的虚拟机。示例性的,对应于程序代码的任务标识,虚拟机也可以带有虚拟机标识,保证不同编程语言的程序代码和相应的虚拟机对应。根据任务标识将程序代码挂在到对应的虚拟机中的虚拟容器上进行不同程序代码的执行。
在这种实施例中,根据程序代码所使用的编程语言采用对应的虚拟机,可以更有效合理地执行程序代码,也进一步提高编程教学的效果。
示例性的,一种编程语言的多个程序代码可以对应一个虚拟机上的多个虚拟容器,也可以对应多个虚拟机上的虚拟容器。根据程序代码的数量和编程语言的数量确定即可,简单来说,当只有一种或少量的编程语言时,可以将同一种编程语言的不同程序代码在不同虚拟机中的虚拟容器上执行。这可以进一步提高程序代码的执行效率。
如图6所示,在另一种可选的实施例中,所述步骤S3642包括:
S46421,根据不同的编程语言选择对应的虚拟机。
后台服务端可以针对不同的编程语言设置多个虚拟机,在确定编程语言的类型后,根据编程语言的类型选择对应的虚拟机。
S46422,所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果。
轮询(Polling)是一种处理器决策如何提供周边设备服务的方式,又称“程控输入输出”(Programmed I/O)。轮询法的概念是:由处理器定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。
虚拟机通过轮训方式查询虚拟容器中程序代码的执行情况,可以确保每个虚拟容器中的程序代码都能尽快得到执行,从而尽快取得程序代码的执行结果。
在另一种可选的实施例中,所述步骤S46422还包括:
如所述虚拟容器执行超时,则返回超时执行结果并停止所述虚拟容器的执行。
程序代码有误或其他情况导致虚拟容器无法执行时,如果虚拟容器一直处于工作状态,将持续消耗资源。在这种实施例中,如果虚拟容器发生执行超时的情况,可以返回超时执行结果给虚拟机,并停止执行,从而可以避免不必要的资源消耗。
在另一种可选的实施例中,所述步骤S46422还包括:
如所述虚拟容器执行完对应的任务,则销毁所述虚拟容器。
虚拟容器执行完对应的任务后对其进行销毁。这种实施方式可以进一步节省系统资源,避免不必要的消耗。服务端在收到新的执行任务后可以重新在对应的虚拟机中生成新的虚拟容器。
在另一种可选的实施例中,所述步骤S266包括:
通过长连接消息组件获得所述各虚拟容器的执行结果,并将所述执行结果进行展示。
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议。HTTP可以使用短连接或长连接。短连接是指客户端和服务端每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。长连接(keep-alive connection,或persistentconnection)则是指在一段时间内保持存在的连接方式。
通过长连接消息组件,可以保持虚拟机和服务端的连接状态,而不用在发送程序代码时建立一次连接,在获取执行结果时建立一次连接,从而更高效地获得各虚拟容器的执行结果。
长连接的保持时间太长会导致资源过度消耗,太短又会影响执行结果的返回效率,具体可以根据程序代码的复杂程度确定,或根据执行时间的历史数据确定。
根据本申请实施例的第二方面,如图7所示,本申请示例性实施例提供一种编程教学的展示装置,包括:
代码获取模块510,用于获取待执行的用于编程教学的程序代码。
所述程序代码从前端获取,示例性的,前端可以是教师端的电脑等设备,用于编程教学的程序代码可以是从前端直接编写输入的代码,也可以是从通过移动存储设备输入前端的。程序代码可以是Java、C语言、C++或Python等各种编程语言的代码,本申请对此不做限定。
解析发送模块520,用于对所述程序代码进行解析,并将解析后的程序代码发送至服务端。
程序代码进行代码解析成为字符串并传输至服务端。各种编程语言的代码都可以解析成用于传输的字符串。
执行展示模块530,用于获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
虚拟技术是一种通过组合或分区现有的计算机资源(CPU、内存、磁盘空间等),使得这些资源表现为一个或多个操作环境,从而提供优于原有资源配置的访问方式的技术。虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。虚拟容器(Docker)是一种新的虚拟化技术,虚拟容器可以直接与主操作系统进行通信,而不需要单独的操作系统,多个虚拟容器之间互相隔离,互不影响。虚拟容器可以在数毫秒内启动,由于没有臃肿的从操作系统,虚拟容器还可以节省大量的系统资源。
虚拟机和虚拟容器都依赖于宿主机才能运行。宿主机可以是笔记本、数据中心的物理服务端,也可以是各种云服务端。
本申请实施例提供的方案中,在获取待执行的用于编程教学的程序代码后,对程序代码进行解析并发送至服务端,再从服务端获取采用虚拟机上的虚拟容器获得的程序代码的执行结果,进而对执行结果进行展示。本申请通过虚拟机上的虚拟容器直接执行待执行的程序代码,并对执行结果进行显示,从而在编程教学过程中可以直接展示程序代码的执行结果,提高了编程教学的效率。
具体地,如图2-3所示,前端可以通过接收编写输入或存储器输入的程序代码,程序代码经过解析后发送至服务端,服务端通过虚拟机上的虚拟容器执行程序代码得到程序代码的执行结果,将执行结果返回并展示完成编程教学的展示过程。
如图8所示,在另一种可选的实施例中,所述执行展示模块530包括:
标识模块631,用于令所述服务端对所述程序代码设置任务标识,所述任务标识表明一次代码任务执行一个事务操作。
服务端使用一个taskID来标识每一个程序代码,不同的程序代码拥有不同的taskID。
执行模块632,用于根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码。
虚拟机针对不同的代码任务生成对应的虚拟容器,根据任务标识在对应的虚拟容器中执行代码任务中解析后的程序代码。
展示模块633,获得并展示所述解析后的程序代码的执行结果。
虚拟容器完成代码任务后,服务端将执行结果返回给前端,并展示给学生,完成编程教学的展示过程。
在这种实施例中,服务端对程序代码设置任务标识,根据任务标识在虚拟机上的虚拟容器中执行对应的程序代码,可以更方便准确地同时执行多个程序代码,进一步提高编程教学的效果。
需要注意的是,在本申请中编程教学的展示装置还可以包括其他模块或单元用于执行本公开第一方面示意性实施例中的其他方法或步骤,在此不再赘述。
根据本申请实施例的第三方面,本申请示例性实施例提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据本申请实施例第一方面所述的方法。
根据本申请实施例的第四方面,本申请示例性实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本申请实施例第一方面所述的方法。
根据本申请实施例的第五方面,本申请示例性实施例提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现本申请实施例第一方面所述的方法。
以上实施例仅仅是对本发明可行的实施方式的具体说明,不应作为对本发明保护范围的限制。凡属本申请技术方案思想而做出的等效或变更方案均包含于本发明的保护范围之内,例如特征或步骤的分割、重组等。
Claims (10)
1.一种编程教学的展示方法,包括:
获取待执行的用于编程教学的程序代码;
对所述程序代码进行解析,并将解析后的程序代码发送至服务端;
获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
2.根据权利要求1所述的编程教学的展示方法,其特征在于,所述获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示,包括:
令所述服务端对所述程序代码设置任务标识,所述任务标识表明一次代码任务执行一个事务操作;
根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码;
获得并展示所述解析后的程序代码的执行结果。
3.根据权利要求2所述的编程教学的展示方法,其特征在于,所述根据所述任务标识,在所述虚拟机所对应的虚拟容器中执行所述解析后的程序代码,包括:
获得所述程序代码所使用的编程语言,并标识所述编程语言;
根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行。
4.根据权利要求3所述的编程教学的展示方法,其特征在于,所述根据所述编程语言采用对应的虚拟机,根据所述任务标识将所述程序代码挂载到对应的虚拟容器上进行对不同编程语言的执行,包括:
根据不同的编程语言选择对应的虚拟机;
所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果。
5.根据权利要求4所述的编程教学的展示方法,其特征在于,所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果,还包括:
如所述虚拟容器执行超时,则返回超时执行结果并停止所述虚拟容器的执行。
6.根据权利要求4所述的编程教学的展示方法,其特征在于,所述虚拟机通过轮询方式查询各任务标识对应的虚拟容器中所述程序代码的执行情况,并通过所述虚拟容器的返回值获得执行结果,还包括:
如所述虚拟容器执行完对应的任务,则销毁所述虚拟容器。
7.根据权利要求2所述的编程教学的展示方法,其特征在于,所述获得并展示所述解析后的程序代码的执行结果,包括:
通过长连接消息组件获得所述各虚拟容器的执行结果,并将所述执行结果进行展示。
8.一种编程教学的展示装置,包括:
代码获取模块,用于获取待执行的用于编程教学的程序代码;
解析发送模块,用于对所述程序代码进行解析,并将解析后的程序代码发送至服务端;
执行展示模块,用于获得所述服务端通过虚拟机上的虚拟容器执行所述程序代码所获得的执行结果,并对所述执行结果进行展示。
9.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386670.8A CN113903219A (zh) | 2021-11-22 | 2021-11-22 | 一种编程教学的展示方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111386670.8A CN113903219A (zh) | 2021-11-22 | 2021-11-22 | 一种编程教学的展示方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113903219A true CN113903219A (zh) | 2022-01-07 |
Family
ID=79194999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111386670.8A Pending CN113903219A (zh) | 2021-11-22 | 2021-11-22 | 一种编程教学的展示方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113903219A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073904A1 (en) * | 2002-10-15 | 2004-04-15 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
CN103150694A (zh) * | 2013-02-05 | 2013-06-12 | 北京优才创智科技有限公司 | 一种远程教学数据的处理方法和装置 |
CN106919445A (zh) * | 2015-12-28 | 2017-07-04 | 华为技术有限公司 | 一种在集群中并行调度容器的方法和装置 |
CN110377409A (zh) * | 2019-07-12 | 2019-10-25 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、设备和介质 |
CN110704177A (zh) * | 2019-09-04 | 2020-01-17 | 金蝶软件(中国)有限公司 | 计算任务处理方法、装置、计算机设备和存储介质 |
CN111033468A (zh) * | 2019-03-26 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 实施不同类型的区块链合约的系统和方法 |
CN113110930A (zh) * | 2021-05-13 | 2021-07-13 | 深圳市凌雀智能科技有限公司 | 决策问题的云化解决方法、系统、服务器及存储介质 |
-
2021
- 2021-11-22 CN CN202111386670.8A patent/CN113903219A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073904A1 (en) * | 2002-10-15 | 2004-04-15 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
CN103150694A (zh) * | 2013-02-05 | 2013-06-12 | 北京优才创智科技有限公司 | 一种远程教学数据的处理方法和装置 |
CN106919445A (zh) * | 2015-12-28 | 2017-07-04 | 华为技术有限公司 | 一种在集群中并行调度容器的方法和装置 |
CN111033468A (zh) * | 2019-03-26 | 2020-04-17 | 阿里巴巴集团控股有限公司 | 实施不同类型的区块链合约的系统和方法 |
CN110377409A (zh) * | 2019-07-12 | 2019-10-25 | 北京百度网讯科技有限公司 | 一种任务处理方法、装置、设备和介质 |
CN110704177A (zh) * | 2019-09-04 | 2020-01-17 | 金蝶软件(中国)有限公司 | 计算任务处理方法、装置、计算机设备和存储介质 |
CN113110930A (zh) * | 2021-05-13 | 2021-07-13 | 深圳市凌雀智能科技有限公司 | 决策问题的云化解决方法、系统、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
蒋建锋等: "《服务器虚拟化运维实践》", 苏州大学出版社, pages: 113 - 114 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813516B (zh) | 资源管控方法、装置、计算机设备及存储介质 | |
CN101101550B (zh) | 将新用户界面映射到已有的整合界面的方法和系统 | |
CN110781089B (zh) | 一种设备ui自动化测试方法、装置、电子设备和介质 | |
US10084637B2 (en) | Automatic task tracking | |
CN112565443A (zh) | 物联网数据解析方法、装置、设备及存储介质 | |
CN111866160B (zh) | 多机控制方法、装置、设备及存储介质 | |
CN111625312A (zh) | 一种app换肤方法、装置、电子设备及存储介质 | |
US10574765B2 (en) | Method, device, and non-transitory computer-readable recording medium | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
CN112749219A (zh) | 数据抽取方法、装置、电子设备、存储介质及程序产品 | |
CN111740859A (zh) | 一种测试环境的部署方法、装置、电子设备及存储介质 | |
CN109408376B (zh) | 一种配置数据的生成方法、装置、设备及存储介质 | |
CN110020235B (zh) | Web浏览器三维模型定位方法、装置、介质和电子设备 | |
CN114006885A (zh) | 一种基于智能设备的数据采集方法、装置及电子设备 | |
CN111258902B (zh) | 基于SockJS服务器的性能测试方法和性能测试系统 | |
CN113903219A (zh) | 一种编程教学的展示方法、装置、电子设备及存储介质 | |
CN114745257B (zh) | 数据帧调试方法、装置、设备及存储介质 | |
CN113495498B (zh) | 用于硬件设备的模拟方法、模拟器、设备和介质 | |
CN115022397A (zh) | 接口参数精简方法、装置、电子设备及存储介质 | |
WO2022271306A1 (en) | In-app failure intelligent data collection and analysis | |
CN111124482B (zh) | 文案信息的配置方法和装置 | |
CN114217927A (zh) | 一种线程调用方法、装置、计算机设备及存储介质 | |
CN112100187A (zh) | 一种基于VueJS的学生学习数据存储方法及装置 | |
CN111124907A (zh) | 一种手机游戏测试方法、装置和服务器 | |
CN108459890B (zh) | 用于应用的界面显示方法和装置 |
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 |