CN110908648A - 一种人工智能辅助图形化编程教学方法及*** - Google Patents
一种人工智能辅助图形化编程教学方法及*** Download PDFInfo
- Publication number
- CN110908648A CN110908648A CN201811082841.6A CN201811082841A CN110908648A CN 110908648 A CN110908648 A CN 110908648A CN 201811082841 A CN201811082841 A CN 201811082841A CN 110908648 A CN110908648 A CN 110908648A
- Authority
- CN
- China
- Prior art keywords
- model
- difference distance
- code
- target function
- shortest difference
- 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 31
- 238000013473 artificial intelligence Methods 0.000 title claims description 32
- 230000004048 modification Effects 0.000 claims abstract description 27
- 238000012986 modification Methods 0.000 claims abstract description 27
- 230000008859 change Effects 0.000 claims abstract description 9
- 230000009467 reduction Effects 0.000 claims abstract description 4
- 238000000605 extraction Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 abstract description 38
- 230000008569 process Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
公开了一种人工智能辅助图形化编程教学方法及***。该方法及***包括:基于图形化代码块提取代码模型;获取目标功能模型;获得所述代码模型与所述目标功能模型的最短差异距离;计算每一个代码块的添加或删除产生的最短差异距离的变化,按照最短差异距离变化的减少方向生成修改方案;根据所述修改方案进行代码修改直至最短差异距离为零;通过***实现方法的教学过程。本发明通过把原来复杂的英文代码编程语言转换成图形化的指令模块,适用于不同年龄层次,将在减少编程学习者对程序理解的障碍的同时,又保留自身的创意,轻松快乐地学习编程。
Description
技术领域
本发明涉及编程教学领域,更具体地,涉及一种人工智能辅助图形化编程教学方法及***。
背景技术
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。现阶段,大多数的编程教育一般是由教师进传授讲解,了解编程语言及工具,逐层学习,但其内容枯燥,过程乏味,不利于编程学习者的学习。因此,有必要开发一种人工智能辅助图形化编程教学方法及***。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明提出了一种人工智能辅助图形化编程教学方法及***,其能够通过把原来复杂的英文代码编程语言转换成图形化的指令模块,以积木构件的形式呈现,适用于从儿童到成人的广泛年龄层次。在使用图形化编程***进行编程学习的过程中,对编程者不同的编程思路,有针对性地、逐步地、有层次地进行自动提示和指导,将在减少编程学习者对程序理解的障碍的同时,又保留自身的创意,轻松快乐地学习编程。
根据本发明的一方面,提出了一种人工智能辅助图形化编程教学方法,所述方法可以包括:包括:
1)基于图形化代码块提取代码模型;
2)获取目标功能模型;
3)获得所述代码模型与所述目标功能模型的最短差异距离;
4)计算每一个代码块的添加或删除产生的最短差异距离的变化,按照最短差异距离变化的减少方向生成修改方案;
优选地,在步骤2)中,所述目标功能模型为多个时,计算所述代码模型与每个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型继续执行步骤3)。
优选地,在步骤3)中,利用树的编辑距离算法计算最短差异距离。
优选地,所述树的编辑距离算法为Zhang-shasha算法。
优选地,所述目标功能模型从预先设定的功能模型中获取。
根据本发明的另一方面,提出了一种人工智能辅助图形化编程教学***,所述***可以包括:
代码模型提取模块,目标功能模型获取模块、最短差异距离计算模块和修改方案生成模块;
所述代码模型提取模块用于提取编程者的图形化代码块中的代码模型;
所述目标功能模型获取模块与所述代码模型提取模块相连接,用于获取教师端的目标功能模型;
所述最短差异距离模块与所述目标功能模型获取模块相连接,用于计算所述代码模型与所述目标功能模型的最短差异距离;
所述修改方案生成模块与所述最短差异距离模块相连接,用于根据最短差异距离模块计算出的每一个代码块的添加或删除对应产生的最短差异距离的增减,按照最短差异距离减少方向生成修改方案。
优选地,在所述最短差异距离模块中,当存在多个目标模型,计算代码模型与每一个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型作为最终目标功能模型。
优选地,在所述最短差异距离模块中,利用树的编辑距离算法计算最短差异距离。
优选地,所述树的编辑距离算法为Zhang-shasha算法。
优选地,所述代码块以图形化的形式在***中表现。
本发明的有益效果在于:通过把原来复杂的英文代码编程语言转换成图形化的指令模块,适用于不同年龄层次,将在减少编程学习者对程序理解的障碍的同时,又保留自身的创意,轻松快乐地学习编程。
本发明具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施方式中将是显而易见的,或者将在并入本文中的附图和随后的具体实施方式中进行详细陈述,这些附图和具体实施方式共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本发明的人工智能辅助图形化编程教学方法的步骤的流程图;
图2示出了代码模型树的示意图;
图3示出了树的编辑距离算法的计算示意图;
图4示出了根据本发明的人工智能辅助图形化编程教学***的结构示意图;
图5示出了根据本发明的人工智能辅助图形化编程教学方法的应用示意图;
图6示出了编程者应该输入的完整程序图形化代码示意图;
图7示出了编程者实际输入的程序图形化代码块示意图;
图8示出了人工智能提示的操作示意图。
附图标记:
1031、代码模型提取模块;1032:目标模型获取模块;1033、最短差异距离计算模块;1034、修改方案生成模块;S2、人工智能提示。
具体实施方式
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
图1示出了根据本发明的人工智能辅助图形化编程教学方法的步骤的流程图。
在该实施例中,根据本发明的人工智能辅助图形化编程教学方法可以包括:
步骤101,基于图形化代码块提取代码模型;
基于积木构建的编程,代码本质上都是一个XML或者一个JSON结构,我们将积木的块的关系用一个XML或者JSON来表示,达到了提取代码模型的目的如下的XML表示,本质上是一个树的表示,如图2所示,为利用树的形式表示的XML代码模型示意图,其中示出了代码的变量、块、环境变量等具体对象。
步骤102,获取目标功能模型;
在一个示例中,在步骤102中,所述目标功能模型为多个时,计算所述代码模型与每个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型继续执行步骤103。
具体地,目标功能模型从预先设定的功能模型中获取。
步骤103,获得所述代码模型与所述目标功能模型的最短差异距离;
在一个示例中,利用树的编辑距离算法计算最短差异距离。
具体地,所述树的编辑距离算法为Zhang-shasha算法,本领域技术人员也可以通过其他树的编辑距离算法获得最短差异距离。
如图3所示,为基于Zhang-shasha算法计算树的编辑距离的示意图,通过对T1的树做删除“c”,***“b”、“d”的操作,生成了T2的树,其中保留了关于“c”下方包含的所有数,即保留了b,d,通过Zhang-shasha算法计算可得最短路径即差异距离为1。
步骤104,计算每一个代码块的添加或删除产生的最短差异距离的变化,按照最短差异距离变化的减少方向生成修改方案。
图4示出了根据本发明的人工智能辅助图形化编程教学***的结构示意图。
在该实施例中,根据本发明的人工智能辅助图形化编程教学***可以包括:
代码模型提取模块1031,目标模型获取模块1032、最短差异距离计算模块1033和修改方案生成模块1034;所述代码模型提取模块1031用于提取编程者的代码块中的代码模型;目标模型获取模块1032与所述代码模型提取模块1031相连接,用于获取教师端的目标功能模型;最短差异距离模块1033与所述目标模型获取模块1032相连接,用于计算所述代码模型与所述目标功能模型的最短差异距离;修改方案生成模块1034与所述最短差异距离模块1033相连接,用于根据最短差异距离模块计算出的每一个代码块的添加或删除对应产生的最短差异距离的增减,按照最短差异距离减少方向生成修改方案。所述智能学习模块还包括人工智能模块,用于根据所述目标功能模型与所述代码模型的差异,提示编程者修改方案生成模块1034生成的修改方案的实现方式。
在一个示例性实施例中,在所述最短差异距离模块1033中,当存在多个目标模型,计算代码模型与每一个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型作为最终目标功能模型。
具体地,在所述最短差异距离模块1033中,利用树的编辑距离算法计算最短差异距离。
更具体的,所述树的编辑距离算法为Zhang-shasha算法。
在一个示例性实施例中,在目标功能模型获取模块1031中,从预先设定的功能模型中获得目标功能模型。预先设定的功能模型可以从***数据库中获得,其可以由指定的教学人员指定,或者也可以根据提取出的编程学习者代码模型的模型与数据库中的模型进行匹配,找到最接近的模型。
所述代码块以图形化的形式在***中表现,其利用计算机编程语言,将在教学过程中产生的所有的代码或代码模型以图形化的形式保存于***中。
本发明通过建立一种人工智能辅助图形化编程教学***并利用编程者输入代码与特定功能模型的结构差异生成最优修改方案,完成了对编程者完成特性编程目标的分步式指导,以图形化的方式表达能够增加学习过程中的趣味性,同时人工智能的提示方式也能够解决编程者在编程过程中产生的困惑,提供一种人性化的指导方式。
应用示例
为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。
如图5所示,存在3个编程者,都需要实现同一个目标功能模型,每个编程者生成一个源码,***提取每个编程者源码内的变成模型,获得三个源码模型ABC,***计算每个源码模型与目标功能模型的结构差异,进而生成对应的修改方案,并将生成的修改方案以提示的方式输出,形成修改方案ABC,编程者通过修改方案ABC的提示,修改自己的源码,***基于修改后的源码再一次计算与目标功能模型的结构差异,再次生成修改方案,编程者根据修改方案的内容进行修改代码,直到***计算源码与目标功能模型的结构差异为零,整个教学过程结束。
如图6所示,为编程者最终应该实现的程序的图形化代码,编程者首先编写了程序如图7所示,其中包含了目标程序的一部分模块,但并不完整,此时由后台***计算了目标程序和编程者输入程序的结构差异,智能生成了提示方案,生成示意如图8所示,编程者可以根据人工智能提示S2,逐步完善自己的程序,直至完成图6中所有的程序,形成相同的图形化代码。
综上所述,本发明通过建立一种人工智能辅助图形化编程教学***并利用编程者输入代码与特定功能模型的结构差异生成最优修改方案,完成了对编程者完成特性编程目标的分步式指导,以图形化的方式表达能够增加学习过程中的趣味性,同时人工智能的提示方式也能够解决编程者在编程过程中产生的困惑,提供一种人性化的指导方式。
本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。
Claims (10)
1.一种人工智能辅助图形化编程教学方法,其特征在于,包括:
1)基于图形化代码块提取代码模型;
2)获取目标功能模型;
3)获得所述代码模型与所述目标功能模型的最短差异距离;
4)计算每一个代码块的添加或删除产生的最短差异距离的变化,按照最短差异距离变化的减少方向生成修改方案;
5)根据所述修改方案进行代码修改直至最短差异距离为零。
2.根据权利要求1所述的人工智能辅助图形化编程教学方法,其特征在于,在步骤2)中,所述目标功能模型为多个时,计算所述代码模型与每个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型继续执行步骤3)。
3.根据权利要求1所述的人工智能辅助图形化编程教学方法,其特征在于,在步骤3)中,利用树的编辑距离算法计算最短差异距离。
4.根据权利要求3所述的人工智能辅助图形化编程教学方法,其特征在于,所述树的编辑距离算法为Zhang-shasha算法。
5.根据权利要求1所述的人工智能辅助图形化编程教学方法,其特征在于,所述目标功能模型从预先设定的功能模型中获取。
6.一种人工智能辅助图形化编程教学***,其特征在于,包括:代码模型提取模块,目标功能模型获取模块、最短差异距离计算模块和修改方案生成模块;
所述代码模型提取模块用于提取编程者的图形化代码块中的代码模型;
所述目标功能模型获取模块与所述代码模型提取模块相连接,用于获取目标功能模型;
所述最短差异距离模块与所述目标功能模型获取模块相连接,用于计算所述代码模型与所述目标功能模型的最短差异距离;
所述修改方案生成模块与所述最短差异距离模块相连接,用于根据最短差异距离模块计算出的每一个代码块的添加或删除对应产生的最短差异距离的增减,按照最短差异距离减少方向生成修改方案。
7.根据权利要求6所述的人工智能辅助图形化编程教学***,其特征在于,在所述最短差异距离模块中,当存在多个目标模型,计算代码模型与每一个目标功能模型的最短差异距离,选择最短差异距离最小的目标功能模型作为最终目标功能模型。
8.根据权利要求7所述的人工智能辅助图形化编程教学***,其特征在于,在所述最短差异距离模块中,利用树的编辑距离算法计算最短差异距离。
9.根据权利要求8所述的人工智能辅助图形化编程教学***,其特征在于,所述树的编辑距离算法为Zhang-shasha算法。
10.根据权利要求6所述的人工智能辅助图形化编程教学***,其特征在于,在目标功能模型获取模块中,从预先设定的功能模型中获得目标功能模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082841.6A CN110908648A (zh) | 2018-09-17 | 2018-09-17 | 一种人工智能辅助图形化编程教学方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082841.6A CN110908648A (zh) | 2018-09-17 | 2018-09-17 | 一种人工智能辅助图形化编程教学方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908648A true CN110908648A (zh) | 2020-03-24 |
Family
ID=69813086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811082841.6A Pending CN110908648A (zh) | 2018-09-17 | 2018-09-17 | 一种人工智能辅助图形化编程教学方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908648A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651155A (zh) * | 2020-06-03 | 2020-09-11 | 北京智趣工场教育科技有限公司 | 一种编程学习操作***及外接交互*** |
CN111651154A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程角色变换的创作方法及装置 |
CN111862727A (zh) * | 2020-07-28 | 2020-10-30 | 中国科学院自动化研究所 | 人工智能图形化编程教学平台及方法 |
CN111841017A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种游戏ai的编程实现方法及装置 |
CN117581196A (zh) * | 2021-07-06 | 2024-02-20 | 三菱电机株式会社 | 编程辅助装置、编程辅助方法及编程辅助程序 |
CN117608555A (zh) * | 2023-11-28 | 2024-02-27 | 浙江大学 | 一种支持创意及图形化的编程辅助方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204336A1 (en) * | 2004-03-10 | 2005-09-15 | Hanbai Liu | Visual programming method and system thereof |
CN101425008A (zh) * | 2007-11-01 | 2009-05-06 | 北京航空航天大学 | 基于编辑距离的源代码相似度度量方法 |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程***和方法 |
CN105426711A (zh) * | 2015-11-18 | 2016-03-23 | 北京理工大学 | 一种计算机软件源代码相似度检测方法 |
CN106095470A (zh) * | 2016-08-17 | 2016-11-09 | 广东工业大学 | 基于压扁控制流认知优先度驱动的程序理解方法及*** |
CN106959851A (zh) * | 2017-03-03 | 2017-07-18 | 同济大学 | 一种面向人工智能研究的模块化可编程分布式交互*** |
-
2018
- 2018-09-17 CN CN201811082841.6A patent/CN110908648A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050204336A1 (en) * | 2004-03-10 | 2005-09-15 | Hanbai Liu | Visual programming method and system thereof |
CN101425008A (zh) * | 2007-11-01 | 2009-05-06 | 北京航空航天大学 | 基于编辑距离的源代码相似度度量方法 |
CN103197929A (zh) * | 2013-03-25 | 2013-07-10 | 中国科学院软件研究所 | 一种面向儿童的图形化编程***和方法 |
CN105426711A (zh) * | 2015-11-18 | 2016-03-23 | 北京理工大学 | 一种计算机软件源代码相似度检测方法 |
CN106095470A (zh) * | 2016-08-17 | 2016-11-09 | 广东工业大学 | 基于压扁控制流认知优先度驱动的程序理解方法及*** |
CN106959851A (zh) * | 2017-03-03 | 2017-07-18 | 同济大学 | 一种面向人工智能研究的模块化可编程分布式交互*** |
Non-Patent Citations (1)
Title |
---|
刘娜: "程序设计实验教学智能化评测及监控***的研究与实现", 程序设计实验教学智能化评测及监控***的研究与实现, pages 138 - 113 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651154A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程角色变换的创作方法及装置 |
CN111841017A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种游戏ai的编程实现方法及装置 |
CN111651155A (zh) * | 2020-06-03 | 2020-09-11 | 北京智趣工场教育科技有限公司 | 一种编程学习操作***及外接交互*** |
CN111862727A (zh) * | 2020-07-28 | 2020-10-30 | 中国科学院自动化研究所 | 人工智能图形化编程教学平台及方法 |
CN117581196A (zh) * | 2021-07-06 | 2024-02-20 | 三菱电机株式会社 | 编程辅助装置、编程辅助方法及编程辅助程序 |
CN117608555A (zh) * | 2023-11-28 | 2024-02-27 | 浙江大学 | 一种支持创意及图形化的编程辅助方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908648A (zh) | 一种人工智能辅助图形化编程教学方法及*** | |
CN108415977B (zh) | 一个基于深度神经网络及强化学习的生成式机器阅读理解方法 | |
Rybski et al. | Interactive robot task training through dialog and demonstration | |
Gopalan et al. | Simultaneously learning transferable symbols and language groundings from perceptual data for instruction following | |
CN111475656A (zh) | 基于外部知识聚合的视觉问答方法及*** | |
CN114118417A (zh) | 一种多模态预训练方法、装置、设备及介质 | |
CN115759042A (zh) | 一种基于句法感知提示学习的句子级问题生成方法 | |
CN116205294A (zh) | 一种用于机器人社交的知识库自更新方法、装置及机器人 | |
Huang et al. | Assister: Assistive navigation via conditional instruction generation | |
Teng et al. | Sketch2Vis: Generating data visualizations from hand-drawn sketches with deep learning | |
CN111862727B (zh) | 人工智能图形化编程教学平台及方法 | |
KR102431369B1 (ko) | 대화형 인공지능을 이용한 코딩 방법 및 장치 | |
Dong et al. | Creating edge ai from cloud-based llms | |
Sattar et al. | Ensuring safety in human-robot dialog—A cost-directed approach | |
CN111126047B (zh) | 一种同义文本生成的方法及装置 | |
CN117608555B (zh) | 一种支持创意及图形化的编程辅助方法及*** | |
CN105045829A (zh) | 一种计算机辅助教学专家*** | |
Sweet | Resurrecting the master builder: A pedagogical strategy for robotic construction | |
Coburn et al. | UML diagrams for blind programmers | |
Benjamin et al. | Using cognitive semantics to integrate perception and motion in a behavior-based robot | |
CN117608555A (zh) | 一种支持创意及图形化的编程辅助方法及*** | |
KR20200005925A (ko) | 어휘 연관 이미지의 연속적 생성을 통한 어휘 및 문장 생성 방법 | |
CN116011548B (zh) | 一种多知识图谱问答模型训练方法、***及存储介质 | |
CN116151226B (zh) | 一种基于机器学习的聋哑人手语纠错方法、设备和介质 | |
Bugmann | Effective Spoken interfaces to service robots: Open problems. |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200324 |