CN109542422A - 一种实现可视图形化编程的方法 - Google Patents
一种实现可视图形化编程的方法 Download PDFInfo
- Publication number
- CN109542422A CN109542422A CN201811393014.9A CN201811393014A CN109542422A CN 109542422 A CN109542422 A CN 109542422A CN 201811393014 A CN201811393014 A CN 201811393014A CN 109542422 A CN109542422 A CN 109542422A
- Authority
- CN
- China
- Prior art keywords
- programming
- node
- port
- type
- graphic
- 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
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)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种实现可视图形化编程的方法。通过本发明创造,可提供一种用于探索青少年编程教育的交互式解决技术方案,通过预置图形化编程节点,以及在编程过程中实现对图形化编程节点的属性编辑和端口间连接关系编辑,可利于构建起一个能够达成编程目标的编程节点网络及编程文件,进而实现可视图形化编程的目的,即无需在熟练掌握英语语法或编程经验的情况下,也能够通过画图连线方式完成编程目的,从而大大简化了编程过程,提高了编程趣味性、编程效率和学习效率,可利于将编程乐趣带到教学或创作设计中,使国内教师、学生以及编程初学者能够更加自由探索和专注于编程创作,尤其利于在国内对中小学编程教育进行普及。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种实现可视图形化编程的方法,可用于青少年编程教育。
背景技术
现有编程方法主要为在编程软件界面中输入符合一定逻辑规则的程序代码,然后通过调试和保存得到目标编程文件。这种方式过于传统,对于中小学生、教师或编程初学者等而言不但枯燥无味,而且由于可读性差,在调试过程中查错极不方便,导致编程效率和学习效率极为低下,严重影响教师、学生以及编程初学者等参与编程教育的积极性。
目前国内的青少年编程教育受到了诸多不利因素的影响和制约,难以在全国范围内的中小学校进行普及和推广。据统计,2016年美国约有67.5%的中小学生已接受编程教育,而我国中小学生接受编程教育的比例还不到0.96%。我国中小学编程教育存在着巨大的增长空间。在信息化社会迅猛发展及国家政策的大力推动下,催生了我国中小学编程教育的庞大市场,也推动了中小学编程教育的快速发展,全国各地涌现出了一批人工智能、机器人、创客以及编程教育的品牌和机构,掀起了中小学人工智能教育的热潮。但中小学编程教育还存在着不少问题,严重影响了编程教育的普及和推广,其主要表现在如下几个方面。
(1)编程教育工具以英语为基础,严重制约了编程教育的普及。即世界上的编程语言大部分都基于英语进行开发,要求学习者需要具备一定的英语基础。我国城乡中小学师生英语能力差异明显,采用英语书写的编程教育在全国的普及难度较大,最终会使编程教育成为一种贵族精英式的教育,致使编程教育在全国范围内难以广泛性普及和推广。
(2)编程教育工具及课程过于成人化,与学生的思维模式及学习模式不相适应。即现有的编程语言及教育工具绝大部分都是采用英语纯文字书写的,这就需要学生花费大量的时间来学习编程语法、指令,要求学习者一开始必须具备较高的逻辑思维能力,才能够使用编程工具来开展学习及应用。这与我国国情及青少年学生的思维模式不相适应,往往会导致学习过程枯燥乏味,而且难度过大,令学生望而生畏。
(3)现有的编程教育工具,使教师工作难度较大,教学效率低下。即在编写程序的过程中,大部分的时间往往耗在“检查除错”的环节。如果教师使用纯文字形式的编程工具批改学生编写的程序,每批阅一个学生的程序,都需要耗费大量的时间和精力,才能找出学生的书写错误和逻辑错误,使教师工作难度较大,教学效率低下。这样的教学方式,使编程教师难以完成对一个班级学生的教学,往往会导致中小学编程教育出现小众化的现象,增大了编程教育推广普及的难度。
(4)编程教育课程与中小学的学科课程脱节。即现有编程教育工具及课程均来自于国外引进,因此课程内容与我国中小学其它学科课程的内容无法有效衔接,不能同步配合中小学各学科课程教学的实施,无法满足师生、家长希望通过编程教育融合各学科课程学习的需求。
(5)缺乏从小学到高中连贯性、体系化的编程教育工具。即国内现有的编程教育工具均引进或仿制于国外,针对的对象是低龄儿童(6-8岁),缺乏适合小学到高中阶段、循序渐进的编程教育工具,阻碍了中小学编程教育的实施。
以上(1)~(5)点因素,严重影响和阻碍了我国中小学编程教育的发展,使中小学编程教育难以在全国范围内推广和普及。
发明内容
为了解决现有编程教育所存在的难以普及和推广等问题,本发明目的在于提供一种实现可视图形化编程的方法。
本发明所采用的技术方案为:
一种实现可视图形化编程的方法,包括如下:
(A).根据第一人机交互结果,在人机交互界面的预置工具箱中确定被选取的图形化编程节点,其中,所述图形化编程节点为由预定义语意和可视化图形构成的封装模块,所述预定义语意包含节点属性信息、端口属性信息和模块化的子程序,所述可视化图形集成有节点名称、端口名称、与节点属性信息对应的节点块图形和与端口属性信息对应的端口图形,所述图形化编程节点的节点类型包括数值型节点、变量型节点、表达式型节点、流程控制型节点、函数型节点、方法型节点、执行型节点和/或事件型节点,所述端口图形包括有至少一个输出端口图形/和输入端口图形;
(B).根据第二人机交互结果,在人机交互界面的编程视图窗中以可视化图形方式显示多个被选取的图形化编程节点,其中,至少有一个图形化编程节点的节点类型为执行型节点;
(C).根据第三人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的属性编辑器,最后根据在该属性编辑器中的第一操作结果更新该图形化编程节点的节点属性信息和/或端口属性信息,其中,所述第一操作结果包括文本拷贝、文本粘贴、文本删除和/或文本输入;
(D).根据第四人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后建立对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中用线组件连接该输出端口图形和该输入端口图形,其中,输出端口与输入端口的连接关系表示在运行时一图形化编程节点的且对应该输出端口的输出数据需要作为另一图形化编程节点的且对应该输入端口的输入数据,输出端口与输入端口的连接关系为一对一连接关系或一对多连接关系;
(E).根据第五人机交互结果,将编程视图窗中的所有图形化编程节点及它们的所在位置、预定义语意及端口间的连接关系保存在一个文件中。
优化的,还包括如下:(F).根据第六人机交互结果以及由端口间的连接关系所确定的数据流向和/或执行方向依次运行在编程视图窗中所有图形化编程节点的子程序,并在某个图形化编程节点出现运行错误时,终止运行,最后在编程视图窗中以报错状态颜色标识该图形化编程节点的节点块图形。
优化的,还包括如下:(G).根据第七人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后断开对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中取消两端口图形间的线组件。
优化的,还包括如下:(H).根据第八人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的代码编辑器,并通过该代码编辑器显示将该图形化编程节点的子程序编译为预选代码语言形式的代码,最后根据在该代码编辑器中的第二操作结果更新该子程序,其中,所述第二操作结果包括文本拷贝、文本粘贴、文本删除和/或文本输入。
优化的,还包括如下:(I)、根据在编程视图窗中的所有图形化编程节点及它们的所在位置及端口间的连接关系,运行排序算法对所有图形化编程节点的所在位置进行排序布局,使交叉线组件的数量最少化。
具体的,所述节点属性信息包括节点ID、节点包名、节点作者、节点名称、节点类型和/或支持语言,所述端口属性信息包括端口ID、端口名称、连接必要性、端口数据类型、端口交互类型、端口外部命令和/或表达式,其中,所述端口数据类型包括数字型端口、布尔型端口、字符串型端口、列表型端口、元组型端口、字典型端口、集合型端口、文件型端口、多态型端口、全态型端口、执行型端口和/或虚拟型端口。
优化的,在发现某个图形化编程节点的所有必须连接端口中存在无连接关系的端口时,以报错状态预置颜色标识该图形化编程节点。
优化的,在编程视图窗中,以不同的第二预置样式一一对应地标识各种端口数据类型的端口图形,并在步骤(D)中,若发现分别对应输出端口图形和输入端口图形的两端口数据类型不匹配,则终止建立端口间的连接关系,其中,所述第二预置样式包括形状和/或颜色。
优化的,所述图形化编程节点的节点类型还包括有复合型节点,其中,所述复合型节点为由用户自定义可视化图形和若干图形化编程节点构成的封装模块。
优化的,在编程视图窗中,以不同的第一预置样式一一对应地标识各种节点类型的节点块图形,其中,所述第一预置样式包括形状和/或颜色。
本发明的有益效果为:
(1)本发明创造提供了一种用于探索青少年编程教育的交互式解决技术方案,通过预置图形化编程节点,以及在编程过程中实现对图形化编程节点的属性编辑和端口间连接关系编辑,可利于构建起一个能够达成编程目标的编程节点网络及编程文件,进而实现可视图形化编程的目的,即无需在熟练掌握英语语法或编程经验的情况下,也能够通过画图连线方式完成编程目的,从而大大简化了编程过程,提高了编程趣味性、编程效率和学习效率,可利于将编程乐趣带到教学或创作设计中,使国内教师、学生以及编程初学者能够更加自由探索和专注于编程创作,尤其利于在国内对中小学编程教育进行推广和普及;
(2)所述方法还具有实操灵活、可读性强、易于查错和用户体验高等优点,便于实际应用和推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的实现可视图形化编程的人机交互界面示例图。
图2是本发明提供的图形化编程节点的可视化图形示例图。
图3是本发明提供的图形化编程节点的三种显示模式示例图。
图4是本发明提供的图形化编程节点的端口组展开与折叠示例图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况,本文中术语“/和”是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”关系。
实施例一
如图1~4所示,本实施例提供的所述实现可视图形化编程的方法,包括如下步骤。
(A).根据第一人机交互结果,在人机交互界面的预置工具箱中确定被选取的图形化编程节点,其中,所述图形化编程节点为由预定义语意和可视化图形构成的封装模块,所述预定义语意可以但不限于包含节点属性信息、端口属性信息和模块化的子程序,所述可视化图形可以但不限于集成有节点名称、端口名称、与节点属性信息对应的节点块图形和与端口属性信息对应的端口图形,所述图形化编程节点的节点类型可以但不限于包括数值型节点、变量型节点、表达式型节点、流程控制型节点、函数型节点、方法型节点、执行型节点和/或事件型节点,所述端口图形包括有至少一个输出端口图形/和输入端口图形。
在所述步骤(A)中,如图1所示,通过在预置工具箱中进行鼠标操作和/或文本输入操作等方式,即可产生所述第一人机交互结果。例如,可以通过如下两种方式选取图形化编程节点:(a)使用鼠标点击选择“节点系列>子类型”中的某个要使用的图形化编程节点;(b)在搜索栏中输入节点名称,通过搜索找到需要使用的图形化编程节点。所述图形化编程节点可以但不限于具体采用json文件格式进行模块化封装,以便在编程过程中从存储区传递给软件前端。所述预定义语意由现有的专门语意编辑器提前定义,用于动态生成节点试样,以及数据控制和运算等,其中的所述节点属性信息和所述端口属性信息可以在编程过程中通过属性编辑器进行灵活修改或调整,而所述子程序由于为实现对应节点的具体类型功能的模块化程序(其具体内容可参照现有程序进行常规性编程提前得到),在编程过程中一般可通过阅读器进行查阅,当然也可以通过代码编辑器进行灵活修改、调整或自定义。所述可视化图形用于在编程视图窗中代表对应的图形化编程节点,其中的所述节点块图形可以但不限于为方形、圆形、三角形或正多边形等,所述端口图形也可以但不限于为方形、圆形、三角形或正多边形等。此外,一个图形化编程节点至少有一个输出端口,例如,在json文件中,会先定义完一个节点的输出端口,再定义节点的输入端口。
在所述步骤(A)中,具体的,所述节点属性信息可以但不限于包括节点ID、节点包名、节点作者、节点名称、节点类型和/或支持语言等内容。其中,所述节点ID用于唯一标识对应的图形化编程节点,以便快速查找。所述节点包名用于组织归类节点系列的索引。所述节点类型用于标识对应图形化编程节点的具体类型,例如标识为数据型节点——其用于输出特定格式的数据,如数值,字符串等,并可自定义编辑;标识为变量型节点——其用于输出变量,并也可自定义编辑;标识为表达式型节点——其用于输出表达式,不可自定义编辑;标识为流程控制型节点——其用于按照预置逻辑顺序来执行数据操作,例如基于if条件语句或for/while循环语句等的流程控制逻辑;标识为函数型节点——其用于按照预置函数来执行数据操作;标识为方法型节点——其用于按照预置方法来执行数据操作;标识为执行型节点——其用于最终编码与执行,在一个编程文件中必须有至少一个执行型节点;标识为事件型节点——其用于提供程序执行前的前置调用条件,例如:当一个游戏开始、某个角色受到伤害、按下键盘的某个按键等特定事件时,就调用某个执行型节点下的节点网络开始执行,其并非每个编程文件所必须的节点。所述节点类型会影响对应节点的可视化显示效果——即在编程视图窗中,会以不同的第一预置样式一一对应地标识各种节点类型的节点块图形,其中,所述第一预置样式可以但不限于包括形状和/或颜色,例如用颜色十六进制为9ABC66的预置颜色标识数值型节点,用颜色十六进制为77AFD9的预置颜色标识变量型节点。
在所述步骤(A)中,具体的,所述端口属性信息可以但不限于包括端口ID、端口名称、连接必要性、端口数据类型、端口交互类型、端口外部命令和/或表达式等内容。其中,所述端口ID用于唯一标识对应端口,在默认情况下,可视端口归属于默认的端口组下,例如ogroup0,igrioup0。所述连接必要性用于采用真假状态标识(即1或0)对应端口在编程过程中是否为必须连接特性,其也会影响所属节点的可视化显示效果——即在编程视图窗中,如果某个图形化编程节点的所有必须连接端口(即该端口的连接必要性为1,表示必须连接特性)中存在无连接关系的端口,则以报错状态预置颜色(例如正红色)标识该图形化编程节点,以便编程人员快速发现可能出错的节点。所述端口数据类型用于标识对应端口的数据传输类型,其可以但不限于包括数字型端口(其用于在节点间传输数值数据)、布尔型端口(其用于在节点间传输布尔数据)、字符串型端口(其用于在节点间传输字符串数据)、列表型端口(其用于在节点间传输列表数据)、元组型端口(其用于在节点间传输元组数据)、字典型端口(其用于在节点间传输字典数据)、集合型端口(其用于在节点间传输集合数据)、文件型端口(其用于在节点间传输文件数据)、多态型端口(其用于在节点间传输多种不同数据类型的数据,例如列表数据、元组数据和集合类数据等)、全态型端口(其用于在节点间传输所有不同数据类型的数据)、执行型端口(其用于在节点间传输执行命令数据)和/或虚拟型端口(其是一种允许动态无限增加端口可视化试样的待编辑端口,在实例中可用空心圆标识)等。所述端口数据类型同样会影响对应端口的可视化显示效果——即在编程视图窗中,会以不同的第二预置样式一一对应地标识各种端口数据类型的端口图形,其中,所述第二预置样式可以但不限于包括形状和/或颜色,例如用颜色为绿色的预置颜色标识数字型端口,用颜色为正蓝色的预置颜色标识字典型端口;以及通过不同图形形状标识部分端口,例如用方形标识执行型端口,用空心圆标识虚拟型端口,用于实心圆标识其他类型的端口。
在所述步骤(A)中,优化的,所述图形化编程节点的节点类型还包括有复合型节点,其中,所述复合型节点为由用户自定义可视化图形和若干图形化编程节点构成的封装模块。即在人机交互界面的编程视图窗中,可以将多个图形化编程节点合并成一个用户自定义的复合型节点,以便优化编程的冗余,以及方便在编程过程中多处地反复使用复合型节点,或者分享给其它用户使用。
(B).根据第二人机交互结果,在人机交互界面的编程视图窗中以可视化图形方式显示多个被选取的图形化编程节点,其中,至少有一个图形化编程节点的节点类型为执行型节点。
在所述步骤(B)中,如图1所示,通过在预置工具箱与编程视图窗之间进行鼠标拖拽操作等方式,即可产生所述第二人机交互结果。此外,具体的,为了区别显示不同的图形化编程节点及旗下端口,可在编程视图窗中,以不同预置颜色一一对应地标识各种节点类型的节点块图形,以及以不同预置颜色一一对应地标识各种类型的端口图形。
在所述步骤(B)中,如图3所示,优化的,若所述可视化图形还集成有显示状态切换控件图标,则在编程视图窗中,采用如下三种模式之一显示图形化编程节点的可视化图形:(1).全部折叠模式:显示最小化的节点块图形、节点名称及显示状态切换控件图标;(2).部分折叠模式:显示节点块图形、节点名称、显示状态切换控件图标及具有连接关系的端口名称和端口图形;(3).全部展开模式:显示最大化的节点块图形、节点名称、显示状态切换控件图标及所有的端口名称和端口图形。如图3所示,所述显示状态切换控件图标用于在鼠标点击操作时循环切换前述三种模式,从而可以大大提高图形化编程节点的显示灵活性,使得即可完整展示又可简洁展示整个图形化编程节点的目的,提升用户体验。此外,同样出于前述目的,如图4所示,优化的,还可在所述可视化图形中还集成有可对多个端口图形进行展开/折叠操作的端口分组控件图标及相应端口分组名称。
(C).根据第三人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的属性编辑器,最后根据在该属性编辑器中的第一操作结果更新该图形化编程节点的节点属性信息和/或端口属性信息,其中,所述第一操作结果可以但不限于包括文本拷贝、文本粘贴、文本删除和/或文本输入等。
在所述步骤(C)中,如图1所示,同样通过在编程视图窗中进行鼠标操作(如双击)和/或文本输入操作等方式,即可产生所述第三人机交互结果,然后通过属性编辑,可以根据编程需要自定义/微调所选图形化编程节点的语意,使之适应最终的编程目的。
(D).根据第四人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后建立对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中用线组件连接该输出端口图形和该输入端口图形,其中,输出端口与输入端口的连接关系表示在运行时一图形化编程节点的且对应该输出端口的输出数据需要作为另一图形化编程节点的且对应该输入端口的输入数据,输出端口与输入端口的连接关系为一对一连接关系或一对多连接关系。
在所述步骤(D)中,如图1所示,同样通过在编程视图窗中进行鼠标操作(如单击并移动)和/或文本输入操作等方式,即可产生所述第四人机交互结果,然后通过端口间的连接关系,可以确定节点间的数据流向或执行方向,并通过线组件予以图形呈现,进而通过多次操作,可以构建起一个完整的且具有可视图形化特点的编程节点网络。此外,为了提前防止出现语法错误,优化的,若发现分别对应输出端口图形和输入端口图形的两端口数据类型不匹配,则终止建立端口间的连接关系。
(E).根据第五人机交互结果,将编程视图窗中的所有图形化编程节点及它们的所在位置、预定义语意及端口间的连接关系保存在一个文件中。
在所述步骤(E)中,如图1所示,通过鼠标点击“保存”即可产生所述第五人机交互结果。由此可以随时保存编程节点网络,利于最终得到想要的编程文件,具体的,同样可以但不限于通过json文件格式保存最终文件。
前述步骤(A)~(E)的逻辑顺序并无固定,部分步骤可以相互调换或循环,例如先实现步骤(D)再实现步骤(C),或者先实现步骤(E)、再实现步骤(D),最后再次实现步骤(E)等。由此通过前述步骤(A)~(E)所述的方法,可以在编程视图框中实现可视图形化编程目的,即无需在熟练掌握英语语法或编程经验的情况下,也能够通过画图连线方式完成编程目的,从而大大简化了编程过程,提高了编程趣味性、编程效率和学习效率,可利于将编程乐趣带到教学或创作设计中,使国内教师、学生以及编程初学者能够更加自由探索和专注于编程创作,尤其利于在国内对中小学编程教育进行推广和普及。
优化的,前述方法还可包括如下步骤:(F).根据第六人机交互结果以及由端口间的连接关系所确定的数据流向和/或执行方向依次运行在编程视图窗中所有图形化编程节点的子程序,并在某个图形化编程节点出现运行错误时,终止运行,最后在编程视图窗中以报错状态颜色标识该图形化编程节点的节点块图形。
在所述步骤(F)中,如图1所示,通过鼠标点击“运行”即可产生所述第六人机交互结果,由此可以随时编译及运行已有的编程节点网络,方便查错。
优化的,前述方法还可包括如下步骤:(G).根据第七人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后断开对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中取消两端口图形间的线组件。
在所述步骤(G)中,如图1所示,同样通过编程视图窗中进行鼠标操作(如单击并移动)和/或文本输入操作等方式即可产生所述第七人机交互结果,由此可以根据编程需要随时更改已有的编程节点网络。
优化的,前述方法还可包括如下步骤:(H)根据第八人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的代码编辑器,并通过该代码编辑器显示将该图形化编程节点的子程序编译为预选代码语言形式的代码,最后根据在该代码编辑器中的第二操作结果更新该子程序,其中,所述第二操作结果可以但不限于包括文本拷贝、文本粘贴、文本删除和/或文本输入等。
在所述步骤(H)中,同样通过在编程视图窗中进行鼠标操作(如双击)和/或文本输入操作等方式,即可产生所述第八人机交互结果,然后通过代码编辑,可以根据编程需要自定义/微调所选图形化编程节点的语意,使之适应最终的编程目的。此外,预选代码语言为用户在查看代码时所选择的编程语言,例如C语言、C++语言或Java语言等,由于在代码编辑器中内置有现有编译工具,可以将图形化编程节点的子程序翻译成不同语言的且能够满足用户看懂需求的详细代码,并许可对这些代码进行拷贝、粘贴等操作,例如,通过文本拷贝可以将编译出的预选语言形式代码用于其它语言编程环境中。
优化的,前述方法还可包括如下步骤:(I)、根据在编程视图窗中的所有图形化编程节点及它们的所在位置及端口间的连接关系,运行排序算法对所有图形化编程节点的所在位置进行排序布局,使交叉线组件的数量最少化。
在所述步骤(I)中,考虑在选取多个图形化编程节点并建立端口间连接关系后,构成的编程节点网络会显示得比较复杂,不利于编程人员理清,由此通过前述步骤可简化网络复杂度,提高编程节点网络的可读性,方便查阅和纠错。此外,所述排序算法可采用现有相关算法或者在现有相关算法基础上进行常规性改编得到,例如冒泡排序算法。
综上,采用本实施例所提供的实现可视图形化编程的方法,具有如下技术效果:
(1)本实施例提供了一种用于探索青少年编程教育的交互式解决技术方案,通过预置图形化编程节点,以及在编程过程中实现对图形化编程节点的属性编辑和端口间连接关系编辑,可利于构建起一个能够达成编程目标的编程节点网络及编程文件,进而实现可视图形化编程的目的,即无需在熟练掌握英语语法或编程经验的情况下,也能够通过画图连线方式完成编程目的,从而大大简化了编程过程,提高了编程趣味性、编程效率和学习效率,可利于将编程乐趣带到教学或创作设计中,使国内教师、学生以及编程初学者能够更加自由探索和专注于编程创作,尤其利于在国内对中小学编程教育进行推广和普及;
(2)所述方法还具有实操灵活、可读性强、易于查错和用户体验高等优点,便于实际应用和推广。
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
Claims (10)
1.一种实现可视图形化编程的方法,其特征在于,包括如下:
(A).根据第一人机交互结果,在人机交互界面的预置工具箱中确定被选取的图形化编程节点,其中,所述图形化编程节点为由预定义语意和可视化图形构成的封装模块,所述预定义语意包含节点属性信息、端口属性信息和模块化的子程序,所述可视化图形集成有节点名称、端口名称、与节点属性信息对应的节点块图形和与端口属性信息对应的端口图形,所述图形化编程节点的节点类型包括数值型节点、变量型节点、表达式型节点、流程控制型节点、函数型节点、方法型节点、执行型节点和/或事件型节点,所述端口图形包括有至少一个输出端口图形/和输入端口图形;
(B).根据第二人机交互结果,在人机交互界面的编程视图窗中以可视化图形方式显示多个被选取的图形化编程节点,其中,至少有一个图形化编程节点的节点类型为执行型节点;
(C).根据第三人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的属性编辑器,最后根据在该属性编辑器中的第一操作结果更新该图形化编程节点的节点属性信息和/或端口属性信息,其中,所述第一操作结果包括文本拷贝、文本粘贴、文本删除和/或文本输入;
(D).根据第四人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后建立对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中用线组件连接该输出端口图形和该输入端口图形,其中,输出端口与输入端口的连接关系表示在运行时一图形化编程节点的且对应该输出端口的输出数据需要作为另一图形化编程节点的且对应该输入端口的输入数据,输出端口与输入端口的连接关系为一对一连接关系或一对多连接关系;
(E).根据第五人机交互结果,将编程视图窗中的所有图形化编程节点及它们的所在位置、预定义语意及端口间的连接关系保存在一个文件中。
2.如权利要求1所述的一种实现可视图形化编程的方法,其特征在于,还包括如下:
(F).根据第六人机交互结果以及由端口间的连接关系所确定的数据流向和/或执行方向依次运行在编程视图窗中所有图形化编程节点的子程序,并在某个图形化编程节点出现运行错误时,终止运行,最后在编程视图窗中以报错状态颜色标识该图形化编程节点的节点块图形。
3.如权利要求1所述的一种实现可视化图形编程的方法,其特征在于,还包括如下:
(G).根据第七人机交互结果,在编程视图窗中确定被选取的一图形化编程节点的输出端口图形和另一图形化编程节点的输入端口图形,然后断开对应该输出端口图形的输出端口与对应该输入端口图形的输入端口的连接关系,最后在编程视图窗中取消两端口图形间的线组件。
4.如权利要求1所述的一种实现可视化图形编程的方法,其特征在于,还包括如下:
(H).根据第八人机交互结果,在编程视图窗中确定被选取的图形化编程节点,然后在人机交互界面中显示该图形化编程节点的代码编辑器,并通过该代码编辑器显示将该图形化编程节点的子程序编译为预选代码语言形式的代码,最后根据在该代码编辑器中的第二操作结果更新该子程序,其中,所述第二操作结果包括文本拷贝、文本粘贴、文本删除和/或文本输入。
5.如权利要求1所述的一种实现可视化图形编程的方法,其特征在于,还包括如下:
(I)、根据在编程视图窗中的所有图形化编程节点及它们的所在位置及端口间的连接关系,运行排序算法对所有图形化编程节点的所在位置进行排序布局,使交叉线组件的数量最少化。
6.如权利要求1所述的一种实现可视化图形编程的方法,其特征在于:所述节点属性信息包括节点ID、节点包名、节点作者、节点名称、节点类型和/或支持语言,所述端口属性信息包括端口ID、端口名称、连接必要性、端口数据类型、端口交互类型、端口外部命令和/或表达式,其中,所述端口数据类型包括数字型端口、布尔型端口、字符串型端口、列表型端口、元组型端口、字典型端口、集合型端口、文件型端口、多态型端口、全态型端口、执行型端口和/或虚拟型端口。
7.如权利要求1或6所述的一种实现可视化图形编程的方法,其特征在于:在发现某个图形化编程节点的所有必须连接端口中存在无连接关系的端口时,以报错状态预置颜色标识该图形化编程节点。
8.如权利要求1或6所述的一种实现可视化图形编程的方法,其特征在于:在编程视图窗中,以不同的第二预置样式一一对应地标识各种端口数据类型的端口图形,并在步骤(D)中,若发现分别对应输出端口图形和输入端口图形的两端口数据类型不匹配,则终止建立端口间的连接关系,其中,所述第二预置样式包括形状和/或颜色。
9.如权利要求1所述的一种实现可视化图形编程的方法,其特征在于:所述图形化编程节点的节点类型还包括有复合型节点,其中,所述复合型节点为由用户自定义可视化图形和若干图形化编程节点构成的封装模块。
10.如权利要求1所述的一种实现可视图形化编程的方法,其特征在于:在编程视图窗中,以不同的第一预置样式一一对应地标识各种节点类型的节点块图形,其中,所述第一预置样式包括形状和/或颜色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393014.9A CN109542422A (zh) | 2018-11-21 | 2018-11-21 | 一种实现可视图形化编程的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811393014.9A CN109542422A (zh) | 2018-11-21 | 2018-11-21 | 一种实现可视图形化编程的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542422A true CN109542422A (zh) | 2019-03-29 |
Family
ID=65848909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811393014.9A Pending CN109542422A (zh) | 2018-11-21 | 2018-11-21 | 一种实现可视图形化编程的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542422A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188270A (zh) * | 2019-05-26 | 2019-08-30 | 韶关市启之信息技术有限公司 | 一种基于熟悉环境协助用户学习编程的方法 |
CN111158669A (zh) * | 2019-12-06 | 2020-05-15 | 佛山缔乐视觉科技有限公司 | 一种图形化编程视觉系统及工业控制方法 |
CN111475153A (zh) * | 2020-03-10 | 2020-07-31 | 陈莉 | 一种基于图形化技术的云资源混合编排系统及方法 |
CN111563079A (zh) * | 2019-11-25 | 2020-08-21 | 常州天健智能科技有限公司 | 一种数据编译方法及数据库终端 |
CN111651153A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程工具的程序化创作方法及装置 |
CN111651154A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程角色变换的创作方法及装置 |
CN111696408A (zh) * | 2020-06-22 | 2020-09-22 | 小狮互联(杭州)科技有限公司 | 一种实现空间编程的适配方法、装置及编程系统 |
CN111857697A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种基于认知ai的图形化编程实现方法及装置 |
CN111841017A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种游戏ai的编程实现方法及装置 |
CN112214217A (zh) * | 2020-10-10 | 2021-01-12 | 江西洪都航空工业集团有限责任公司 | 一种将编程图形保存为json格式数据的方法 |
CN112700011A (zh) * | 2020-12-31 | 2021-04-23 | 第四范式(北京)技术有限公司 | 一种智能体决策信息展示方法、装置、电子设备及存储介质 |
CN112905166A (zh) * | 2021-03-04 | 2021-06-04 | 青岛海科创新科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN113126977A (zh) * | 2019-12-31 | 2021-07-16 | 深圳市赛元微电子有限公司 | 图形化编程系统及实现单片机的图形化编程的方法 |
CN113515273A (zh) * | 2021-04-23 | 2021-10-19 | 东莞市精驰软件有限公司 | 可视化编程软件的图形折叠方法、装置、设备及存储介质 |
CN113535154A (zh) * | 2021-07-16 | 2021-10-22 | 麦克方程(北京)科技有限责任公司 | 无代码编程方法及装置、电子设备、可读存储介质 |
WO2023273700A1 (zh) * | 2021-06-29 | 2023-01-05 | 北京字跳网络技术有限公司 | 一种交互窗口显示方法、装置、设备及存储介质 |
WO2023050231A1 (zh) * | 2021-09-29 | 2023-04-06 | 西门子(中国)有限公司 | 用于plc的图形化编程方法及装置 |
WO2023062362A1 (en) * | 2021-10-12 | 2023-04-20 | Wales Interactive Group Limited | Visual programming environment for developing interactive media programs |
WO2023109351A1 (zh) * | 2021-12-17 | 2023-06-22 | 北京字跳网络技术有限公司 | 一种群组节点编辑方法及装置 |
CN112700011B (zh) * | 2020-12-31 | 2024-05-31 | 第四范式(北京)技术有限公司 | 一种智能体决策信息展示方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150121272A1 (en) * | 2013-05-01 | 2015-04-30 | The United States Of America As Represented By The Secretary Of The Navy | Process and system for graphical resourcing design, allocation, and/or execution modeling and validation |
CN105843630A (zh) * | 2016-06-08 | 2016-08-10 | 江西洪都航空工业集团有限责任公司 | 一种基于机器人图形化编程开发的方法 |
-
2018
- 2018-11-21 CN CN201811393014.9A patent/CN109542422A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150121272A1 (en) * | 2013-05-01 | 2015-04-30 | The United States Of America As Represented By The Secretary Of The Navy | Process and system for graphical resourcing design, allocation, and/or execution modeling and validation |
CN105843630A (zh) * | 2016-06-08 | 2016-08-10 | 江西洪都航空工业集团有限责任公司 | 一种基于机器人图形化编程开发的方法 |
Non-Patent Citations (1)
Title |
---|
WCL8929: "数字电路的软件仿真Multisim 10的应用", 《百度文库》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188270B (zh) * | 2019-05-26 | 2021-04-13 | 邹魏华 | 一种基于熟悉环境协助用户学习编程的方法 |
CN110188270A (zh) * | 2019-05-26 | 2019-08-30 | 韶关市启之信息技术有限公司 | 一种基于熟悉环境协助用户学习编程的方法 |
CN111563079A (zh) * | 2019-11-25 | 2020-08-21 | 常州天健智能科技有限公司 | 一种数据编译方法及数据库终端 |
CN111158669A (zh) * | 2019-12-06 | 2020-05-15 | 佛山缔乐视觉科技有限公司 | 一种图形化编程视觉系统及工业控制方法 |
CN113126977A (zh) * | 2019-12-31 | 2021-07-16 | 深圳市赛元微电子有限公司 | 图形化编程系统及实现单片机的图形化编程的方法 |
CN111475153A (zh) * | 2020-03-10 | 2020-07-31 | 陈莉 | 一种基于图形化技术的云资源混合编排系统及方法 |
CN111651153A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程工具的程序化创作方法及装置 |
CN111651154A (zh) * | 2020-04-27 | 2020-09-11 | 北京编程猫科技有限公司 | 一种基于图形化编程角色变换的创作方法及装置 |
CN111857697A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种基于认知ai的图形化编程实现方法及装置 |
CN111841017A (zh) * | 2020-05-29 | 2020-10-30 | 北京编程猫科技有限公司 | 一种游戏ai的编程实现方法及装置 |
CN111696408A (zh) * | 2020-06-22 | 2020-09-22 | 小狮互联(杭州)科技有限公司 | 一种实现空间编程的适配方法、装置及编程系统 |
CN111696408B (zh) * | 2020-06-22 | 2022-04-15 | 小狮互联(杭州)科技有限公司 | 一种实现空间编程的适配方法、装置及编程系统 |
CN112214217A (zh) * | 2020-10-10 | 2021-01-12 | 江西洪都航空工业集团有限责任公司 | 一种将编程图形保存为json格式数据的方法 |
CN112700011A (zh) * | 2020-12-31 | 2021-04-23 | 第四范式(北京)技术有限公司 | 一种智能体决策信息展示方法、装置、电子设备及存储介质 |
CN112700011B (zh) * | 2020-12-31 | 2024-05-31 | 第四范式(北京)技术有限公司 | 一种智能体决策信息展示方法、装置、电子设备及存储介质 |
CN112905166A (zh) * | 2021-03-04 | 2021-06-04 | 青岛海科创新科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN112905166B (zh) * | 2021-03-04 | 2024-04-05 | 青岛海科智汇信息科技有限公司 | 人工智能编程系统、计算机设备、计算机可读存储介质 |
CN113515273B (zh) * | 2021-04-23 | 2024-05-24 | 东莞市精驰软件有限公司 | 可视化编程软件的图形折叠方法、装置、设备及存储介质 |
CN113515273A (zh) * | 2021-04-23 | 2021-10-19 | 东莞市精驰软件有限公司 | 可视化编程软件的图形折叠方法、装置、设备及存储介质 |
WO2023273700A1 (zh) * | 2021-06-29 | 2023-01-05 | 北京字跳网络技术有限公司 | 一种交互窗口显示方法、装置、设备及存储介质 |
CN113535154A (zh) * | 2021-07-16 | 2021-10-22 | 麦克方程(北京)科技有限责任公司 | 无代码编程方法及装置、电子设备、可读存储介质 |
WO2023050231A1 (zh) * | 2021-09-29 | 2023-04-06 | 西门子(中国)有限公司 | 用于plc的图形化编程方法及装置 |
WO2023062362A1 (en) * | 2021-10-12 | 2023-04-20 | Wales Interactive Group Limited | Visual programming environment for developing interactive media programs |
WO2023109351A1 (zh) * | 2021-12-17 | 2023-06-22 | 北京字跳网络技术有限公司 | 一种群组节点编辑方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542422A (zh) | 一种实现可视图形化编程的方法 | |
Jensen | An introduction to the theoretical aspects of coloured petri nets | |
JP3921479B2 (ja) | 自然言語に似た構造を用いたデータベースのモデル化及び照会に関する方法及び装置 | |
Miller et al. | Evolution of novice programming environments: The structure editors of Carnegie Mellon University | |
Bischofberger | Sniff (abstract) a pragmatic approach to a C++ programming environment | |
CN101634940B (zh) | 通过脚本开发电脑游戏的方法 | |
CN110377280A (zh) | 一种用于编程教学的可视化系统 | |
Vinayakumar et al. | DB-learn: studying relational algebra concepts by snapping blocks | |
Guibert et al. | Example-based programming: a pertinent visual approach for learning to program | |
Funka-Lea et al. | Interactive visual modeling for performance | |
Nash-Webber | Anaphora and logical form: on formal meaning representations for natural language | |
Steingartner | Support for online teaching of the Semantics of Programming Languages course using interactive software tools | |
Sloman | Beginners need powerful systems | |
Brown et al. | An experimental graphics system with natural language input | |
Kis et al. | Lightweight low-level query-centric user interface modeling | |
Barmpoutis | Integrating algebra, geometry, music, 3D art, and technology using emoticoding | |
Václavková et al. | Graphical development environment for object programming teaching support | |
Takahashi et al. | A constraint-based approach for visualization and animation | |
Suraj et al. | A Petri Net System–an Overview | |
Pereira et al. | Choosing grammars to support language processing courses | |
Kimura et al. | Form/formula: a visual programming paradigm for user-definable user interfaces | |
CN205354427U (zh) | 防人因培训装置star机 | |
Fatwanto | Software requirements translation from natural language to object-oriented model | |
Munro | Authoring interactive graphical models for instruction | |
Bretan | Natural Language in Model World Interfaces |
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 |
Application publication date: 20190329 |
|
RJ01 | Rejection of invention patent application after publication |