势科学视角下计算机基本编程教学改革实践

2017-07-12 08:06张汀维
电脑知识与技术 2017年13期
关键词:计算思维教学改革

张汀维

摘要:针对非计算机专业学生计算思维能力培养目标和当前计算机编程教学现状,依据势科学原理,将计算机基本编程的三种基本结构,通过学生熟悉的问题求解,利用图形化编程工具贯彻到教学实践中,提高了课程教学的信息量、加深了学生对计算思维核心概念的理解、提高了学生的动手能力和实践兴趣。

关键词:教学改革;势科学;计算思维

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)13-0113-03

1概述

大学生计算思维能力的培养已经得到各个高校的广泛认可,而计算机编程实践是计算思维能力培养一个比较重要的途径。然而面对非计算机专业学生,传统的程序设计教学过程往往比较注重语言语法规则的讲解。不同知识点的教学素材往往孤立,缺乏彼此间的联系,初学者疲于适应和应对繁杂的语法规则,很难专注于对问题的求解,在实践中屡屡挫败,难以获得成就感,很多学生慢慢丧失了学习的兴趣,动手能力普遍较差。为此,依据势科学原理,通过学生熟知的一元二次方程的求解和利用图形化编程工具Raptor,将编程的三种基本结构,贯彻到同一个问题求解的教学实践中,在实践中采用循序渐进、逐步拓展的方式,使非计算机专业的初学者将精力放在问题求解本身,免除编程语言繁杂的语法规则限制,大大地提高了课堂教学的信息量和提升了学生实践能力和效果。

2计算思维与势科学简介

计算思维是当前一个颇受关注的涉及计算机科学本质问题和未来走向的基础性概念。这一概念最早是由麻省理工学院(MIT)的SeymourPapert教授在1996年提出的,但是把这一个概念提到前台来,成为现在受到广泛关注和认同的代表人物是美国卡内基梅隆大学(CMU)的周以真教授(Jeannette M.Wing)。周教授认为,计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。计算思维就是通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道怎样解决的问题。计算思维是一种递归思维。它是并行处理。它是把代码译成数据又把数据译成代码。它是由广义量纲分析进行的类型检查。计算思维采用了抽象和分解来迎接庞杂的任务或者设计巨大复杂的系统。它是关注的分离(Soc方法)。它是选择合适的方式去陈述一个问题,或者是选择合适的方式对一个问题的相关方面建模使其易于处理。计算思维是按照预防、保护及通过冗余、容错、纠错的方式从最坏情形恢复的一种思维。计算思维利用启发式推理来寻求解答,就是在不确定情况下的规划、学习和调度。计算思维的本质是抽象和自动化。

势科学这一概念是由李德昌副教授提出的。势科学研究的主要内容是与素质、创新及和谐有关的、现有理论无法给以科学阐述的、涉及复杂系统的内容。势科学研究的可操作性概念是“对称性”,基本研究方法是从整体直觉到逻辑演绎。势的运行机制是“差别促进联系,联系扩大差别”。人才成长和教育过程是一个信息作用的动力学过程,是学生在现有知识体系下,通过与教师或教材进行信息互动,学习新知识,重新建立自我知识体系的动态过程。教学的信息量大小决定教学效果和人才培养的质量。在此,信息量大并不是指讲述或给出大量信息,而是信息量与信息势等价,即信息量=差别÷距离=差别×联系。由此公式可知,如果所讲知识与学生当前知识体系差别巨大(极限状态为相反),但没有任何联系则信息量为0,如果所讲知识与原有知识联系非常紧密(极限状态为相同),但没有差别,信息量也为0,既相反又相同,则信息量最大。例如用学生已经掌握的知识或者原理,解释新的完全不同的知识或原理,则学生最容易接受,就是信息量大的缘故。在教学的过程中,如果展示给学生的信息量过小,就难于激发其学习热情,易产生厌学现象。

3Raptor图形编程软件简介

Raptor是基于流程图的可视化编程工具,需要的语法规则较少,编程默认由start椭圆框开始由End椭圆框结束,另外有六个图形编程符号供程序员使用,如图1右上角符号下方所示,分别是赋值框、调用、输入、输出、选择和循环。赋值框用于对变量进行初值设定或根据公式进行计算;调用框用于引用已经编号的程序段;输入从键盘获取并设置某个变量的值;输出将计算结果输出打印到屏幕;选择框用于根据不同条件进行分支程序设计;循环框用于对满足条件的进行重复处理;另外Raptor编程环境实现了常用的基本函数功能,例如,开平方(sqrt)、求余(mod)、取正玄(sin)、余玄(COS)和三角函数等。这些功能都可以用名称在图形框中直接引用进行计算,非常方便。另外,将问题求解流程图转换为编程语言比较容易。Rap-tor软件能够自动将该求解流程转换为c,c++和iava语言等其他语言,或者直接转化为可执行的exe文件。

4计算机基本编程教学实践

计算思维能力的培养是一个循序渐进的过程,需要通过系统的训练才能获得,而计算机编程实践是计算思维能力培养的重要手段,计算机编程则是问题求解的形式化表示。通过教学实践发现,学生初学编程遇到的主要障碍是对所求解的问题没有基本解决思路,甚至自己本身都不會求解,谈何编程实现。为此根据计算思维能力培养目标要求,在教学中注重问题求解能力的培养,先淡化编程规则的学习。在教学中以问题求解为驱动,采用Raptor软件进行问题求解建模,由浅到深,循序渐进,先构建问题求解基本框架,然后逐步求精细化。以此逐步培养学生的问题求解能力。计算机基本编程核心内容为三大基本结构的理解和应用,包括顺序结构、选择结构和循环结构。三种结构其实是日常事务处理和问题求解的基本思路,已经证明,任何复杂的问题,都可以由这三种基本结构组成的程序完成。顺序结构就是按顺序一步一步进行事务处理,这种结构在所有编程中都有所体现。依据势科学原理以初学者熟知的一元二次方程的求解为教学素材对选择结构和循环结构进行计算机编程教学实践,即联系紧密差异巨大,以此形成强大的信息势,以此提升教学效果。

4.1选择结构

选择结构和顺序结构的主要区别在于選择结构具有条件判断,根据条件的不同选择不同的程序模块进行执行,而非完全顺序执行。对于初学者来说,计算机问题求解最大的问题是所求解问题的形式化表示。一元二次方程的抽象形式为ax2+bx+c=0,因为未知数x为人为规定,而等于0可隐含表示,故一元二次方程的计算机形式化表示只需要表示a、b和c三个参数的数值即可,其两个根的计算机求解结果可人为表示为式(1)和式(21的表示形式。

依据势科学原理,先以一个特例(如:x2-2x-3=0)人手,快速调动学生对以往所学知识的回顾,获得一般通用问题的求解步骤。接着先以特例求解开始使用Raptor软件进行求解。如图1所示。该流程图完全采用顺序结构,本次设计共使用5个赋值框,前三个方框为赋值框,分别对参数a、b和c进行赋处置,即设置一元二次方程的3个系数,最后方框两个分别用于计算该方程的两个解x1和x2,即分别利用公式(1)和(2)进行求解。如图1所示,这样的设计就完成了简单的特例方程的求解,关键是这样设计不但可以执行(选择小三角“执行”按钮,即可完成该问题的求解,最后结果x1=3,x2=-1),而且可以观察执行的流程,本次设计主控台没有任何输出,只显示运行次数为7,包括开始和结束共有7个编程框。

为了能够解决任意一元二次方程,将3个赋值框改为输入框,同时增加一个输出框用以格式化输出计算结果,在输出框中显示所求解得值。该求解流程与前者的区别在于a,b,c三个参数都能在运行中任意输入,同时具有输出提示。当我们输入a=l,b=-2,c=-3后,即可完成该一元二次方程的求解,并显示“The first solution is 3 The second solution is-1”。

在执行时,当我们输入a=0,b=1,c=-2时,显示“The first so-lution is 0 The second solution is 0”。显然,问题求解出错,以此引起学生的思考使其明白上述解决方案没有考虑a=0的情况,为了获得正确的解,需要对此对求解方案进行修改,也就是在求解之前先增加一个选择框对a=0进行判断,如果af_0,按原来的求解方案进行,否则,增加一个分支用以计算当a=0时即变为一元一次方程的求解的计算赋值框x=-c/b,并且增加输出提示框。修改后重新执行并且输入a=0,b=1,c=-2时,显示The on-ly solutionis 2。

到此再让学生思考,修改后的求解流程是否还存在不足,有没有未考虑到的情况。并让学生对求解流程进行修改完善,增加考虑的情况即b*b-4*a*c<0的情况。这种情况将出现两个虚根,由于虚数是人为规定的记数符号,故先要求解出实部和虚部,再由实部和虚部组合出两个虚根,这需要用输出框在输出时灵活组织即文本与变量的连接技巧。当输入a=1,b=2,c=1.25,显示求解结果为“The first imaginary solution is-1+0.5i”和“The second imaginary solution is-1-0.5i”。到此一个任意的一元二次方程求解得到圆满解答,如图2所示。在图2中,使用了两个选择结构,共有三个分支,从左到右分别是一元一次方程两个实根的求解、两个虚根的求解和一元一次方程的求解,程序会根据方程参数的不同自动选择相应的分支进行求解。

4.2循环结构

循环结构又称重复结构,根据给定的条件,判定是否需要重复执行某一相同的或类似的程序段。对于初学者来说,循环结构使用的难点是循环体的抽象和循环变量更新赋值语句x=x+1的理解,这个等式在数学中是不成立的,这里的等号“=”表示赋值。计算机能够自动执行程序的一个关键是计算机学科将该等式赋予了新的意义,即将变量x的值加1后再赋值给变量x。为了能够和选择结构的内容相联系,在这里,我们假设有3个一元二次方程要求解,在不使用循环结构的情况下,我们需要对上面已经编好的程序执行3遍,在这种情况下,循环体非常容易理解,也就是上面编写好的整个程序。为了便于理解,将上面的程序作为一个模块并重新命名为EquationSolving,然后新建主程序,在程序中增加循环结构,并在循环结构中调用EquationSolving,以此完成一次执行可以对多个一元二次方程的循环求解。其求解流程如图3所示。在图3中,先通过一个输入框获得要求解的方程的个数n(本例n=3),再对循环变量i赋初值i=1,然后在循环结构的条件中判断i是否大于n,如果i>n,则结束,否则执行方程求解模块EquationSolving,执行完毕,修改循环变量的值,i=i+1,然后再次判定循环条件,以此继续下去,直到满足退出循环的条件为止。上述三个方程的连续求解流程及结果如图3主控台显示所示,共有三个方程n=3,需要循环3次执行方程求解模块EquationSolving,求解结果显示在主控台信息显示窗口内。

5结束语

计算思维能力的培养需要一个较长期的训练过程,本文将计算机三种基本编程结构知识点依据势科学原理进行教学改革,利用Raptor图形化编程工具,采用循序渐进逐步细化求精、不断扩展的方式,通过学生熟知的一元二次方程的求解过程使所有知识点紧密联系在一起,但每一次渐进与前者又差别较大,以此形成扩大信息势,使学生在这种巨大信息势的作用下,快速完成新知识的理解,并且能够在不用掌握太多编程规则的情况下,就能够完成原有熟知问题的计算机形式化求解方案表示,而且能够执行和观察结果,在不断获得成就感中快速提升实践动手能力。

猜你喜欢
计算思维教学改革
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究