admin 管理员组文章数量: 1086019
2024年4月26日发(作者:大数据培训内容有哪些)
维普资讯
|if敏又汇 2007.06 (上旬刊)
列用算法时掌生进行思维能力的培养
口
摘要
吴琼陈新文
(鄂,kl1大学计算机系 湖北・鄂,kl1 436000)
思维能力是一切能力的核心,算法是计算机程序设计课程重要教学内容,该文论述在算法教学的不同层次,对学
生形象思维、逻辑思维、超前思维、发散思维、创造思维等思维能力进行训练和培养。
关键词计算机算法思维能力 培养
中图分类号:G421 文献标识码:A
广义地说,为解决一个问题而采取的方法和步骤就称为“算
法”,著名的计算机科学家沃思(Nikiklaus Wirth)提出一个公式:数
据结构+算法=程序。数据结构是计算机加工对象,算法是程序设
计的灵魂,算法教学是计算机程序设计课程的重要教学内容。本文
通过大量实例,分层次地通俗易懂地剖析如何在算法教学中培养学
生的思维能力。
1.形象思维。理解算法
形象思维是指人们利用直观形象去解决问题的思维过程,形象
思维主要用联想、类比、想象等方式去思维,它具有具体性、直观性、
趣味性的特点。
首先,我们利用日常生活和学习中学生熟悉的做某一件事情的
过程,帮助学生理解:所谓算法,粗略地讲,是为解决一个特定问题
而采取的确定的有限的步骤,广义地讲,做任何事情都有其算法。例
如:一个乐谱可以说就是乐曲的算法,因为它规定了演奏者应如何
演奏;求解一个一元二次方程的步骤也是一个算法等。做任何事情
都要事先考虑如何去做,要制定一个周密可行的计划,先做什么,后
做什么,既要有一定的灵活性,又不能犯原则错误,这就是确定算
法,然后去实现这个算法以达目的,用计算机语言解题也是一样。由
此使学生认识到:“算法”并不神秘,而且很具体,在El常生活中经
常遇到各种“算法”,只不过是没有意识到而已。
其次,利用算法的多种描述形式,来帮助学生正确理解和建立
算法的概念。
用自然语言描述算法,一般比较冗长,而且有“歧义性”(即对
同一段文字,不同的人会有不同的理解),例如:“张三对李四说今
天要去图书馆”,究竟是张三要去还是李四要去呢?从这段文字中
难以确定。
用传统流程图形式描述算法,流程清晰,直观形象,各种操作一
目了然,而且不会产生“歧义性”。但它占面积大,而且允许使用流
程线,使流程任意转移,容易使人弄不清流程的思路。
用N—s结构化流程图描述算法,主要特点是取消了流程线,即
不允许流程任意转移,而只能从上到下顺序进行,它规定了几种基
本结构(顺序结构、分支结构、循环结构)。
用伪代码描述算法,伪代码是指用介于自然语言和计算机语言
之间的一种代码来描述算法。它的特点是表示形式比较灵活自由,
文章编号:1 672—7894(2007 J 06—039-02
无统一的语法,只要写出来自己或别人能看懂就行,而且与计算机
语言比较接近,可以比较容易地转换成计算机程序。
通过以上的分析与比较,加上列举适当的例题,如:给友人写
信;求一元二次方程的根;输入若干学生的成绩,统计不合格人数
等。使学生明白了算法就是解决问题的步骤。
最后.还应强调解决某一问题的步骤可能不是唯一的。如给友
人写信,可以先写信,也可以先写信封,因此解决某一问题的算法也
可能有多种。通过这种训练,学生理解了算法,同时还掌握了几种描
述算法的方法,逐步建立了算法的概念。
2.逻辑思维。掌握算法
逻辑思维是以分析、综合、抽象、概括、比较、分类、系统化和具
体化作为思维的基本过程的。在讲解某一算法时,让学生分析这一
算法的关键所在,构思算法的主要内容,就是训练学生逻辑思维的
过程。
例如,在介绍交换两变量值的算法时,首先让学生分析能否直
接进行交换。然后将交换两变量的值比喻成将两个盒子的球互换,
不能将第一个盒子里的球倒入第二个盒子,再将第二盒子里的球倒
入第一个盒子。必须先将第一个盒子里的球倒人第三个盒子,再将
第二个盒子里的球倒入第一个盒子里,最后将第三个盒子里的球倒
入第一个盒子里。通过分析、归纳、综合,借此引出中间变量(第三
个盒子)的概念,从而使学生理解交换变量的值必须借助与中间变
量来完成,思路清楚了,算法也就出来了。
在讲求解一元二次方程的根时,帮助学生分析根据一元二次方
程的判别式的值可得出三组不同的解:当D>0时,有两个不等的实
根:当O--0时,有两个相等的实根;当D<0时,有两个共轭复根。遇
到这种多项选一的情况,可以利用分支结构来实现。关键是要将可
能出现的情况都要估计到,不能遗漏,否则会出现丢根的现象,使学
生理解了算法应有较强的周密性和严谨性。
在介绍n个数累加与n个数阶乘的时候,要引入累加器和累乘
器的概念,并且先应给累加器赋一个初值0,给累乘器赋一个初值
1,这时教师可以提问:为什么累加器的初值必须为0,累乘器的初
值必须为1,如果事先不将累乘器的初值赋予1,将会出现什么情
况:在求累加与阶乘的算法中,应采用怎样的程序结构等。通过分
析,使学生理解了累加器和累乘器的概念,基本掌握了累加与阶乘
39
维普资讯
的算法。
让学生正确地运用逻辑思维来确定一个算法,需要一个严格的
训练过程。在高级语言程序设计教学中,教师应充分挖掘例题和习
题中的教育功能,有意思地介绍一些常用的算法,利用这些常用的
算法,对学生进行较系统的训练,以此来提高学生的逻辑思维能力。
3.超前思维。运用算法
超前思维是指在讲解例题之前,利用分析、推理的方法,让学生
先行构思算法、想象解题方法与步骤,然后再讲例题的一种思维方
法。超前思维的作用是:(1)发展学生的想象能力(2)提高学生的
审题能力(3)培养学生全面考虑问题的能力和创造能力(4)激发
学生的学习兴趣。方法是:(1)认真审题,想象一下解题的方法与步
骤。(2)读例题。看看自己的想法与例题有什么不同之处,为什么不
同。这样,学生对学到的知识记忆深刻,不易遗忘。
例如:在数组的教学中除了介绍二元一次方程组的算法外,可
重点介绍排序的方法,排序是进行数据处理及检索的重要步骤,排
序的关键是两数组元素的比较与交换,排序的方法很多,常用的有
冒泡法和最小元素法。
冒泡法的思路是将相临两个数组元素进行比较,将小的数组元
素调到前头。介绍思路后,首先让学生分析、构思如何将N个数组
元素冒泡排序,并设计出排序的算法,最后教师与学生一起进行归
纳、综合,得出:将N个数组元素按升序排列,需要进行N一1趟比
较,在第J趟比较中,要进行N-J次两两比较的结论。
掌握了冒泡法的算法后,教师又进一步提出:“如何用最小元
素法对N个数元素进行排序?”然后引导学生进行探索,构思算法,
让他们充分发表自己的见解,组织学生进行分析、对比、归纳,最后
得出:最小元素法与冒泡法实质上很相似,算法上的不同之处在于:
最小元素法不是将相临两个数组元素进行比较和交换,而是对所有
数组元素进行扫描,找出最小数放到第一位,再对剩余数进行扫描,
找出次小数放到第二位……,反复进行N—l趟即可。再出示例题
时,学生的脸上露出了笑容,因为她们构思的算法得到了验证。
通过这种训练,不但活跃了课堂气氛、激发了学生的学习兴趣
和积极探索的热情,而且提高了学生分析、推理、归纳、综合的能力,
使学生的超前思维能力得到了培养。
4.发散思维。举一反三
思维的发散性,表现在思维过程中,不受一定算法的束缚,从问
题的个性中探求共性,寻求变异,沿着不同的方向、不同的角度去联
想、延伸、开拓,发散思维是创造思维的核心。
在教学中,采用一题多变、一题多串、一题多用、一题多解等训
练方法,能较好地培养和锻炼学生思维的发散性。
例如:在介绍了冒泡法和最小元素法后,教师又提问:“如果将
数组元素按降序排列,应如何确定算法?”思索片刻后,有的学生马
上提出将比较中的条件由“<:”改为“>=”,“还有没有更简便的方
法?”,又经过分析、思考后,学生们异口同声得出:将输出顺序颠倒
一
下就可以了。
40
善思还得敏思,但“敏思”不是一已可造就的,唯其如此,才需多
加培养。引导学生遇事要多问几个为什么,推敲一番为什么是这样,
而不是那样,才有可能“敏思”,才有可能是思维活跃。对学生进行发
散性思维训练,拓宽了学生的思维空间,增强了思维的想象能力。
5.创造思维.“标新立异”
创造思维是根据一定的目的、任务,在头脑中创造出新形象的
思维过程。这些新形象,是前所未有的东西(或教师以前未讲过学生
未掌握的东西),所以叫创造思维。创造性思维活动,可导出新颖独
特的思维成果,在已知领域有所创新,在未知领域有所发现和突破。
抽象和概括思维是集中思维的基础,教师通过揭示概念的形成
过程,引导学生发现规律,建立概念,并与抽象概括活动紧密联系,
将抽象概括出的一般认识应用到具体的特殊事物上,是创造思维的
重例如:在学习用双重循环求3-100以内的素数的算法时,通常只
介绍一种最简单的算法,即看某一整数是否被2到比它小l的所有
整数整除,若有一个能被整除,此数为非素数,否则它是一个素数。
紧接着教师可以提问:“是否需要判断这么多次,除这么多次,
能否有更简单的算法?”然后引导学生分析素数的性质,找出规律。
通过分析得出:除2以外的任何偶数都是合数,除2以外的任何素
数都是奇数,因此,只需判断除2以外的奇数就行了,即外层循环步
长可为2。另外,判断一个数A是否为素数,也不需要被2到比A
小1的所有整数除,只需要被2~的整数除即可(如果不是整数,则
取的整数部分)。由教材的范例引申出一系列具有启发性的、由浅
如深的问题,就这一系列问题的解决过程,是对教材内容深入理解
并进行创造性思维能力的培养过程。以上得出的求素数的新的算
法,正是创造思维训练带来的可喜成果。
求异与创新,是成材的重要因素。在教学中,教师最大限度地调
动学生的学习积极性,有意识地给学生创造良好的思维意境,鼓励
他们“标新立异”,激发他们思维出更好的方法,是培养创造型人才
的有效途径。
综上所述,在计算机算法的教学中教师有目的地创设思维的情
景,鼓励学生大胆思维,使其自觉沟通所学知识的纵横联系,挖掘隐
含条件;巧妙地构造某个知识对象,迂回转化;灵活地运用各种思维
方法和方式,找出确定算法的各种途径,不但使学生掌握一些常用
的算法,克服思维僵化,生搬硬套,解题呆板,运算繁琐等不良倾向,
更重要的是使学生的思维能力得到了提高。尽管学生在解题过程中
不可能都得出每个问题的最佳或最正确的算法,但通过尝试会产生
旺盛的求知欲,而这一尝试的过程也正是学生思维能力培养过程。
参考文献:
【l问I浩强.C程序设计 二版)【hI1.北京:清华大学出版社,1999.
【21潭浩强.BASIC语言——结构化程序设计教程【M1.北京:中国科学技术
出版社.1990.
【3侧加海.高级语言设计【hI1.杭州:浙江大学出版社,2000・
【41高福成,潘旭华,李军.全国计算机等级考试教程:c语言程序设计(二级)
【hI1.北京:电子工业出版社,2002.
版权声明:本文标题:利用算法对学生进行思维能力的培养 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714112644a666180.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论