您现在正在浏览:首页 > 职教文章 > 职教论文 > 巧建模型 剖析算法 培养兴趣 轻松入门

巧建模型 剖析算法 培养兴趣 轻松入门

日期: 2005-11-25 13:05:36 浏览: 171 来源: 学海网收集整理 作者: 佘莉

一、问题的提出
1、学生认识结构的特点与计算机语言教学现状的矛盾
职业学校学生直观形象思维强于抽象逻辑思维,学习中以感性认识、行为把握为主,不善于对知识的产生、发展、形成进行逻辑推理。造成原有认知结构中沉淀下来的数学概念、原理、法则在呈现时表现为不稳定性和不清晰性。能进行程序设计是计算机语言教学目的,算法是程序设计的精髓,程序设计的实质就是构造解决问题的算法,将其解释为计算机语言,而许多算法的实质就是建立起抽象的数学模型。职业学校学生的这种认知结构给计算机语言的教学带来了困难。
目前职业学校计算机语言的课堂教学仍承袭老式计算机语言的教学模式:学习语句、分析编程要求、建立算法、画出流程图、根据流程图写出相应语句。整个教学过程强调符号把握,突出抽象思维过程,以演绎形式化处理的算法作为展开教学的主线,过分追求程序设计时的逻辑推理,忽视程序设计时的算法模型的建立,当学生因个人基础差而无法消化时,又强调以机械记忆与重复练习来进行补偿教学,造成学生思维麻木不前,学习缺乏创新精神。
这种教学方式与学生认识特点的不一致,造成了职业学校学生计算机语言学习的矛盾,使得教与学的效率十分低下,甚至举步维艰。
2、巧建模型有利于改进计算机语言教学
许多算法尽管最终的描述跟数学关系极近,但基本上来源于生活实践,如插入排序法来源于插入排队方法。如果在教学中突破教材框架限制,教师巧妙地提出相关问题,帮助学生建好模型——包括具体的(物理模型)和想象的(逻辑模型),让学生自己动手实验、教师点拨引导到相应的语句、程序中去,这样,学生就会不知不觉地掌握了相应的语句及算法。

二、操作策略
1、以问题形式推出教学内容
对于职业学校的学生来说,兴趣是学生的第一老师。但现在各种各样的计算机语言教材在介绍某一语句时,往往是先介绍该语句的格式与功能,然后举例应用,接着是使用的注意点和例题分析。从系统性和科学性这个角度来看,这样编排是合理的,但教师如果只是按此顺序展开讲授,学生也不一定能接受,因为学生一下子难以从通常的思维转入到程序设计语言的思维上来。所谓以问题形式推出教学内容是指教师在课前详细分析教学内容,将教学内容转化为某个学生感兴趣的实际问题,以问题为载体引出教学内容,吸引学生共同探讨问题的解决办法。 如:在讲关系表达式、逻辑表达式时,突破以往教学方式,不再以理论灌输述的形式依次讲授运算符、表达式,而是直接提出逻辑问题,让学生做一回侦探。题为:甲、乙、丙、丁四个人中有一个人是小偷,请根据四个人的谈话判断谁是小偷。已知四人中有一个人说假话。
甲:我不是小偷。
乙:丙是小偷。
丙:丁是小偷。
丁:丙说谎。
问题一提出来,马上就抓住了学生的眼球,吸引了学生的注意力。
2、以活动方式帮助学生建立算法模型
职业学校学生之所以不喜欢计算机语言课,甚至产生厌烦心理,一个很重要的原因是教师教学方法的陈旧,目前职业学校大多数的老师仍遵循着“复习引入—新课传授—练习巩固—课堂小结”的传统模式,必须改变“教师讲,学生听”的老调子。为了激发学生的学习兴趣,引起学生注意,使之产生探究学习的欲望,就必须打破传统的课堂结构,在教学方法上要不拘一格,凡是有利于活跃课堂气氛,激发学生学习兴趣,打开学生思维的方式方法都可引入课堂进行尝试。以体验——发现——探究——建构为指导思想开展课堂教学。如:在教授循环结构文本作图类问题时,就可以让学生模拟程序在纸上作图时的过程,让他们体会循环结构的实质:按一定的条件重复执行某几步操作;了解作图的过程:1、一行一行从左到右 2、每一行开始时都要确定开始的位置 3、一行结束要换行,准备下一行的输出。再如:教授排序法时,可利用牌,让每一位学生自己去比较、排队、按一定的顺序理好这几张牌,体会各种排序的方法。
3、以任务驱动方式学习语句,辅建模型
目前比较成熟的建构主义教学方法有:支架式教学、抛锚式教学和随机进入教学等等。其中的抛锚式教学(Anchored Instruction),认为教学要创设真实的、具有挑战性的任务,从而使教学建立在有感染力的真实事件或真实问题的基础上。高中阶段的学生喜欢挑战,如果教学中以任务驱动方式让学生去自主地学习语句,阅读程序,去自主地尝试构建程序模型,对学生编程能力的提高极为有力。如:在教授数组时,在讲授完数组的概念后就让学生阅读下列的程序,让学生找出看不懂的语句,然后就此展开自主学习、探究数组的定义、赋值等等。举例如下:
例:用READ/DATA 语句读入10个数,要求按由小到大的顺序将它们打印出来。
程序如下:
OPTION BASE 1
DIM A(10)
FOR I=1 TO 10
READ A(I)
NEXT I
DATA 40,-20,39,45,71,88,32,0,-80,78
FOR I=1 TO 9
FOR J=I+1 TO 10
IF A(I)>A(J) THEN SWAP A(I),A(J)
NEXT J
NEXT I
FOR I=1 TO 10
PRINT A(I);
NEXT I
PRINT
END
教师就此任务可总结如下知识点:
1、 DIM A(10)此语句为定义数组语句。一个数组,包括数组名称、数组维数、数组元素数、数组的类型等要素。在使用数组时,要将以上内容输入计算机,以便开辟足够的内存单元存储数据。
格式为:DIM [SHARED] <数组名>[(维数定义)][AS<类型说明词>][,<数组名2>][(维数定义)][AS<类型说明词>]
DIM语句不但能定义和说明数组,分配数组存储空间,而且还能将数组进行初始化,使得数值型数组元素值为零,字符串数组元素值初始化为空。DIM语句是非执行语句,必须放在该数组使用之前,即“先说明后使用”
2、OPTION BASE 1此语句为下界选择语句,它放在DIM语句之前,数组的下界就由该语句来确定。其格式为:OPTION BASE N,功能是定义所有数组下标的下界。N是数字0或1,不能随意选用其他任何数。如果省略,则下界为默认值0。
3、数组中每维的下标数不超过10的情况下,可以不用DIM语句进行说明。
4、以建模思想贯穿整个教学
以选择法排序程序设计为例,建模思想贯穿整个教学的过过程设计如下:
(图略)
三、几点反思
运用建模思想,剖析算法是遵循“以学生发展为本,进行计算机语言教学。”
1.以问题设计为主线,培养学生的编程能力
编制程序其实就好象解一道数学中的应用问题,方法可能是多种多样的,但计算机编程与解应用题有两点不同,一是算法要简洁明了,要有一定的效率;二是算法要规范,要一般化,要符合结构化程序设计的要求,不能搞过份“独特”的思路。因此在教学过程中,既要充分发挥学生的想象力、保护学生的思维积极性,又要注意合理的引导,让学生往“结构化程序设计”的方向走。
2.力求发展学生的能动性,培养学生的研究能力
学生是教育的主体,他们的职责是学习,教师的职责是教会他们怎样学习。让学生自己参与活动(自制学具、参与竞赛、自已整理知识点、自已总结算法、上机分步调试程序……)自己去构建程序设计的物理模型,培养他们编程的兴趣,培养他们自主学习的能力。
3、必须遵循“体验——发现——探究——建构”的思维活动路径来展开教学,同时建模是一种形成性学习活动,因此 ,必须强调学生的亲历亲为,而决非是教师“告知”,学生“被告知之”的结论直接传递过程。

返回顶部