当前位置:首页>>信息技术>>教师之家>>课堂教学>>高中

摘要:教师能否正确理解课程改革中课程内容调整的意义,将决定其教学的成效。本文就浙江省深化普通高中课程改革后,信息技术学科“算法与程序设计”内容调整的意义进行了解读,并在此基础上对教学中出现的疑难问题进行解析。同时,本文结合教学实际,对教学实施过程进行分解,给出了教学实例和分析。

关键词:算法与程序设计;课程改革;信息技术

浙江省从2012年起深化普通高中课程改革,高中信息技术课程内容有了较大调整,其中“算法与程序设计”模块由原来的选修,变为在必修“信息技术基础”模块中强化该部分内容,教学采用VB软件。对该内容教学的影响表现为:(1)教学对象的调整,即面向全体学生;(2)课时的调整,作为基础模块的一部分,课时安排要兼顾其他内容的教学,也必然要缩小内容范围,降低教学难度。在这些改变背后,教师抓住课改实质,领悟课程内容调整的意义,将有效促进教学。

一、对“算法与程序设计”内容调整意义的解读

“为什么把算法与程序设计调整为必修了”,“为什么用VB开展教学而不用QBasic呢”。对于课程内容的调整,我们或多或少会有讨论。作为课堂教学的实施者,笔者也在揣摩调整的意图,并认为至少有两点应当加以关注。

1.“算法与程序设计”内容本身是信息技术学习的核心内容

“算法”(algorithm)是解题方法的精确描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制,它是信息处理过程中最能体现人类智慧的部分,无论科技和学科如何发展,“算法与程序设计”内容始终具有其重要性。

2.有助于加深学生对计算机工作原理的理解

计算机是最重要的信息处理工具,学生对于计算机系统工作原理的理解程度,直接制约着其这一工具的应用水平。而且,现在软件大都采用图形化界面和面向对象的程序设计思想,通过VB可以让学生加深对类、对象、属性、事件等概念的理解。

二、对教学实施中几点疑难的解析

1.为什么计算机反而成为问题解决的累赘

在教学实施中有一个现象,一些程序设计任务,本来不应该存在算法设计问题的,但就是因为在信息技术课堂里,它成为了问题。例如,程序设计:输入年和月,然后输出该月有几天,这个任务只要掌握一些常识的同学都不应该有算法上的问题,但事实上大部分学生无从下手。分析原因,学生开始实践任务后,首先想到的是任务中包含的自己还不太熟悉或者不会的内容(主要是如何用VB来表达、实现),然后困难被放大,掩盖了程序设计本该首先思考的重心──算法,掩盖了一些自己本该已经掌握的东西。

针对问题,笔者采用“程序设计请先说出来”的策略,努力让学生先抛开VB,用自然语言将问题解决的方法与步骤一句一句说出来。当然这个说,有些问题好说,有些却不容易,要引导学生的说能符合算法的特征,要能确切的描述出某一步操作。例如,前面提到的程序,就比较容易说:“如果月份是135781012,则天数为31;如果月份是46911,则天数为30;如果月份是2,闰年天数为29,否则为28。”但另一个程序设计任务,看似很容易说出的一句话,却成为不了算法。程序问题描述:语文考试结束后,老师将一叠改好的试卷放在你面前,让你帮他计算班级平均分和高于平均分的人数。这个程序让学生来说,学生一般会说的第一个步骤是:“先将成绩输入,然后加起来”,这种描述其实是不清晰的。我们分析现实生活中自己的操作,应该描述为:“看一个成绩,和已有的总和加一下,重复这两步操作,直到所有成绩都输入。有了自然语言的算法,那么转成程序表示就简单多了。

2.如何让学生在浅显的内容中体会它的美

必修教学的要求相对于整个算法与程序设计学习而言是十分浅显的,我们应该抓住仅有的一点深度,让学生体会算法与程序设计的价值。笔者原以为算法与程序设计的课堂会比较枯燥,学生不会十分投入,但实际并非如此,绝大部分同学都在努力实现他的那个程序。那是什么抓住了学生呢?有两个重要原因:第一,学生能用VB“说话”了,计算机能按学生的指令运行出结果了,学生有成就感,更有了兴趣,这是算法与程序设计第一个层次的价值体现;第二,虽然任务是老师给的,但程序却是学生自己的,这个程序体现了学生的思维,包含着他的智慧,而对于智慧的欣赏是无穷尽的,学生能将算法与程序设计看作艺术创作,这将是该内容学习的深层价值体现,这也将成为部分学生以后专业学习该内容的动力。

引导学生欣赏程序,欣赏它的严谨、高效,体会算法艺术,是算法与程序设计教学中画龙点睛之处。例如,笔者教学中有一个实践任务:要求输出10000以内的所有素数。有同学的程序设计大致为:外层循环枚举10000以内的所有数“For i= 1 to 10000”,内层循环让枚举出的数去除以10000以内的所有数“For j=2 to 1000,然后判断被整除的次数。虽然这种算法也能出结果,但运行时会发现计算机卡了,象死机一样过了几秒钟时间。这一卡,正好可以成为教学的锚。教师抓住这一点,鼓动学生将结果“秒杀”出来,于是就有了内层循环上限为i的算法,甚至上限为i的平方根+1的算法,还可以通过布尔变量化for循环,即发现整除就跳出。这个过程中,人的智慧得到充分体现,算法的美也油然而生。

3.如何看待信息技术课堂中的算法与数学课堂中的算法

目前的教学内容看,两者大致相同,都是算法初步,难谈什么区别,笔者以为学其一即可。不知决策部门是否也有这方面的考量,这次浙江省深化课程改革后,数学必修三“算法初步”内容已不再要求学习。那么算法内容放在不同的课程里有区别吗?应该有一点区别,信息技术课堂中的算法教学可以侧重从计算机 “运算速度快、准确性高、存储容量大” 的特点出发解决问题,而数学课堂的算法应该发挥人的特点即人的智慧。

三、对“算法与程序设计”内容教学的解剖

结合前面的分析,算法与程序设计的教学需要过好三道坎:(1)算法的自然语言描述;(2)计算机语言的表达,即VB语句的设计;(3)程序与界面的衔接。学生的实践任务是课堂教学中必不可少的环节,需要在实践中消化,也需要用实践来检验。

笔者在12课时的新课教学中设置了12个实践任务,从直观到抽象,从能用VB“讲话”到能用VB解决问题,任务选择力求贴近学生学习生活,能引起学生兴趣。

1.实践任务一:来自VB世界的第一声问候(如图1),主要知识点包括 VB软件的基本操作,VB应用程序的开发步骤。

2.实践任务二:欢迎使用VB(如图2),主要知识点包括对象、属性、类、事件和事件处理等面向对象程序设计的基本概念。

    

1 任务一程序界面设计              2 任务二程序界面设计

3.实践任务三:已知圆的半径求圆的周长,主要知识点包括数据类型、常量、变量、常用函数。

4.实践任务四:求物体自由落体的位移,主要知识点包括VB的基本运算与表达式。

5.实践任务五:开关灯程序,主要知识点包括算法的基本模式和IF语句。

6.实践任务六:求解一元二次方程的实数根,主要知识点是选择结构程序的应用。

7.实践任务七:国际象棋棋盘上的麦粒,主要知识点包括循环结构程序与循环语句。

8.实践任务八:打印图形,主要知识点包括循环的嵌套。

9.实践任务九:计算班级平均成绩,然后统计高于平均分的人数,主要知识点是数组的应用。

10.实践任务十:解决问题“一筐鸡蛋,几百个,三个三个数,发现最后剩二个;五个五个数,最后剩三个;七个七个数,最后剩二个,想了解鸡蛋可能数”,主要知识点是枚举算法。

11实践任务十一:鸡兔同笼”问题(如4),主要知识点是解析算法。

   

3 任务八程序界面设计              4 任务十一程序界面设计

12 实践任务十二:查找10000以内的素数,主要知识点是算法与程序设计知识小结。

笔者对所教5个班级,总共268名学生,实践任务提交情况作简单分析并结合教学时的感受,得出结论:学生掌握情况整体向好,但“贫富差距”有所拉大,目前“算法与程序设计”必修的难度适合所教学生。

1 学生实践任务提交情况统计表

任务名称

10%学生提交均时

课内提交率

总提交率

任务二

距离下课13.4分钟

88.8%

99.6%

任务三

距离下课12.6分钟

85.8%

98.5%

任务十

距离下课14.0分钟

85.4%

97.1%

任务十一

距离下课9.8分钟

61.8%

97.4%

任务十二

距离下课16.4分钟

82.1%

95.9%

注:课堂时间为45分钟,课内提交率为学生在下课铃响之前的提交,总提交率包括下课后教师催促下的提交。

    
【上一篇】
【下一篇】