基于计算思维的Visual Basic程序设计教学实践
2017-10-21祝国明
祝国明
摘 要: 在案例的分析、设计和实现过程中引领学生体会、理解、运用计算思维,更好地掌握知识,这是本文的出发点。基于Visual Basic 6.0平台下编写类计算器程序,其知识点涵盖的范围相对全面,要求综合分析、解决问题的能力较为完善,有利于培养、提高学生的计算思维。在实例制作过程中可以更好的地理解、体会计算思维,在知识应用中可以更好地掌握知识,本文是在基于VB控件数组及TAG属性的机制下,部分模拟OS系统中计算器的功能,并予于实现,在分析设计过程中引導计算思维。
关键词: 计算思维; 控件数组; TAG
【中图分类号】 G642.0 【文献标识码】 A 【文章编号】 2236-1879(2017)12-0033-02
引言:
本文是基于2014江西省教改课题《以培养计算思维为导向的案例教学实践研究》下的应用,以相对完整的实例进行计算思维的培养,对案列分析、设计并加以实现。简单理解计算思维[1]即是运用科学的计算机思想、方法进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动。在案例的实现过程中引领学生体会、理解、运用计算思维,更好地掌握知识。要充分体现和挖掘计算思维,须选择相对综合的案例进行,在实施教改中应宜选择包含数据后台的较大型综合案例。本案例局部而言除了数据后台之外,涵盖的知识相对完整,可以相应程度地体现问题的计算思维角度。
1 主观思考、能动交流及思维引导
要理解并提升计算思维可以引领学生体会计算思维在问题求解、设计中的应用与方法,让学生先行对于问题的设计进行主观的思考,通过约简、优化完成问题的系统设计及功能的优化。通过与学生互动式交流,统一本案例的功能预期,进行思维的引导。
本程序案例相对学生而言较为熟悉,可以让学生结合生活中及操作系统的计算器进行系统设计定位, 讨论计算器的功能,并进行优化,对于实现过程中可能面临的主要问题的方案设计及解决方法进行主观讨论,相互交流。
本阶段教师结合学生交流与讨论,把握案例的综合难度,统一本案例的功能预期,实现功能描述如下:本计算器可以进行连续的四则运算、倒数、求余及平方根,同步显示结果;也可以单击'='号获取结果;Backspc、C分别为修改和清除當前输入操作数;CE为恢复计算器初始状态;OFF为退出。如图1所示。
针对数据处理及功能操作的实现机制,可进行思维的引导,一,引导学生从系统设计的层面去思考问题的设计,考虑计算器功能的整体性、协调性及执行效率,并加于结构及性能的优化,实体功能不宜混乱,重复,联系不清,不利于模型化处理;二,数据符号、运算符号、操作符号在案例当中的呈现形式?是个体呈现还是组合呈现?三类符号是统一还是分类?三,数据处理中的数据存储采用何种形式,数组,变量,还是控件的专有属性项加以实施?四,数据操作过程中的反复性,可修改状态下的数据响应及处理,如何实现?
2 基于问题的切入与思维的展开
以问题的方式切入、展开,通过思维引导有利于调动学生主动思考,提升学生对于问题的主观能动思维。在教学过程中,教师尽可能、恰当地将所要完成的目标、及实现过程中可能会出现的现象以问题的形式加以呈现、提问、并逐步进行计算思维解决问题的方法引导,有利于提升学生的兴趣,提升学生的计算思维能力。
(1)对本计算器功能本质的问题展示。
计算器本质的功能是数据计算处理,那么在实现过程中,引导学生清楚计算器运算处理所可能出现的几种形式,即本计算器的预期功能实现分析:
1)双操作数简单数据处理;2)连续数据操作处理;3)修改数据、运算符数据处理。即,计算器处理数据的三种形式,也是功能的主体目标,是解决问题的关键。
(2)计算器数据处理过程中执行方式问题展示。
本计算器在具体进行运算时会现的若干可能性,即引导学生理清计算器运算过程中要解决的几种执行方式问题,细化问题的实施角度,清晰问题的思维,又如何去解决问题。
1)两个数的运算执行,如1+2=的点击执行;
2)三个及以上数据的连续运算,如1+2+4-6=的点击执行;
3)分段式计算,即在前一阶段的运算结果基础上继续运算;
4)修改运算符及修改运算操作数,即临时修改已点选的运算符,或是修改参与运算的新数据;
5)一个数据的单目运算,如,求平方根、倒数。
(3)解决问题的思维展开、引导
1)两个数的运算执行,这种方式较为简单,利用记录前后两次的操作数,可以直接进行运算;
2)三个及以上数据的连续运算,如1+2+4-6=的点击执行,可以有以下两种方式偿试,第一种,即时执行得出结果,即,1+2→3+4→7-6→1;第二种,执行过程中用堆栈的方式保留全部的运算数及运算符。显然,第一种方式最为直接有效!
3)分段式计算,即计算分段进行,则如何保存即时或是中间结果是为关键。
4)修改运算符及修改运算数,这种现象在运算中很常见,临时改变计算的种类或是修改运算数的即时输入。其中如何解决重复输入运算符的有效选择这是主要问题所在,比如,点击1+*2=,这时的结果应以1*2=2执行。
5)一个数据的单目运算,如,求平方根、倒数。
单目运算可以有两种,一,直接单目运算;二,间接单目运算,即运算过程中的对临时运算结果做单目运算。
6)操作数的临时保存的解决方法以及运算过中程的结果如何在上述各种形式下保存,是否方式统一或是一致。
通过以上计算器功能及数据计算执行方式两类问题的切入、展开及思维的引导,学生可达到目标清晰,思维明确。
3 计算思维方法的映射
在实例制作的过程中,相应地引导学生去理解计算思维的方法、运用计算思维的方法去尝试解决问题的设计,可以提升学生解决问题的能力,也有利于学科知识的学习与应用。计算思维方法有很多,教师可以结合本计算器的程序实例情况,做到计算思维方法的有效、恰当地映射。
本程序案例可就计算思维的工程方法作相应映射:
(1)计算思维系统方法:
计算思维系统方法是从系统设计的层面去思考问题的方法,考虑系统功能的整体性、协调性及执行效率,并予于结构、性能的优化,模块功能宜清晰、不混乱、不冗余,其间联系清晰、简明。进行模型化处理,抽象、建模;
本计算器程序的功能分类三块:一是数值符号对应功能,负责数值的接收、显示等;二是运算符号的对应功能,负责运算功能的选择与计算;三是其他操作功能的,负责计算器的复位、运算数据修改及退出。此三类功能在程序的运行中既独立也有相应关联,要体现良好的整体性、协调性,也须优化其相互的关系,使之统一、高效、角色清晰、不重复、冗余。
比如:数据计算过程中,可以连续运算,即选取新的运算符后,得出之前的阶段运算结果,也可点击“=”运算符得出最终运算结果,这是两类运算结果的求取功能,既独立,又相互关联,但却不是功能不清、冗余重复,而是提高了运算器的运算效率。那么如何从系统层面规化、优化问题的设计,即是计算思维系统方法的应用体现。
(2)计算思维面向对象方法:
面向对象隶属可视化编程,以类抽象及实例对象加以呈现,对象即类的实例体现,进行数据、方法、操作的封装。消息、參数的传递是实体间联系方式,有利于简明问题思维,问题的设计,问题的实现,提高问题解决的效率。
本计算器程序设计体现:一、数值符號、运算符号、其他操作符号全部基于对象控件按钮,分二组归类;二、数据、数值中间运算结果及运算符操作的选取全部基于具体控件的对应属性;三、程序的数据、方法、操作完全在控件实体对象数组中封闭完成,对象间消息的传递基于控件的属性值,控件按钮组中成员事件的响应以控件数组当中的标号以示区别,事件代码集成、高效、简化,问题思维清晰、简明。
(3)计算思维结构化方法:
结构化程序设计的主体思想、方法是问题上至下、大至小、逐渐细化的模块化设计方法。有利于简明结构、细化功能。利用顺序,选择,循环基本结构解决全部的结构化程序设计。
本计算器程序设计体现:在计算思维系统方法的应用基础上进一步对本计算器的功能进行界定与细化。一、数值符号组,其完成运算操作数的记录和及时更新,清除输入数值过程中的无效操作,为后续的具体运算做好有效准备;二、运算符号及操作修改类符号组,完成所有数值及运算符号的调取并执行运算,包括其他第三类全部操作。运算、修改之类模块利用多分支结构和控件数组下标进行选择性的事件响应和功能集成。三、计算器的初始化及复位状态的设置,由窗体导入事件加以完成。由此利于程序的详细设计。
4 算法的设计、实现及知识应用
(1)界面的设置及代码功能的设计:
在VB可视化编程平台,基于模块功能分类,创建两个控件数组及计算结果显示界面。即,加入一个VB文本框控件text1,加入两个按钮控件数组command1(),command2(),text1文本框用于显示输入、显示运算结果,command1()中包括‘0-9、‘.、‘+/-按键,下标为0-11,command2()包括所有运算符、修改、重置、退出按钮,下标为0-11。利用控件数组可以更高效地引用各个控钮,并可以集成功能代码,利用其下标清晰、快速地进行代码分类。
控件数组command1()负责完成的代码功能:1)数字键点击时,文本框即时显示操作数输入;2)保存文本框的操作数输入,即记录运算操作数。
控件数组command2()负责完成的分块代码功能:1)修改操作数的输入,包括清除本次操作数和一次清除一个输入;2)计算器状态重置;3)倒数的求取与错误防范;4)算术平方根的求取与错误防范;5)点击四则运算及求余运算符的计算;6)点击“=”求四则运算及求余的运算结果;7)退出计算器。
(2)算法、控件和结构化的知识应用:
本程序算法的关键问题设计在于:1)连续运算中其中间计算结果的处理;2)运算过程中运算符号的临时性修改怎么自动以最后一次选择为准3)一次完整运算结束后运算中间结果、运算操作数状态、运算符号历史选择状态的相应处理。为此,本程序设计如下:
Command1(0).Tag = Command1(0).Tag & Command1(Index).Caption 记录运算操作数的输入并及时更新,其值为""结束操作数的历史记录;Command1(1).Tag表示存储运算符号的选择,值为 -1 示为结束运算符选择的历史记录,值为0-4表示加、减、乘、除、求余。Text1.Text = Format(Val(Command1(0).Tag), "0.#####################") 文本框即时显示当下操作数的输入;Text1.Tag 表示每一步运算中间结果,值为“0”时没有中间运算结果;
本程序结构化的知识应用,多分支结构主体应用:
Select Case p
Case x……
……
case else……
end select,例如:利用控件下标index多分支响应,利用Command1(1).Tag运算符号多分支运算选择。让学生在知识应用中理解并学习学科知识。
5 结束语
本案例程序是在计算思维的引导下完成对于问题的设计与求解的,通过综合实例的制作提升学生对于学科知识学习与应用效率,理解计算思维在问题求解中的作用,运用计算思维方法去解决相应问题,从而提升学生解决问题的计算思维能力。
参考文献
[1] 朱亚宗.论计算思维——计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009(4).
[2] 何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养——《九校联盟(C9)计算机基础教学发展战略联合声明》解读[J].中国大学教学,2010(9).
[3] 陈杰华,戴丽娟.以培养计算思维为核心的程序设计实验教学[J].实验技术与管理,2011(1).
[4] 李巧玲,项目教学法在Visual Basic程序设计教学中的实施 [J]教学园地2012.27.100.
[5] 殷士勇,基于任务驱动的《Visual Basic 程序设计》教学模式探讨 铜仁学院学报2012(14).
[6] 贾茹,郝长胜,裴衣非.Visual Basic程序设计课程的计算思维教学实践.电脑知识与技术 2011(9).