论文部分内容阅读
[摘 要] 以VB程序设计语言的基本知识为认知范畴,引入框架的概念,并将框架分成语句框架、算法框架、整体框架三类,明确了框架之间的类别关系。框架在程序设计语言教学中的应用主要体现在教师如何引导学生形成框架的过程,为此结合实践总结了多种教学方法帮助学生在不同的认知过程中建立框架的意识,帮助学生学习。经过实践应用,发现在学习中运用了框架后效果显著,学生学得轻松,也更愿意学习。
[关 键 詞] 框架;程序设计语言教学;实践;应用
[中图分类号] G712 [文献标志码] A [文章编号] 2096-0603(2021)25-0234-03
Visual Basic(VB)可视化编程设计语言是程序编写入门级的软件,是中职计算机应用专业的专业核心必修科目。中职学生在学习过程中应树立发现问题、分解问题、将问题转换为算法直至编程的计算思维能力,将直接影响学生后续形成逻辑思维能力和程序设计思想的建立。
一、目前VB程序设计课程教学中存在的问题
(一)学生学习基础较差
中职学生是学习能力相对较弱的群体,接受信息的能力有限,思考能力也有限,不能完全理解从教师、教材以及实践环节传递出来的知识信息,在不能理解的情况下尝试着掌握,就只能依靠记忆。可见,理解能力是阻碍学生形成计算思维、编写代码的重大障碍。
(二)教师教学方法单一
程序设计非常考验人的思维能力,其包含的知识中有大量的概念、术语、规则等,具有复杂性与抽象性的特点。但是,目前教师的教学方法仍停留在传统意义中的讲授以及习题练习上,重复练习对于理解能力较弱的学生来说并不能达到预期的效果。可见,缺乏技巧的教学阻碍了知识信息的传输。
改进教学方法,让教师教得更有技巧、更有针对性,这成为解决学生理解问题的第一手段。为此,笔者尝试在教学过程中渗透“框架”的理念,以梳理思维过程的方法实施程序分块,将复杂的知识简单化、抽象的概念具体化。
二、概念鉴定
(一)框架
框架是一个基本概念的结构,用于解决或者处理复杂的问题。在程序设计范畴内,它是指运用计算思维解决实际问题的算法设计时的固定结构以及对该语言中各类规则的结构化理解。
(二)程序设计语言教学
程序设计语言教学是教师传授程序设计语言知识的过程,是学生学习、掌握编程技巧的重要环节。教学过程中体现了教师的智慧与教育技能,不仅需要教师对程序设计有完整的知识性理解,更需要教师对学生的学习需求及认知特点有全面的把握。结合二者,由教师经过有效的知识组织、教学流程设计等将程序设计语言的相关内容传授给学生并指导学生进行应用。
三、框架应用的意义
(一)构建框架强化思路,有利于规范学生的编程思维
构建适应学习过程的各种类型的框架结构,既是思维过程,又是代码编写的书写顺序。学生在初学时就建立起编程思维意识,使得解决问题更科学、有效。
(二)围绕框架进行切块,有利于提高编程效率
利用框架将编程过程进行划分。学生围绕问题的具体分析过程,将问题具体分散于框架的各个部分,降低了同步思维的数量,使思考的难度降低,逐一解决问题,使学生更容易接受,提高了解题的效率。
(三)基于框架强化计算思维,提高了知识点的可塑性
按照框架的思维对知识进行架构,这个过程就是计算思维的塑造过程,因此每一次架构就是计算思维的强化过程。各类框架的功能相互之间是互相关联的,故在运用过程中,学生对知识点的理解更全面、更灵活,使知识点的可塑性更强。
四、框架的分类与类别关系
(一)框架的分类
在教学过程中采用框架对问题切块、对基础知识再分解,将框架分成三类:语句框架、算法框架、整体框架。框架中的静态部分表示逻辑含义,动态部分表示实际应用。
1.语句框架
VB程序设计语言的知识体系中,赋值语句、选择语句、循环语句等是非常重要的组成部分,是解决问题的最基本元素。
2.算法框架
算法是对问题进行分析后形成计算思维的最终体现,是问题解决的核心代码。目前,中职计算机专业程序设计课程标准中要求学生掌握的算法类型是有限的,笔者将同类算法进行结构化总结并形成统一的框架。
3.整体框架
在对程序设计过程的实践经验指导下,计算是所有程序设计过程的核心环节,围绕计算过程中参与计算的对象即变量可以延伸出变量的定义与变量值的输入两个部分,围绕计算结果的呈现可以延伸出输出部分。
以把握问题解决为主要目标构建的整体框架如图1所示:
(二)类别关系
在VB程序设计语言的知识体系中,语句框架、算法框架、整体框架这三种框架相互之间并不独立,有着千丝万缕的关系。就知识点的综合性而言,语句框架用于呈现某一个逻辑关系,它是解决问题的基础,是最小单元;算法框架用于呈现若干个逻辑关系,由多个语句框架构成;整体框架到达综合性的最高层次,完整地解决了实际问题,是语句框架、算法框架的有机组成。就学习进度而言,根据从个别到整体、由简单到复杂的学习规律,在教学中先掌握语句框架,再掌握算法框架,最后通过整体框架运用于实际的学习过程中。 五、框架程序设计语言教学中的应用
框架在程序设计语言教学中的应用主要体现在教师如何引导学生形成框架的过程。该过程是学生学习知识的过程,是计算思维的养成过程,是解决问题的过程,因此,可将学生是否理解框架,是否能按照框架结构设计算法,是否能运用框架编写代码作为学生是否掌握程序设计语言的评价标准。笔者分别从掌握新知、巩固旧知、实践应用三个认知过程对引导学生形成框架的方式、方法进行梳理,如表1所示。
(一)掌握新知过程
1.语境法。各类语句是运用程序设计语言解决实际问题的基本组成部分,具有固定的逻辑含义以及代码格式。采用语境法指导学生通过口语化的描述问题、关键字提炼的方法整合至框架中,帮助学生完成文本描述向代码转化的过程。如图2以IF语句为例进行演示。
2.表演法。学生在理解某些算法时容易习惯性地采用人脑思维而忽略步骤化,导致理解算法的过程比较吃力。指导学生通过表演使步骤更加明显与细化,帮助学生理解情境中的逻辑思维关系。
比如在教授a,b两个变量的值进行交换的算法时,学生一直认为直接交换即可,无法理解变量c的作用。通过表演(如图3),将思维过程形象化,便于理解与掌握,固化算法框架。
3.演示法。在一些相对比较复杂的算法中包含多种类型的逻辑关系,仅仅依靠口头或文本的描述很难让学生理解,不断重复反而会搅乱学生的思考过程。为此,笔者采用演示法帮助学生看懂为什么,最后帮助学生提炼该算法中静态部分和动态部分的一般规律,形成了算法框架。掌握框架后只要对动态部分稍作修改就可以解决各种同类问题。
比如冒泡法排序的算法框架形成过程(如图4所示)。确定外循环、内循环及判断语句的作用,编写出针对5个数字排序的代码。最后确定代码中哪些部分是静态的,哪些部分是动态的,并着重围绕动态部分研究动态的规律,直至形成冒泡法排序算法的框架。
(二)巩固旧知过程
1.填空法。利用填空题帮助学生巩固已学过的各类框架结构是比较直接的一种方法,它可以使知识要点更为集中,在阅读空格所在的代码时还帮助学生提高了读程序的能力,总之填空题可以使框架結构中的各关键点更加聚焦。
比如判断素数的算法框架中,图5设计的空格用于检测学生对判断素数代码的基本结构的掌握情况,是否理解FOR循环语句和IF判断语句在算法中起到的作用;图6设计的空格用于检测学生对素数判断的条件的认识与理解。
2.检测法。在学习程序设计语言时,一方面要培养学生编写代码的能力,另一方面也要培养学生根据程序运行后的出错信息修正程序的能力。而后者在一定程度上也是学生对程序的熟悉过程,是对已学知识的复习与巩固。
检测法的错题来源于两个方面:一是学生在实践过程中实际存在的错误程序;二是教师人为地设计出的错误程序。一般教师人为设计的错题,由于加入教师个人的教学思想,因此更加具有针对性。如图7所示的错误程序,教师的设计用于测试学生在变量的赋值、If语句框架的结构等方面的错误。
(三)实践应用过程
运用整体框架完成实践应用时,笔者引导学生依托问题进行思考,由解决实际问题的总问题出发,按照整体框架中的四个结构发散出若干子问题,对这若干子问题进行思考,得出解决的方法。整体框架的思维过程包含设问、编码、调整这三个步骤。如图-8所示。
六、应用框架后的成效
笔者多年参与中职计算机专业VB程序设计语言的教学工作,目睹学生因为解题不得法而学习痛苦、成效低下的学习状态非常着急,在进行框架知识结构的理论研究之后,在教学设计过程中引入框架的理念,并且引导学生按照框架理念学习程序设计语言中的各项知识及进行实践运用。经过一段时间后,发现学生发生一些变化,由于框架将问题进行了切块,学生思考过程更为轻松;运用框架将代码过程进行固化,使得学生编码过程更加完整;由于新课教学时注意各类框架的积累,因此知识体系更加完整等。总之,在学习中运用了框架,学生学得轻松,也更愿意学习了。
参考文献:
[1]黄尧.职业教育学:原理与应用[M].北京:高等教育出版社,2009.
[2]徐国庆,职业教育原理[M].上海:上海教育出版社,2007.
[3]王旭卿.从计算思维到计算参与:美国中小学程序设计教学的社会化转向与启示[J].中国电化教育,2014(3).
[4]胡斌,李阳,周迪斌,等.C程序设计课程的框架式教学法[J].计算机教育,2013(5).
[5]冯月华.从知识框架建构谈《计算机组成原理》教学改革[J].甘肃高师学报,2013(9).
编辑 司 楠
[关 键 詞] 框架;程序设计语言教学;实践;应用
[中图分类号] G712 [文献标志码] A [文章编号] 2096-0603(2021)25-0234-03
Visual Basic(VB)可视化编程设计语言是程序编写入门级的软件,是中职计算机应用专业的专业核心必修科目。中职学生在学习过程中应树立发现问题、分解问题、将问题转换为算法直至编程的计算思维能力,将直接影响学生后续形成逻辑思维能力和程序设计思想的建立。
一、目前VB程序设计课程教学中存在的问题
(一)学生学习基础较差
中职学生是学习能力相对较弱的群体,接受信息的能力有限,思考能力也有限,不能完全理解从教师、教材以及实践环节传递出来的知识信息,在不能理解的情况下尝试着掌握,就只能依靠记忆。可见,理解能力是阻碍学生形成计算思维、编写代码的重大障碍。
(二)教师教学方法单一
程序设计非常考验人的思维能力,其包含的知识中有大量的概念、术语、规则等,具有复杂性与抽象性的特点。但是,目前教师的教学方法仍停留在传统意义中的讲授以及习题练习上,重复练习对于理解能力较弱的学生来说并不能达到预期的效果。可见,缺乏技巧的教学阻碍了知识信息的传输。
改进教学方法,让教师教得更有技巧、更有针对性,这成为解决学生理解问题的第一手段。为此,笔者尝试在教学过程中渗透“框架”的理念,以梳理思维过程的方法实施程序分块,将复杂的知识简单化、抽象的概念具体化。
二、概念鉴定
(一)框架
框架是一个基本概念的结构,用于解决或者处理复杂的问题。在程序设计范畴内,它是指运用计算思维解决实际问题的算法设计时的固定结构以及对该语言中各类规则的结构化理解。
(二)程序设计语言教学
程序设计语言教学是教师传授程序设计语言知识的过程,是学生学习、掌握编程技巧的重要环节。教学过程中体现了教师的智慧与教育技能,不仅需要教师对程序设计有完整的知识性理解,更需要教师对学生的学习需求及认知特点有全面的把握。结合二者,由教师经过有效的知识组织、教学流程设计等将程序设计语言的相关内容传授给学生并指导学生进行应用。
三、框架应用的意义
(一)构建框架强化思路,有利于规范学生的编程思维
构建适应学习过程的各种类型的框架结构,既是思维过程,又是代码编写的书写顺序。学生在初学时就建立起编程思维意识,使得解决问题更科学、有效。
(二)围绕框架进行切块,有利于提高编程效率
利用框架将编程过程进行划分。学生围绕问题的具体分析过程,将问题具体分散于框架的各个部分,降低了同步思维的数量,使思考的难度降低,逐一解决问题,使学生更容易接受,提高了解题的效率。
(三)基于框架强化计算思维,提高了知识点的可塑性
按照框架的思维对知识进行架构,这个过程就是计算思维的塑造过程,因此每一次架构就是计算思维的强化过程。各类框架的功能相互之间是互相关联的,故在运用过程中,学生对知识点的理解更全面、更灵活,使知识点的可塑性更强。
四、框架的分类与类别关系
(一)框架的分类
在教学过程中采用框架对问题切块、对基础知识再分解,将框架分成三类:语句框架、算法框架、整体框架。框架中的静态部分表示逻辑含义,动态部分表示实际应用。
1.语句框架
VB程序设计语言的知识体系中,赋值语句、选择语句、循环语句等是非常重要的组成部分,是解决问题的最基本元素。
2.算法框架
算法是对问题进行分析后形成计算思维的最终体现,是问题解决的核心代码。目前,中职计算机专业程序设计课程标准中要求学生掌握的算法类型是有限的,笔者将同类算法进行结构化总结并形成统一的框架。
3.整体框架
在对程序设计过程的实践经验指导下,计算是所有程序设计过程的核心环节,围绕计算过程中参与计算的对象即变量可以延伸出变量的定义与变量值的输入两个部分,围绕计算结果的呈现可以延伸出输出部分。
以把握问题解决为主要目标构建的整体框架如图1所示:
(二)类别关系
在VB程序设计语言的知识体系中,语句框架、算法框架、整体框架这三种框架相互之间并不独立,有着千丝万缕的关系。就知识点的综合性而言,语句框架用于呈现某一个逻辑关系,它是解决问题的基础,是最小单元;算法框架用于呈现若干个逻辑关系,由多个语句框架构成;整体框架到达综合性的最高层次,完整地解决了实际问题,是语句框架、算法框架的有机组成。就学习进度而言,根据从个别到整体、由简单到复杂的学习规律,在教学中先掌握语句框架,再掌握算法框架,最后通过整体框架运用于实际的学习过程中。 五、框架程序设计语言教学中的应用
框架在程序设计语言教学中的应用主要体现在教师如何引导学生形成框架的过程。该过程是学生学习知识的过程,是计算思维的养成过程,是解决问题的过程,因此,可将学生是否理解框架,是否能按照框架结构设计算法,是否能运用框架编写代码作为学生是否掌握程序设计语言的评价标准。笔者分别从掌握新知、巩固旧知、实践应用三个认知过程对引导学生形成框架的方式、方法进行梳理,如表1所示。
(一)掌握新知过程
1.语境法。各类语句是运用程序设计语言解决实际问题的基本组成部分,具有固定的逻辑含义以及代码格式。采用语境法指导学生通过口语化的描述问题、关键字提炼的方法整合至框架中,帮助学生完成文本描述向代码转化的过程。如图2以IF语句为例进行演示。
2.表演法。学生在理解某些算法时容易习惯性地采用人脑思维而忽略步骤化,导致理解算法的过程比较吃力。指导学生通过表演使步骤更加明显与细化,帮助学生理解情境中的逻辑思维关系。
比如在教授a,b两个变量的值进行交换的算法时,学生一直认为直接交换即可,无法理解变量c的作用。通过表演(如图3),将思维过程形象化,便于理解与掌握,固化算法框架。
3.演示法。在一些相对比较复杂的算法中包含多种类型的逻辑关系,仅仅依靠口头或文本的描述很难让学生理解,不断重复反而会搅乱学生的思考过程。为此,笔者采用演示法帮助学生看懂为什么,最后帮助学生提炼该算法中静态部分和动态部分的一般规律,形成了算法框架。掌握框架后只要对动态部分稍作修改就可以解决各种同类问题。
比如冒泡法排序的算法框架形成过程(如图4所示)。确定外循环、内循环及判断语句的作用,编写出针对5个数字排序的代码。最后确定代码中哪些部分是静态的,哪些部分是动态的,并着重围绕动态部分研究动态的规律,直至形成冒泡法排序算法的框架。
(二)巩固旧知过程
1.填空法。利用填空题帮助学生巩固已学过的各类框架结构是比较直接的一种方法,它可以使知识要点更为集中,在阅读空格所在的代码时还帮助学生提高了读程序的能力,总之填空题可以使框架結构中的各关键点更加聚焦。
比如判断素数的算法框架中,图5设计的空格用于检测学生对判断素数代码的基本结构的掌握情况,是否理解FOR循环语句和IF判断语句在算法中起到的作用;图6设计的空格用于检测学生对素数判断的条件的认识与理解。
2.检测法。在学习程序设计语言时,一方面要培养学生编写代码的能力,另一方面也要培养学生根据程序运行后的出错信息修正程序的能力。而后者在一定程度上也是学生对程序的熟悉过程,是对已学知识的复习与巩固。
检测法的错题来源于两个方面:一是学生在实践过程中实际存在的错误程序;二是教师人为地设计出的错误程序。一般教师人为设计的错题,由于加入教师个人的教学思想,因此更加具有针对性。如图7所示的错误程序,教师的设计用于测试学生在变量的赋值、If语句框架的结构等方面的错误。
(三)实践应用过程
运用整体框架完成实践应用时,笔者引导学生依托问题进行思考,由解决实际问题的总问题出发,按照整体框架中的四个结构发散出若干子问题,对这若干子问题进行思考,得出解决的方法。整体框架的思维过程包含设问、编码、调整这三个步骤。如图-8所示。
六、应用框架后的成效
笔者多年参与中职计算机专业VB程序设计语言的教学工作,目睹学生因为解题不得法而学习痛苦、成效低下的学习状态非常着急,在进行框架知识结构的理论研究之后,在教学设计过程中引入框架的理念,并且引导学生按照框架理念学习程序设计语言中的各项知识及进行实践运用。经过一段时间后,发现学生发生一些变化,由于框架将问题进行了切块,学生思考过程更为轻松;运用框架将代码过程进行固化,使得学生编码过程更加完整;由于新课教学时注意各类框架的积累,因此知识体系更加完整等。总之,在学习中运用了框架,学生学得轻松,也更愿意学习了。
参考文献:
[1]黄尧.职业教育学:原理与应用[M].北京:高等教育出版社,2009.
[2]徐国庆,职业教育原理[M].上海:上海教育出版社,2007.
[3]王旭卿.从计算思维到计算参与:美国中小学程序设计教学的社会化转向与启示[J].中国电化教育,2014(3).
[4]胡斌,李阳,周迪斌,等.C程序设计课程的框架式教学法[J].计算机教育,2013(5).
[5]冯月华.从知识框架建构谈《计算机组成原理》教学改革[J].甘肃高师学报,2013(9).
编辑 司 楠