本发明属于网络教学技术领域,尤其涉及一种在线编程系统实现方法及装置。
背景技术:
网络教学是目前很流行的一种教学模式,编程课程教学也大量采用这种教学模式。但是编程课程有其特殊性,它们往往是实践性很强的课程,即学习编程必须亲自动手编写,编写的程序往往不能保证一次性成功,那么在错误信息的提示下要学习怎么样去调试程序,改正错误,从错误中学习,直到把程序调试成功为止。
现在这类编程课程的网络教学中,一般以下两种教学方式,详述如下:
第一种教学方式:文档讲解
这些文档实际上就是电子书籍,用户通过阅读这些电子文档进行学习,然后在本地的编程系统下编写程序,调试程序,自我检验,达到学习的目的。
第二种教学方式:视频讲解
视频讲解就是教师事先录制好课程教学的视频,通过网络播放给用户观看,用户通过观看视频来进行学习,类似于传统的课堂。用户学习完毕后也要在本地的编程系统下编写程序,调试程序,自我检验,达到学习的目的。
然而,目前编程课程的网络教学中,无法在线编写程序、调试程序,不能实现在线学习编程与练习编程一体化。其原因在于,目前编程课程的网络教学中,无论采用何种教学方式,均存在以下几个方面的不足,详述如下:
第一方面:目前的编程课程的网络教学,不能在线设计程序,调试程序。用户通过阅读文档或者观看视频后都要在本地的编程环境中完全自主的设计程序,调试程序,不断练习,达到学习的目的,因此学习是被动的,没有现场在线交互的功能。学习与练习的是脱钩的,不能形成完整体系。
第二方面:用户通过阅读文档或者观看视频后都要在本地的编程环境下模仿编写程序,因此对本地软硬件环境要求高。例如要进行Asp.Net编程的学习,本地就要安装几个GB的Visual Studio系统。对本地的软硬件环境要求过高,不利于用户随时随地进行学习,更不利于在手机等移动设备上进行学习。
第三方面:用户通过阅读文档或者观看视频后都要在本地的编程环境下模仿编写的程序是从头到尾都要自己完成的,因此对于初学者来说难度跨度大,学习路线陡峭,难于学习与掌握。
技术实现要素:
本发明实施例的目的在于提供一种在线编程系统实现方法,旨在解决目前编程课程的网络教学中,无法在线编写程序、调试程序,不能实现在线学习编程与练习编程一体化的问题。
本发明实施例是这样实现的,一种在线编程系统实现方法,包括:
在线编程服务器配置编程训练模式;
在所述编程训练模式下,接收在线编程客户端程序提交的程序语句;
执行接收到的程序语句,向所述在线编程客户端程序返回程序执行结果;
其中,所述在线编程客户端程序包括浏览器程序和Windows客户端程序。
本发明实施例的另一目的在于提供一种在线编程系统实现装置,包括:
配置模块,用于配置编程训练模式;
接收模块,用于在所述编程训练模式下,接收在线编程客户端程序提交的程序语句;
返回模块,用于执行接收到的程序语句,向所述在线编程客户端程序返回程序执行结果;
其中,所述在线编程客户端程序包括浏览器程序和Windows客户端程序。
在本发明实施例中,在线编程服务器配置编程训练模式,在所述编程训练模式下,接收在线编程客户端程序提交的程序语句,执行接收到的程序语句,向所述在线编程客户端程序返回程序执行结果,解决了目前编程课程的网络教学中,无法在线编写程序、调试程序,不能实现在线学习编程与练习编程一体化的问题。有益效果在于以下几个方面,详述如下:
1)在线编程,在线交互,有利于提高用户的学习积极性,快速地提高用户的编程能力。
2)在线编程系统能随时随地接受提交的程序语句,实时返回程序执行结果,且对客户端的软硬件要求极低,通过能上网的输入设备均可以练习编程,极大地提高了在线编程系统使用的普遍性与易用性。
3)系统设计了适合不同用户需求的排序练习、填空练习、程序编写三个模块,设置了难度系数,采用由浅入深、循序渐进的教学方法,降低了学习的难度,取得良好的教学效果。
4)系统存储了大量的题库,适用于不同层次的教学需要。
5)该系统适用于大部分程序设计的课程,如DotNet体系的编程课程、Java体系的编程课程、JavaScript等脚本的编程课程以及其它一些常见的编程课程。
附图说明
图1是本发明实施例提供的在线编程系统实现方法的实现流程图;
图2是本发明实施例提供的在线编程系统实现方法步骤S102的实现流程图;
图3是程序编写模式的较佳样例图;
图4是本发明实施例提供的显示语句注释和语句答案的实现流程图;
图5是本发明实施例提供的返回程序执行结果的实现流程图;
图6是本发明实施例提供的在线编程系统实现装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
图1是本发明实施例提供的在线编程系统实现方法的实现流程图,详述如下:
在步骤S101中,在线编程服务器配置编程训练模式;
其中,通过创建程序排序模式、程序填空模式、程序编写模式之一或其组合,以配置在线编程训练模式。
在步骤S102之前,在步骤S101之后,在线编程系统实现方法还包括:
创建项目类型与程序项目;
通过建立项目类型与程序项目、编程训练模式以及题目之间的对应关系,构成题库。
在步骤S102中,在所述编程训练模式下,接收在线编程客户端程序提交的程序语句;
在步骤S103中,执行接收到的程序语句,向所述在线编程客户端程序返回程序执行结果。
其中,所述在线编程客户端程序包括浏览器程序和Windows客户端程序。
其中,当通过创建程序排序模式、程序填空模式、程序编写模式的组合时,手选在线编程训练模式,在手选的编程训练模式下,接收在线编程客户端程序提交的程序语句。
在本发明实施例中,解决了目前编程课程的网络教学中,无法在线编写程序、调试程序,不能实现在线学习编程与练习编程一体化的问题。有益效果在于以下几个方面,详述如下:
1)在线编程,在线交互,有利于提高用户的学习积极性,快速地提高用户的编程能力。
2)在线编程系统能随时随地接受提交的程序语句,实时返回程序执行结果,且对客户端的软硬件要求极低,通过能上网的输入设备均可以练习编程,极大地提高了在线编程系统使用的普遍性与易用性。
3)系统设计了适合不同用户需求的排序练习、填空练习、程序编写三个模块,设置了难度系数,采用由浅入深、循序渐进的教学方法,降低了学习的难度,取得良好的教学效果。
4)系统存储了大量的题库,适用于不同层次的教学需要。
5)该系统适用于大部分程序设计的课程,如分布式对象技术(Distributed Object Technology,DotNet)体系的编程课程、Java体系的编程课程、JavaScript等脚本的编程课程以及其它一些常见的编程课程。
实施例二
图2是本发明实施例提供的在线编程系统实现方法步骤S102的实现流程图,详述如下,详述如下:
在步骤S201中,向在线编程客户端程序下发与所述编程训练模式相对应且待编程的程序语句,以使所述在线编程客户端程序显示与编程训练模式相对应且待编程的程序语句;
在步骤S202中,接收所述在线编程客户端程序提交的编程后的程序语句。
实施例三
本发明实施例描述了在线编程系统实现方法步骤S102的实现流程,步骤S102有以下三种实施方式,详述如下:
第一种实施方式:
当配置的编程训练模式为程序排序模式时,所述在所述编程训练模式下,接收在线编程客户端程序提交的程序语句,具体为:
手动确定难度系数,根据难度系数和程序排序模式,向在线编程客户端程序下发多条打乱顺序的程序语句,接收所述在线编程客户端提交的手动排序后的程序语句。
难度系数是适应不同的编程难度而设计的一个系数。
这种程序排序模式是简单的一种模式,要编写的程序语句会全部呈现出来,但是部分语句的顺序随机地发生了变化,用户要做的事情是读懂程序,用鼠标把程序语句的顺序重新进行排列,使程序符合程序语法规则与计算逻辑规则,然后就可以提交执行。执行后程序如果不正确,那么在提示下还可以再次调整语句顺序再次提交执行,直到程序正确为止。
可以点击“首部”、“尾部”、“上移”、“下移”等按钮完成语句的移动完成排序,如果对程序理解有困难,则可以借助左右的行号按钮得到答案与注释帮助。
程序编排好后就可以提交到在线编程服务器的Asp.Net系统下执行,如果程序正确就执行出正确结果,如有错误会给出错误信息,这个信息与就是真实在Asp.Net环境下执行的结果,因此这个练习是100%模拟仿真的,用户可以根据该错误信息重新进行排序练习。
值得说明的是,由于程序是提交到在线编程服务器的Asp.Net系统下执行的,用户编排的程序语句顺序不一定要和演示程序的一模一样,只要程序逻辑正确,能执行出所要的结果就行。
为便于说明,以下为程序排序模式的应用流程,详述如下:
选择语句排序,确定难度系数;
选择语句进行逻辑排序;
鼠标放在左边的行号按钮上可以得到该行的语句答案;
鼠标放在右边的行号按钮上可以得到该行的语句注释;
程序排列好后进行提交;
显示提交后的完整程序;
执行程序,如果有错误会给出错误信息。
第二种实施方式:
当配置的编程训练模式为程序填空模式时,在所述编程训练模式下,接收在线编程客户端程序提交的程序语句,具体为:
手动确定难度系数,根据难度系数和程序填空模式,向在线编程客户端程序下发多行待填写的程序语句,接收所述在线编程客户端提交的手动填写后的程序语句。
这种程序填空模式比程序排序模式的模式要难,要编写的程序的部分语句随机地以空格的形式出现,用户需要自己编写每条空出来的语句,编写好后可以提交执行。执行后程序如果不正确,那么在提示下还可以再次修改程序语句,直到程序正确为止。
用户如果对程序理解有困难,则可以借助左右的行号按钮得到答案与注释帮助。程序编排好后就可以提交到在线编程服务器的Asp.Net系统下执行,如果程序正确就执行出正确结果,如有错误会给出错误信息,用户可以根据该错误信息重新进行排序练习。
这里的程序填空练习与前面的程序排序练习相比难度增大,而且用户有更大的自由发挥的空间,编写的语句与答案的语句可以有一定的差异,例如所使用的变量都可以不一样,只要程序语法正确与逻辑正确,能执行出所要的结果就行。
为便于说明,以下为程序填空模式的应用流程,详述如下:
选择填空练习后很多语句出现空行,有待填写;
鼠标放在左边的行号按钮上可以得到该行的语句答案;
鼠标放在右边的行号按钮上可以得到该行的语句注释;
未填写完毕提交的结果;
提交程序的结果;
执行提交程序的错误。
第三种实施方式:
当配置的编程训练模式为程序编写模式时,所述在所述编程训练模式下,接收在线编程客户端程序提交的程序语句,具体为:
向在线编程客户端程序下发待填写的空白框,接收所述在线编程客户端中空白框填写的程序语句。
程序编写模式是难度大的模式,也是真正的独立编写模式。如果说前两种训练模式是照着编、试着编的话,那么这种模式下就是完全自己独立编写了。为了能真正训练用户的独立编程能力,这种模式下没有任何提示功能,而且程序语句与程序的长短没有固定的要求,用户可以自由发挥,只要程序能实现要求的功能就可以。
为便于说明,以下为程序编写模式的应用流程,详述如下:
选择编写程序后出现空白的编写框,在空白框中编写程序,提交的程序结果,执行的结果。
图3是程序编写模式的较佳样例图。
CodingWriting.aspx为在线编程服务器中的程序,用于程序编写,参数名称可自定义。
题目:在多行文本框中输入一段英文文本,统计26字母(不区分大小写)每个字母出现的次数,把结果显示在数据列表控件listBox中。
提示语:请在下列框中编写代码。
在本实施例中,程序排序模式、程序填空模式、程序编写模式这三种不同的训练模式,构成了循序渐进,由浅入深的练习模式,可以引导用户一步步编写程序。
实施例四
图4是本发明实施例提供的显示语句注释和语句答案的实现流程图,详述如下:
在步骤S401中,获取鼠标的停留位置;
在步骤S402中,当停留位置处于左边的行号时,显示左边的行号这一行对应的语句答案,当鼠标位置处于右边的行号时,显示右边的行号这一行对应的语句注释;或者,当停留位置处于右边的行号时,显示右边的行号这一行对应的语句答案,当鼠标位置处于左边的行号时,显示左边的行号这一行对应的语句注释。
在本实施例中,软件平台建立了语句与注释两种提示方式,只要把鼠标放在对应的语句行的位置,就可以看到该行的注释提示或者语句提示,用户可以根据提示理解与编写该行语句。这种引导提示可以快速地帮助用户完成程序的编写,方便用户的自主学习。
实施例五
图5是本发明实施例提供的返回程序执行结果的实现流程图,详述如下:
在步骤S501中,执行接收到的程序语句,生成程序执行结果;
在步骤S502中,若程序执行结果错误,则向在线编程客户端程序返回程序执行错误结果、错误的程序语句以及错误的程序语句所在的行号;
在步骤S503中,若程序执行结果无误时,则向在线编程客户端程序返回程序执行结果。
在本实施例中,在线编写的程序可以在线立刻执行,如果程序正确则会给出正确的结果;如果程序错误则会给出错误的原因,以使用户可以根据错误原因提示再次修改程序提交执行,直到程序正确为止。所有的调试过程与真实程序开发环境的调试过程一模一样,是100%的完全的仿真环境。
实施例六
图6是本发明实施例提供的在线编程系统实现装置的结构框图,该装置可以运行于电子设备中,电子设备包括但不限于诸如台式计算机、具有处理器的移动电话、膝上型计算机或平板计算机之类的通信设备。为了便于说明,仅示出了与本实施例相关的部分。
参照图6,该在线编程系统实现装置,包括:
配置模块61,用于配置编程训练模式;
接收模块62,用于在所述编程训练模式下,接收在线编程客户端程序提交的程序语句;
返回模块63,用于执行接收到的程序语句,向所述在线编程客户端程序返回程序执行结果;
其中,所述在线编程客户端程序包括浏览器程序和Windows客户端程序。
作为本实施例的一种实现方式,在所述在线编程系统实现装置中,所述接收模块具体用于向在线编程客户端程序下发与所述编程训练模式相对应且待编程的程序语句,以使所述在线编程客户端程序显示与编程训练模式相对应且待编程的程序语句;
接收所述在线编程客户端程序提交的编程后的程序语句。
作为本实施例的一种实现方式,在所述在线编程系统实现装置中,所述接收模块用于手动确定难度系数,根据难度系数和程序排序模式,向在线编程客户端程序下发多条打乱顺序的程序语句,接收所述在线编程客户端提交的手动排序后的程序语句;
所述接收模块用于手动确定难度系数,根据难度系数和程序填空模式,向在线编程客户端程序下发多行待填写的程序语句,接收所述在线编程客户端提交的手动填写后的程序语句;
所述接收模块用于向在线编程客户端程序下发待填写的空白框,接收所述在线编程客户端中空白框填写的程序语句。
作为本实施例的一种实现方式,在所述在线编程系统实现装置中,所述在线编程系统实现装置,还包括:
获取模块,用于获取鼠标的停留位置;
显示模块,用于当停留位置处于左边的行号时,显示左边的行号这一行对应的语句答案,当鼠标位置处于右边的行号时,显示右边的行号这一行对应的语句注释;或者,
当停留位置处于右边的行号时,显示右边的行号这一行对应的语句答案,当鼠标位置处于左边的行号时,显示左边的行号这一行对应的语句注释。
作为本实施例的一种实现方式,在所述在线编程系统实现装置中,所述返回模块具体包括:
程序执行结果生成单元,用于执行接收到的程序语句,生成程序执行结果;
程序执行结果错误返回单元,用于若程序执行结果错误,则向在线编程客户端程序返回程序执行错误结果、错误的程序语句以及错误的程序语句所在的行号;
程序执行结果无误返回单元,用于若程序执行结果无误时,则向在线编程客户端程序返回程序执行结果。
本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。