APP下载

实例·实践·领悟·提升
——浅谈“算法与程序设计”模块复习课教学

2020-03-04陈正伟

基础教育论坛 2020年20期
关键词:程序设计排序微课

陈正伟

复习课是“算法与程序设计”模块教学中一种常见而又重要的课型,是整个教学过程中不可或缺的环节,它可以系统地强化已学知识并填补相应的知识漏洞。复习课要让学生提高独立分析问题和综合解决问题的能力,积极主动地实现创新、有所突破,展示自己的才华和智慧,从而提高信息技术素养和悟性,真正做到“学”以致用。那么如何提高“算法与程序设计”模块复习课教学效率呢?笔者将从以下几个方面,浅谈“算法与程序设计”模块复习课教学。

一、复习课教学地位

复习课属于独立的教学环节,是我们完成相关新课内容讲解后组织的,并要求学生全面理解掌握新学知识而存在的课型。复习课教学地位的重要性及特殊性可从以下两个方面来认识。

1.具有承上启下的地位

在“算法与程序设计”模块教学中,要重视知识的整体性、系统性、教学内容前后连贯的逻辑关系。在引入复习课教学环节后,我们也要引领学生对已学知识进行逐一梳理,加深记忆并理解核心概念、基本原理和“程序性知识”,指导学生构建知识网络,从而启发学生对新知识展开联想。

2.提升运用能力的功效

“算法与程序设计”模块知识的掌握程度在生活实践中的具体表现,就是用算法的思想解决实际问题的能力。算法与程序设计具有很强的逻辑性和严密性。复习课教学可以让学生在掌握知识的基础上,拓宽知识的深度和广度,学会独立分析问题、综合解决问题,满足学生综合能力培养的需求。

二、复习课对信息技术教师的要求

1.复习课需要教师更精心地备课

一堂好的复习课需要有一份好的教案,它承载着回顾与整理、沟通与生长的独特功能。笔者认为,教案最重要的特点是“疏通”,即“梳理知识、融会贯通”。可以分单元梳理出各单元的知识点,特别要抓住每个单元知识的重、难点和学生的易混点;也可以按照专题模块整合教材知识,使之“竖成线”“横成片”,达到提纲挈领的目的。梳理知识的最终结果是“融会贯通”,教师编织好一个完整的、四通八达的知识网络体系后,能够引导学生自如运用。

2.复习课的教法要多样化

复习课应该引导学生用熟悉的知识去激活头脑中学过的知识,让学生对知识进行归纳和整理。在复习课中要做到:观点由学生提出;知识让学生梳理;规律让学生寻找。根据知识的具体特点和目标要求不同,设计出各种各样的复习课,以提高课堂复习效率。要努力探寻适合不同学生、不同知识特点的复习方法与策略,通过变换教学方法,消除知识复习的枯燥感,鼓起学生学习干劲,巩固学生的基础,提高学科综合能力。

三、“算法与程序设计”模块复习课教学实践

1.算法复习课教学实例要联系实际

在“算法与程序设计”模块复习课教学过程中,选用的教学实例要从学生的实际生活出发,简化问题,使抽象问题变得具体化,并让课堂变得生动有趣,这样才有利于加深学生对知识点的理解。

例如,在复习“枚举算法”时,笔者引用了《孙子算经》中的鸡兔同笼问题:今有鸡兔同笼,共有35个头、94只脚,问鸡和兔各有多少?这样一来,学生既有了学习兴趣,又可以根据现实生活中的实际情况来解决问题。由于共有35个头,所以鸡和兔共有35只。每只鸡有2只脚,每只兔有4只脚,脚的总数是94。所以用变量x来表示鸡的数量,将x从1到34列举出所有可能的情况,然后对列举出的鸡的数量x和兔子数量35-x进行检验,判断是否满足共有94只脚的条件,即x×2+(35-x)×4是否等于94。若满足条件则输出x和35-x。这样,学生既用枚举算法解决了实际问题,又再次复习了循环语句的程序代码。

2.合理安排上机实践,挖掘学生算法思维潜能

“纸上得来终觉浅,绝知此事要躬行。”从16年的教学经验中,笔者得出一个结论:“算法与程序设计”模块的实践操作重于理论讲解。在上机操作中,学生会把遇到的问题通过各种方法来加以探究,最终形成不同于教师的思维方法,使课堂教学变得富有挑战和创新。例如,在学生已经掌握使用VB软件编写累加式:s=1+2+3+…+99+100的循环结构程序基础上,上机调试s=1-2+3-4+…+99-100这个程序设计示例的时候,是希望学生把其中的一句代码改为s=s+i×(-1)^(i+1)。但是,在实际上机自主编写之后,惊喜地发现学生编写出了多种方法:(1)学生直接指出了笔者预先设计的代码过于复杂,可以用初始值n=-1,然后在每次的循环体内取n=-n;s=s+n×i,这样就可以将代码写得更为简洁;(2)部分学生采用了“循环+分支”的结构,通过条件的判断来决定正负号:if I mod 2=0 then s=s-I else s=s+I。

例如,在复习N个数据的冒泡排序中,排序需要经过n-1遍加工,每一遍加工都自下而上比较相邻两个数据,把较大者交换到上面。在实际上机过程中,有的学生就发现,在生成数据的过程中,数据本身就已经是有序排列在列表框list1内,这就不需要n-1遍加工了。如何确定一个冒泡排序的实际加工遍数呢?在学生经过激烈讨论后,对算法进行了优化,编写出了这样一种优化的算法:引入逻辑变量flag,当flag值为true时,表示一遍加工中发生过交换,累计器S加1,最后输出S即可。

3.通过微课平台、翻转课堂,提升复习实效性

“算法与程序设计”模块所涉及的内容多,知识面宽广,所以学生课外学习是一个重要的环节。教师可以通过微课教学的手段,对复习课教学中的某个教学重点内容进行把握,或者对某个教学难点内容进行突破,进一步优化教师的复习课教学过程与细节,从而有效解决学生学习过程中的疑难问题。

例如,在复习“排序”一课时,学生对排序算法原理的理解还存在很大的问题,只有理解了排序算法的原理,才能写出排序算法的程序代码。因此,在复习课上可以把排序算法的原理制成微课播放给学生观看,让学生深化对排序算法原理的理解,然后让学生有针对性地对排序算法题型进行代码的编写。另外,教师还应重视自己的创新能力,并将专业知识应用到社会实践中,结合实际生活开发一些小型的微课视频网站,把算法与程序设计模块中重点知识与难点知识录制成微课视频放到网站上,供学生课余时间去学习,从而取得更好的复习课教学效果。

作为教师,每一节课上,我们都要让学生能够身临其境,告别急功近利,塑造一种轻松、愉快的氛围,让学生有更多的时间与空间开阔视野、增长见识,在提高信息技术素养和悟性的基础上,也能提高学生学习的质量和效率。

猜你喜欢

程序设计排序微课
排序不等式
基于Visual Studio Code的C语言程序设计实践教学探索
微课在幼儿教育中的应用
恐怖排序
微课在高中生物教学中的应用
微课在初中历史教学中的应用
从细节入手,谈PLC程序设计技巧
节日排序
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用