一对多在线协作式编程教学方法及系统
技术领域
本发明涉及在线编程教学领域,更具体地说,涉及一对多在线协作式编程教学方法及系统。
背景技术
PBL(Project-Based Learning)项目式教学是目前国际教育界最新最先进的教学方法,让学生们组成团队在一个紧密合作的项目中去完成一个任务实践,对学生进行全方位5C核心素质培养。在线编程教育中,老师在线同时带多个学生做编程教学,学生之间无法很好的沟通和协调编程分工,缺乏有效的支持PBL(项目式教学)在线协作式编程教学技术和设备。
目前现有的在线编程教学中,存在三个问题:
第一、缺乏协作式编程设计:一对多团队共进式学习方式的趣味性与互动性,强于一对一的教学方式,但是所有学生编程的内容都一样,每个学生是各自独立完成相同的编程任务,缺乏相互间的协作,不像正常软件实训编程中的多人协作式团队编程同一个软件项目。
第二、繁琐低效的编程教学体验:目前的在线编程教学都是用类似远程桌面共享的形式进入查看学生或者老师的编程环境,老师和学生需要频繁切换远程桌面共享,且直播环境和编程环境未集成一块儿,这样导致很差的编程教学体验。
第三、缺乏代码自动同步手段:不能多人协作式编程同一个程序软件项目。如果按照现在软件开发公司里开发人员通过版本管理工具进行分工和合并程序的方式,是基于专业化项目管理的操作很复杂繁琐,并不适合青少年学习编程,而且版本管理的方式并不能及时同步代码,体验也不好。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一对多在线协作式编程教学方法及系统。
本发明解决其技术问题所采用的技术方案是:构造一对多在线协作式编程教学方法,应用于包含教学终端和多个学员终端的教学系统中,所述方法包括同步编码过程:
S1、所述教学终端中用于代码编写及展示的编程区域进入编程状态,所述学员终端的编程区域进入编程状态;
S2、所述教学终端和所述学员终端接收编码指令,在本终端的编程区域显示编码内容,同时将所述编码内容同步至教学系统中其他终端的编程区域。
进一步,本发明所述的一对多在线协作式编程教学方法,在所述步骤S2之后还包括:
S3、所述教学终端或所述学员终端接收程序运行指令,运行所述编程区域内程序代码得到运行结果,在本终端的结果显示区域显示所述运行结果。
进一步,本发明所述的一对多在线协作式编程教学方法,所述步骤S2中编码指令包括添加代码指令、修改代码指令、删除代码指令;
所述添加代码指令用于在所述编程区域增加代码,所述修改代码指令用于在所述编程区域修改代码,所述删除代码指令用于在所述编程区域删除代码。
进一步,本发明所述的一对多在线协作式编程教学方法,所述方法还包括同步沟通过程:
所述教学终端和所述学员终端接收沟通指令,在本终端的沟通区域显示沟通内容,同时将所述沟通内容同步至教学系统中其他终端的沟通区域;
若所述沟通内容为视频内容或音频内容,则音频部分通过音频播放器播放。
进一步,本发明所述的一对多在线协作式编程教学方法,所述方法还包括课件播放过程:
所述教学终端接收课件播放指令,在所述教学终端的课件展示区域播放,同时将所述教学课件展示至教学系统中所有所述学员终端的课件展示区域。
进一步,本发明所述的一对多在线协作式编程教学方法,所述教学终端和所述学员终端之间以及所述学员终端之间直接通过对应的IP地址进行寻址连通及数据传输。
进一步,本发明所述的一对多在线协作式编程教学方法,所述教学系统还包括教学服务器,所述教学服务器连接教学系统中的所有所述教学终端和所述学员终端;
所述教学终端和所述学员终端之间以及所述学员终端之间通过所述教学服务器连通及传输数据,所述教学终端和所述学员终端将编码内容传输至所述教学服务器进行同步,所述教学服务器完成同步后将产生的同步信息发送至所述教学系统中的其他终端,所述教学系统中的其他终端根据所述同步信息完成本地代码同步。
另,本发明还提供一对多在线协作式编程教学系统,包括教学终端和多个学员终端,所述教学终端和所述学员终端包括:
编码区模块,用于接收编辑修改程序代码;
编码同步模块,用于将本地编辑内容同步至教学系统中其他终端;
以及
终端通信模块,用于本地终端和教学系统中的其他终端之间的数据传输。
进一步,本发明所述的一对多在线协作式编程教学系统,所述教学终端和所述学员终端还包括用于展示教学课件的教学课件展示模块;和/或
代码运行模块,用于执行本地程序代码产生运行结果,将运行结果传输至结果显示模块显示;和/或
沟通模块,用于本地终端与教学系统中的其他终端之间的沟通,在沟通区域显示沟通内容。
进一步,本发明所述的一对多在线协作式编程教学系统,所述教学系统还包括教学服务器,所述教学终端和所述学员终端之间以及所述学员终端之间通过所述教学服务器连通;所述教学服务器包括:
代码合并模块,用于将教学系统中多个终端的代码合并在一起;
代码同步模块,用于将教学系统中某一终端的代码同步到教学系统中其他终端;
服务器通信模块,用于完成教学系统中终端之间的数据传输。
实施本发明的一对多在线协作式编程教学方法及系统,具有以下有益效果:该方法包括同步编码过程:S1、教学终端中用于代码编写及展示的编程区域进入编程状态,学员终端的编程区域进入编程状态;S2、教学终端和学员终端接收编码指令,在本终端的编程区域显示编码内容,同时将编码内容同步至教学系统中其他终端的编程区域。本方法将教学系统中每个终端编辑的程序代码及时同步中教学系统中其他所有终端,从而保持所有终端都能及时获取他人的编码内容,使大家能够共同协作完成程序的编写,提高教学质量。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是一实施例提供的一对多在线协作式编程教学系统结构示意图;
图2是一实施例提供的一对多在线协作式编程教学系统结构示意图;
图3是一实施例提供的教学终端和学员终端的结构示意图;
图4是一实施例提供的教学服务器的结构示意图;
图5是一实施例提供的教学终端和学员终端的显示界面图;
图6是一实施例提供的教学终端和学员终端的显示界面图;
图7是一实施例提供的一对多在线协作式编程教学方法流程图;
图8是一实施例提供的同步编码过程时序图;
图9是一实施例提供的教学课件展示时序图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
实施例
参考图1,本实施例的一对多在线协作式编程教学系统包括教学终端10和多个学员终端20,该教学系统没有服务器,教学终端10和学员终端20之间以及学员终端20之间直接通过对应的IP地址进行寻址连通及数据传输,教学终端10和学员终端20需要提前约定好IP地址端口、会话编码等通信信息,完成通信配置。教学终端10中的编程内容、沟通内容以及教学课件可实时传输至学员终端20展示,同时学员终端20中的编程内容和沟通内容可实时传输至教学终端10展示,同时学员终端20中的编程内容和沟通内容可实时传输至教学系统中其他学员终端20展示,从而实现系统中所有终端内容的实时同步。需要说明的是,本实施例中教学系统中所有终端的编码对象是同一程序,教学终端10和多个学员终端20既可以是小范围内的协作编程,也可以是远程的协作编程。
本实施例不需要使用服务器,教学终端10和学员终端20通过IP地址建立互联互通的网络,实现教学数据的实时同步传输。
实施例
参考图2和图4,本实施例的一对多在线协作式编程教学系统包括教学终端10、多个学员终端20以及教学服务器30,教学终端10和学员终端20之间以及学员终端20之间通过教学服务器30连通。教学终端10和学员终端20其中任意一终端进行编码操作,产生编码内容后,教学终端10和学员终端20将编码内容传输至教学服务器30进行同步,教学服务器30完成同步后将产生的同步信息发送至教学系统中的其他终端,教学系统中的其他终端根据同步信息完成本地代码同步。进一步,教学服务器30包括:代码合并模块301,用于将教学系统中多个终端的代码合并在一起;代码同步模块302,用于将教学系统中某一终端的代码同步到教学系统中其他终端;服务器通信模块303,用于完成教学系统中终端之间的数据传输。
教学终端10中的编程内容、沟通内容以及教学课件可通过教学服务器30实时传输至学员终端20展示,同时学员终端20中的编程内容和沟通内容可通过教学服务器30实时传输至教学终端10展示,同时学员终端20中的编程内容和沟通内容可通过教学服务器30实时传输至教学系统中其他学员终端20展示,从而实现系统中所有终端内容的实时同步。
本实施例使用服务器搭建教学系统,教学终端10和学员终端20之间以及学员终端20之间通过教学服务器实现数据的实时同步传输。
实施例
参考图3,上述实施例中教学终端10包括:编码区模块201,用于接收编辑修改程序代码;编码同步模块202,用于将本地编辑内容同步至教学系统中其他终端;以及终端通信模块207,用于本地终端和教学系统中的其他终端之间的数据传输。
上述实施例中学员终端20包括:编码区模块201,用于接收编辑修改程序代码;编码同步模块202,用于将本地编辑内容同步至教学系统中其他终端;以及终端通信模块207,用于本地终端和教学系统中的其他终端之间的数据传输。
本实施例中教学终端10和多个学员终端20实现在线协作编程,通过通信模块完成编程内容同步,对同一程序进行编程。
实施例
参考图3,上述实施例中教学终端10包括:编码区模块201,用于接收编辑修改程序代码;编码同步模块202,用于将本地编辑内容同步至教学系统中其他终端;代码运行模块203,用于执行本地程序代码产生运行结果,将运行结果传输至结果显示模块205显示;沟通模块204,用于本地终端与教学系统中的其他终端之间的沟通,在沟通区域显示沟通内容;以及终端通信模块207,用于本地终端和教学系统中的其他终端之间的数据传输。
上述实施例中学员终端20包括:编码区模块201,用于接收编辑修改程序代码;编码同步模块202,用于将本地编辑内容同步至教学系统中其他终端;代码运行模块203,用于执行本地程序代码产生运行结果,将运行结果传输至结果显示模块205显示;沟通模块204,用于本地终端与教学系统中的其他终端之间的沟通,在沟通区域显示沟通内容;以及终端通信模块207,用于本地终端和教学系统中的其他终端之间的数据传输。
作为选择,教学终端10和学员终端20还包括用于展示教学课件的教学课件展示模块206。其中教学终端10的教学课件展示模块206还具有教学课件选择过程:根据接收的课件选择指令选择教学课件,选定的教学课件在教学终端10上播放,同时将教学课件同步至教学系统中所有学员终端20展示。作为选择,教学课件包括但不限于文档课件、音频课件、视频课件等。
本实施例提供了教学终端10和学员终端20内部结构,上述结构通过软件和硬件结合的方式实现,例如在计算机上安装专用的应用程序。
实施例
参考图5和图7,本实施例的一对多在线协作式编程教学方法,应用于上述实施例的教学系统中,该方法包括同步编码过程:
S1、教学终端10中用于代码编写及展示的编程区域进入编程状态,学员终端20的编程区域进入编程状态。所谓编程状态是指可在该编程区域内添加代码、删除代码、修改代码以及进行其他编程动作。作为选择,教学终端10和学员终端20进入编程状态,可由教学终端10发送编程练习指令,使学员终端20进入编程状态;或者,在教学系统启动后,教学终端10和学员终端20自动进入编程状态;或者,教学终端10和学员终端20可独自设置本终端的编程状态,随时进入编程状态。例如,开始教学后,教学终端10接收编程内容选择指令,选择编程主题,该编程主题将作为教学系统的编程主题。教学终端10可直接将同步信息发送至所有学员终端20,也可通过教学服务器30将同步信息发送至所有学员终端20。学员终端20在接收到同步信息后,使学员终端20的编程区域进入编程状态。进一步,在教学终端10选定编程主题后,编程主题产生的同步信息可直接将同步信息发送至所有学员终端20,也可通过教学服务器30将同步信息发送至所有学员终端20。学员终端20在接收到同步信息后,使学员终端20的编程区域显示该编程主题。
S2、教学终端10和学员终端20接收编码指令,在本终端的编程区域显示编码内容,同时将编码内容同步至教学系统中其他终端的编程区域。教学终端10和学员终端20通过接收键盘的输入信号、鼠标的输入信号、触摸屏的输入信号等进行编码。教学系统中其中一个终端接收编码内容后,产生同步信息,其中同步信息中包含需要同步的代码。该同步信息可直接发送至教学系统中其他终端,也可通过教学服务器30发送至教学系统中其他终端,其他终端接收到同步信息后,提取同步信息中需要进行同步的代码完成本终端内的编码内容同步,从而实现教学系统中所有终端实时同步编码内容。作为选择,同步信息中需要进行同步的代码可以为每次编程时产生的修改代码,也可以为每次编程后该终端内的所有代码,包括本次编辑代码和在线代码。
可选择的,为区分教学系统中各成员的编码内容,可使用不同颜色标记各成员的编码内容。
可选择的,为提醒教学系统中教师或学员有其它成员修改了程序内容,则在每次修改同步过程中,发出提示信息。提示信息可为文字提示信息、音频提示信息等。
作为选择,在添加代码过程中,获取添加代码在本终端中的位置信息,将位置信息和添加代码作为同步信息,将同步信息发送至教学系统中的其他终端。其他终端在接收到该同步信息后,根据位置信息和添加代码更新编程区域内的代码,完成同步更新。
作为选择,在删除代码过程中,获取删除代码在本终端中的位置信息,将位置信息和删除代码作为同步信息,将同步信息发送至教学系统中的其他终端。其他终端在接收到该同步信息后,根据位置信息和删除代码更新编程区域内的代码,完成同步更新。
作为选择,在修改代码过程中,获取修改代码在本终端中的位置信息,将位置信息和修改代码作为同步信息,将同步信息发送至教学系统中的其他终端。其他终端在接收到该同步信息后,根据位置信息和修改代码更新编程区域内的代码,完成同步更新。
参考图6,本实施例的一对多在线协作式编程教学方法,在步骤S2之后还包括:
S3、教学终端10或学员终端20接收程序运行指令,运行编程区域内程序代码得到运行结果,在本终端的结果显示区域显示运行结果。作为选择,因结果显示区域在编码过程中不使用,仅在调试运行程序时使用,所以结果显示区域在编码过程中不显示,仅在调试运行程序时显示,使显示界面布局更加合理。
本实施例中实现了教学系统中多个终端同时对同一段程序进行编码,每个终端的编码内容都能及时同步到教学系统内其他终端上,从而实现在线协作编程。
实施例
参考图5,本实施例的一对多在线协作式编程教学方法还包括同步沟通过程:教学终端10和学员终端20接收沟通指令,在本终端的沟通区域显示沟通内容,同时将沟通内容同步至教学系统中其他终端的沟通区域。教学系统中某一终端需要进行沟通时,在沟通区域输入沟通内容,则该沟通内容生成对应的同步信息。该同步信息可直接发送至教学系统中其他终端,也可通过教学服务器30发送至教学系统中其他终端,其他终端在接收到同步信息后,在本终端的沟通区域显示沟通内容。
作为选择,沟通内容包括但不限于文字、音频、视频等,若沟通内容为视频内容或音频内容,则音频部分通过音频播放器播放。
本实施例为教师和学员以及学员之间提供了沟通窗口,使学员可实时进行沟通,提高教学质量。
实施例
本实施例中不需要服务器即可实现教学系统中教学终端10和学员终端20的数据同步。教学终端10和学员终端20之间以及学员终端20之间直接通过对应的IP地址进行寻址连通及数据传输,教学终端10和学员终端20需要提前约定好IP地址端口、会话编码等通信信息。教学终端10中的编程内容、沟通内容以及教学课件可实时传输至学员终端20展示,同时学员终端20中的编程内容和沟通内容可实时传输至教学终端10展示,同时学员终端20中的编程内容和沟通内容可实时传输至教学系统中其他学员终端20展示,从而实现系统中所有终端内容的实时同步。
实施例
本实施例的一对多在线协作式编程教学方法,教学系统还包括教学服务器30,教学服务器30连接教学系统中的所有教学终端10和学员终端20;教学终端10和学员终端20之间以及学员终端20之间通过教学服务器30连通及传输数据。教学终端10中的编程内容、沟通内容以及教学课件可通过教学服务器30实时传输至学员终端20展示,同时学员终端20中的编程内容和沟通内容可通过教学服务器30实时传输至教学终端10展示,同时学员终端20中的编程内容和沟通内容可通过教学服务器30实时传输至教学系统中其他学员终端20展示,从而实现系统中所有终端内容的实时同步。
实施例
参考图8,本实施例的一对多在线协作式编程教学方法,步骤S2中编码指令包括添加代码指令、修改代码指令、删除代码指令,其中,添加代码指令用于在编程区域增加代码,修改代码指令用于在编程区域修改代码,删除代码指令用于在编程区域删除代码。现通过图8的时序图说明添加代码、删除代码以及修改代码的过程,本时序图为包含教学服务器30的时序图:
添加代码过程:其中一学员终端20添加代码后,将添加代码发送至教学服务器30,教学服务器30将添加代码合并到已有代码中,合并后发送同步信息至教学系统中教学终端10和其他学员终端20,教学终端10和其他学员终端20接收到同步信息后完成同步,显示更新后的代码。
删除代码过程:其中一学员终端20删除代码后,将删除代码发送至教学服务器30,教学服务器30将删除代码合并到已有代码中,合并后发送同步信息至教学系统中教学终端10和其他学员终端20,教学终端10和其他学员终端20接收到同步信息后完成同步,显示更新后的代码。
修改代码过程:其中一学员终端20修改代码后,将修改代码发送至教学服务器30,教学服务器30将修改代码合并到已有代码中,合并后发送同步信息至教学系统中教学终端10和其他学员终端20,教学终端10和其他学员终端20接收到同步信息后完成同步,显示更新后的代码。
实施例
参考图9,本实施例的一对多在线协作式编程教学方法还包括课件播放过程:教学终端接收课件播放指令,在教学终端的课件展示区域播放,同时将教学课件展示至教学系统中所有学员终端的课件展示区域。本时序图为包含教学服务器30的时序图:
教学终端10接收课件播放指令,在教学终端的课件展示区域播放,同时在教学服务器30生成同步信息,教学服务器30将该同步信息发送至教学系统中的所有学员终端20,学员终端20在接收到同步信息后,在学员终端的课件展示区域展示教学课件。
进一步,教学终端接收讲解知识指令,产生讲解知识,同时在教学服务器30生成同步信息,教学服务器30将该同步信息发送至教学系统中的所有学员终端20,学员终端20在接收到同步信息后,在学员终端的课件展示区域展示讲解知识。
本实施例中可将教师的教学内容及时同步至教学系统中所有学员终端上,提高教学质量。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据此实施,并不能限制本发明的保护范围。凡跟本发明权利要求范围所做的均等变化与修饰,均应属于本发明权利要求的涵盖范围。