李振海
【中图分类号】G632 【文献标识码】A 【文章编号】2095-3089(2015)15-0-01
在信息技术选修(1)算法与程序设计课堂教学中,使学生掌握正确的思维方法,进行严格的思维训练,是开发学生智力,促进学生自觉的,主动的掌握知识、运用知识和不断丰富知识的重要性。
根据算法与程序设计的教学特点,编程的思维应具有综合性和具体性。所谓程序的编制思维,就是用辩证的观点和逻辑方法,对需要解决的问题进行分析、比较、综合,然后确定解题模式,运用数学知识和程序设计语言进行描述的一种较为特殊的思维。在日常生活中要解决的问题是错综复杂的,总是同逻辑思维等条件密切联系的。因此,教师在讲述程序编制的过程中,要将问题进行分析、整理、归纳并结合学过的知识,确定算法,指导学生去编写程序。使学生形成变成的思维和整体概念,灵活掌握编程的技巧,同时还要注意引导学生进行算法分析、比较等各种思维的形成。
学生在观察问题时,往往带有表面性,在思考问题时也往往带有片面性,不能全面分析问题,不能辨别具体问题。更不能在分析各个部分问题的基础上进行综合分析,这在教学中很常见。一些学生对综合性较强的题目感到我从下手,其原因是没有掌握好解决问题的思维方法,由此可见辅导学生掌握和运用算法的同时,要重视整体思维能力的训练。
培养学生编程思维能力的常用方法有许多,现结合本人的教学实践,谈几点看法。
一、激发兴趣,调动学生的思维积极性
通过现实生活中的实例,运用java制作具有图、文、声、像并茂的小程序,随着优美的音乐,抑扬顿挫的声音,化静为动,动静结合,直观生动形象地展示图形的变化过程。教学中充分发挥多媒体课件这一优势,激发学生创新的欲望,寻求解答问题的最佳途径。为培养学生的思维能力提供了良好素材。由简到繁、逐步求精来引导学生积极主动的去实践探索。例如在讲授“程序的结构”一课时,首先提出与本节有关的有趣问题,比如出租车的计费过程,通过动画的演示,针对问题的逻辑关系进行分析、抽象、表征、简化、再用判断条件建立模型,然后用算法编写程序,计算出结果。学生带着问题,边听、边想,边分析讨论,兴致勃勃的加深对逻辑判断推理的认识。再给出类似的练习,让学生编写程序调试。事后,由同学总结出结论:计算机的判断功能是如何进行数据分析的,解决复杂问题时,还得进过人的思维把问题进行归纳、量化等。通过总结,反映出学生对计算机解决问题的方式及编制程序的基本过程有了进一步的认识。
二、优选算法和程序编程方案,培养学生思维的灵活性
运用不同的编程思路,对同一个问题,可以制作出不同的算法,通过对比分析,选择最优方案,培养学生思维的灵活性。在讲述“排序与查找”时,给出一组运动员体育成绩数据,让学生使用不同的排序算法进行编程,输出结果,使学生了解到不同的排序算法的程序编写的语句多少,移动数据的次数,耗时长度的不同,总结出每种算法的特点。在此基础上引导学生列举日常生活中的排序方法,通过各种方法的对比分析,获得知识发展思维。
三、通过分析综合,培养学生思维的全面性和条理性
思维的品质是思维能力的重要组成部分,在程序编制教学中,应采取有效的形式,通过各种思维训练,使学生把握分析、综合的思维方法、促进学生思维能力的发展。程序编制具有综合性的特点,构成一个完整的程序的各要素之间相互联系,互相影响,关系复杂。因此培养学生整体的编程观念同时,更要注意引导学生掌握分析综合的方法,提高分析问题和解决问题的能力。所谓分析,就是分辨事物的个别属性。在课堂教学中要注意引导学生善于把握复杂问题分解成若干部分进行研究,然后加以合并,最后获得完整的程序。例如,在讲述模块化程序设计时,先举出造房子的例子,并指出设计程序和造房子的过程的相似之处,在设计程序之前应该将一个复杂的程序进行分解,分解成各个功能模块,一个模块解决一方面的问题,把各模块组合连接成一个完整的程序,这就是模块化设计程序。引导学生总结模块化设计的思想就是把复杂的问题分解成若干个小问题,然后逐个解决,而他们之间既独立,又统一,不可分割。整个学习与应用的过程,学生经历着分析的过程,培养了学生的分析能力,对于提高学生学习程序设计,分析问题,发展思维是很有帮助的。
四、结合实际问题培养学生思维的创造性
教师应密切结合教学实际,收集、组织、开发必要的教学资源,尤其是面向对象的程序设计可以在网上充分利用,组织学生归纳JAVA应用程序,既有利于开发,又提高学生的兴趣。利用学生喜欢活动和动手,希望自己学到的知识技能得到展露,因此在教学中,教师要根据教材的内容进行示范,并经常组织学生进行小算法和程序的实践,结合日常生活中的问题进行编程解决,这也是对知识的探索,分析论证、应用培养训练创造性思维能力的过程。
思维的创造性还表现在解决问题的能力上,解决问题的能力是建立在丰富的基础知识之上,在平时的教学中要注意引导学生提出问题,确定算法,然后根据所学的知识编程解决实际应用的问题。通过课程学习,使一部分学生能够编织出颇具特色的有趣软件。如在JAVA程序中产生动画,自己做一个有趣的播放器显示音乐频谱等。这些都包含了丰富的计算机软硬件基础知识,具有很强的综合性。因此,在教学中应将所学知识与其它学科知识密切联系,进行分析,综合训练,以实现知识能力的迁移,使思维和创造性进一步深化。