【VB开源代码栏目提醒】:本文主要为网学会员提供“高中信息技术选修模块《算法与程序设计》教学策略的研究与实践 - 毕业设计”,希望对需要高中信息技术选修模块《算法与程序设计》教学策略的研究与实践 - 毕业设计网友有所帮助,学习一下!
高中信息技术选修模块《算法与程序设计》 教学策略的研究与实践【内容摘要】信息技术课是一门新兴的学科,还没有形成完整的教学体系和教学模式。
面对新课改,我们要精心设计教学任务,运用创新思维,精讲精练;采用任务驱动方法,激发学生兴趣,自主学习;还要分析把握学生的学习特点,因材施教;串好主线,给学生留有悬念;发挥网络优势,开拓学生视野培养学科整合能力;最后再对学生进行激励性的教学评价。
本人从程序设计教学中存在的问题和困惑入手,结合自己的多年的教学实践,总了一些教学方法和教学策略,以供大学分享。
【关键词】分层教学、学习兴趣、案例教学、课堂错误、评价方式 课题提出 一、《算法与程序设计》教学中存在的普遍问题 1、内容多时间紧教学目标不能很好完成 《算法与程序设计》模块中基本上涵盖了程序设计中用到的所有知识,有大量的数据、语句以及其它的过程和函数,这些理论知识学生都必须掌握并能在
VB 中熟练应用,这就需要老师详细的讲解,学生要在课堂上做大量的练习。
书本上还包括了几种典型的算法、程序设计思想和项目实践,虽然这部分只要求学生初步掌握,但是仍然要教师一一讲得透彻,否则学生还是很难理解。
一个完整的算法讲解、编写往往需一两节课的时间,而要让绝大数的学生真正能自主编写,甚至需要投入更多时间。
但是一般信息技术课程最多每周两节课,还要除掉其他假期,真正可以上课的课时不多,要学生全面理解算法并会编写程序真是很难。
2、学生基础参差不齐,存在“吃不饱”和“吃不了”的现象 《算法与程序设计》模块教学方式与学生基础密切相关。
由于生源地学校的
经济条件、师资力量等因素,高一新生计算机基础相差较大。
这给组织教学带来了很大的困难。
如果教学起点过低,必然会使程度较好的学生受到影响,若起点太高,教学就只能为少数优秀学生服务,这会挫伤大多数学生的学习积极性,导致差生越来越差,降低了整体教学质量。
长期以来,教师在布置上机实验时总是全班统一要求,忽视了学生之间存在的个别差异。
统一的实验内容、实验形式及实验难度不能适应每个学生的实际情况。
让有差异的学生做无差异的实验内容,势必会造成“吃不饱”和“吃不了”的现象。
这样的“统一”,遏制了学生学习能力的发展。
3、学生对传统的课堂讲练教学有厌倦感 高中信息技术课基本上都是在多媒体
网络教室进行,所以学生潜意识中就认为信息技术课上课方式应该与其他科目不同。
但事实上程序设计这门课基本上都采用传统的教师先讲后演示、学生先听后编程的方式,学生在听或者看的过程中往往注意力不集中,到实践编程时又无从下手。
而由于高考的压力,在课外基本上是不看课本的,再加之学校普遍存在信息技术课时不足的问题,等到下节课再来上课的时候学生更是忘的一塌糊涂,这样容易形成恶性循环,最终导致学生对信息技术课产生抵触心理。
二、《算法与程序设计》在教学中存在的困惑 1、在《算法与程序设计》模块教学中,技术内容的深度应该把握到什么程度?从课程教学的角度来说,技术内容的深度把握应该依据课程标准;从教学设计的角度来说,主要依赖于教师对课程内容的组织。
教师可以通过对学生的起点,基础,需求分析再结合教材本身的特点,合理的组织课程内容。
2、提交
作业的方式不能体现操作性的个性,在《算法与程序设计》模块中,不同的技术知识的讲解,应该找出对应的能够使学生体验技术方法的方式。
这个应该从教学组织方面来说。
3、在技术情景的创设中,教师很难把技术的学习置身于问题解决的情境之中。
教师应该根据具体的教学内容特点,对学生进行分析,合理的设计情境将学生引入到课堂中来。
4、在新课程选修模块的评价中,教师很难在过程性评价与形成性评价之间找到一个合理的平衡点。
教师应该根据
课程标准,结合学生的实际表现,制做合理的评价系统。
教学策略与实施过程 一、关注全体学生,施实分层教学 通过初中阶段的有关信息技术课程的学习,大部分学生都能较好地掌握信息技术的基础知识和基本技能,虽然学生在信息技术基础知识、基本技能的掌握上仍存在着差异性,但是在学习
VB 程序设计时表现出的差异并不十分明显,而明显的差异性主要表现在以下两个方面:1、学习兴趣的差异。
绝大多数的学生对信息技术课都有着浓厚的兴趣,但有相当数量学生浓厚的兴趣主要是在游戏上而非学习中,更不是在学习枯燥的
VB 程序设计中。
也有的学生既不喜欢也不讨厌信息技术课,只是因为学校的课程安排,另有部分学生由于觉得
VB 程序设计比较枯燥难懂,因而不喜欢上信息技术课。
2、学习态度的差异。
学生的学习态度分为主动型、被动型、放任型三类。
不同类型学生对学习内容、教师教导方式的要求,以及完成学习任务情况均有较大差异。
这种学习态度的差异性不仅表现在不同班级之间,而且男女同学间也有着较大的差异。
如果对不同知识水平、情感水平的学生进行相同内容、统一进度、同一方式的教学,势必造成基础好、学习兴趣浓厚的学生“吃不饱”,渐渐丧失学习的兴趣;基础差的又会“吃不了”,加剧厌学的情绪,致使大部分学生都把时间和精力用在电子游戏和上网上,势必造成整节课无法顺利进行。
信息技术课程的总体目标就是全面提升学生的信息素养,关注全体学生,促进学生的全面发展。
“分层教学”就是要探讨适合学生特点的教学途径,促使每个学生都能得到发展。
这就需要在教学的各个环节都兼顾到不同学生的学习需要。
我在教学的过程中采用的是同班分层教学法,就是以班中相似知识结构、认知水平及兴趣爱好的同学为同一个层次,依据实际情况将整个班分为 A,B,C 三个层次,然后依据各层的特点来制定相应的教学目标,设置各种教学任务,使各个层的学生均得到发展。
针对基础比较差的学生所采用演示性探究方法,学生通过模仿老师在课堂上的一些
演示操作,达到“巩固基础,按部就班,模仿提高”的目的。
对各层学生在学习的过程中出现的问题,要及时进行解惑释疑,释疑以个别释疑和集体释疑相结合。
在我的教学实践中发现,分层教学在课堂上能最大限度地提供给学生发展的时间和空间,也最大限度地提供给教师因层施导的时间和空间,使每个学生都能根据自己的情况,确立适当的学习目标,提高单位时间的学习效益。
二、增强学生的求知欲,培养学生的
学习兴趣。
爱因斯坦说过:“兴趣是最好的老师”,当学生对所学的知识产生兴趣和积极的情感时,就会从内心迸发出向往和求知的强烈欲望,产生积极、主动的学习动机。
学习活动就不再是一种负担,而是一种享受,一种愉快的体验,学习效果也会事半功倍。
如何培养学生的学习兴趣呢? 1、创设学习情景 教师在教学过程中创设一个好的情境,使学生融入其中,有利于激发学生的学习主动性,加深对知识的理解和记忆。
如:本人在讲授冒泡排序时,首先,请五位同学(相同性别)到讲台上拿一块布蒙住自己的眼睛随机排成一排。
然后布置任务:如何通过用手摸对方的头顶和自己的头顶进行比较,才能使你们按从左到右由高到矮排列。
五位同学因为看不清有点不知所措,然后教师进行提示:最右边第五位同学可以先和第四位比较,如果第五位比第四位高则交换位置;接着,最右边第四位同学和第三位比较,如果第四位比第三位高,则交换位置,依次类推,可以得到最高的一位同学排在左边第一位。
接着教师进行提问:“当最高的一位同学在最左边的时候他们总共比较的多少次”?同学们回答:“四次”。
“那第二高的同学要排在第二位怎么办”?“和刚才一样,再从最右边的同学开始两两比较”。
“当第二高的同学在左边第二位的时候他们总共比较的多少次”?“三次”。
五位同学用同样的方式比较完成。
接着教师进行总结:五位同学总共比较了四趟,每一趟总比前一趟少了一次。
通过这个小游戏,大大激发了学生的学习兴趣,并且基本搞清了冒泡排序的基本思想。
2、以趣味性强的例题为任务,进行教学 趣味题能吸引学生的注意力,启动学生学习的动机,激发学生的学习兴趣,增强活动的愉悦性,促进学生思维的发展。
例如:在讲授顺序程序设计时,以“鸡兔同笼”问题进行讲解;在讲授分支程序设计时,以“火车托运行李”问题进行讲解;在讲授循环程序设计时,以“百鸡百钱”、“水仙花数”、“猴子吃桃”、“国王算米”、“韩信点兵”等问题进行讲解;在讲授模块化程序设计时,以“歌德巴赫猜想”问题进行讲解;在讲授用递归法设计程序时,以“汉诺塔”问题进行讲解;在讲授迭代法设计程序时,以“兔子繁殖”问题进行讲解。
通过使用这些趣味题,能大大提高学生的学习兴趣。
三、注重引导,提高学生的综合编程能力 因为学生编程能力的高低,归根到底还是由他们分析问题和解决问题能力的高低决定的。
而分析
问题和解决问题能力的高低除了与自身的因素有关外,还与教师的教学方式、方法有关。
若教师在教学中,重视算法分析引导,学生们的编程水平哪有不提高的呢? 1、巧用比喻 比喻是借用已感知的知识来映射新知识,使新知识更容易理解的一种方法。
合理借用比喻能使抽象的知识深入浅出、通俗易懂。
例如,在讲授交换两个变量 a 和 b 的值时(假设 a 和b 的初值分别是 10 和 20),学生往往会用以下语句完成: ab ba 但是,经过运行程序,发现 a 和 b 并没有交换。
这时,教师就进行必要的指导,合理运用以下比喻:假设 a 磁带录的是歌曲,b 磁带录的是京剧,现在要交换这两个磁带的内容。
根据日常生活经验,学生很自然就想到借助另一个空磁带来实现。
同理,要交换两个变量 a 和b 的值,须借助第三个变量 t 来实现。
这时,学生很快就能正确写出以下程序段了: ta:ab:bt 2、善于观察 观察是认识事物的基础,是创造思维的起点,许多发明和创新,往往来自善于观察。
因此,引导学生善于观察,有利于激发他们的求知欲。
善于观察,不只是停留事物在表面,而是要注意事物隐含的内部规律。
例如,编程求:s11235813…共 20 项的和,学生们往往一筹莫展,原因是学生往往只从表面上观察事物。
这时教师就要引导学生善于观察隐含在事物内部的规律,得出:该数列的第一项是 1,第 2 项也是 1,从第三项开始,每一项等于前两项之和。
找到了这个规律,编写程序就不难了。
3、循序诱导 循序诱导是按照教材的内在联系和学生的认知规律,由浅入深地提出问题,引导学生主动、积极进行学习,掌握知识。
例如:在讲授循环程序设计时,学生对编程求 s1234…100已经熟练掌握,能够编写出如下程序段: s0 for i1 to 100 ssi next i print “s”s 接着,要求学生编写以下程序:①s1×2×3×4×…×10 ②s1!2!3!4!…10!,在教师的诱导下,学生也能够根据上一题的程序编写出这两题的程序。
对程序 1,因为是求若干项的积,所以,先将 1 赋值给 s,循环体的“”变为“”;又因为只有 10 项,所以将循环变量的终值由 100 变为 10。
对程序 2,因为是求若干项的和,所以先将 s 的初值赋值为 0,再用循环语句实现各项累加;而每一项又是若干项的积,所以,再通过循环语句计算每一项的值即可。
4、一题多编 一题多编,能培养学生的发散思维能力。
学生在一题多编的过程中,能深入透彻地理解教材,巩固所学知识,开拓知识视野,提高编程能力。
例如,编程:已知 a 为 10,b 为 20,要求交换 a 和 b 的值。
学生往往编写成以下程序段: a10 b20 ca ab bc 接着,要求学生,能不能不借用新的变量,用别的方法完成。
经过引导,学生能够写出以下程序段: a10 b20 aab ba-b aa-b 由于平时加强了这方面的训练,所以学生在编程过程中,思路开阔,方法灵活。
5、重视评价 由于算法的多样性,学生编写的程序不尽相同,此时,教师要引导学生对编写的程序进行评价。
通过评价,学生能够更深入地掌握所学的内容。
例如,在讲授冒泡排序时,要求将 n个数按从小到大的顺序排序。
学生往往会编出以下两种程序: 程序段 1: For i 1 To n - 1 For j 1 To n-1 If aj gt aj1 Then tempaj: ajaj1: aj1temp End if Next jNext i 程序段 2: For i 1 To n - 1 For j 1 To n-i If aj gt aj1 Then tempaj: ajaj1: aj1temp End if Next jNext I 这两种程序的运行结果都是正确的,但程序 2 要优于程序 1。
为什么呢?很多学生不明白。
这时,教师要引导学生分析这两种程序,得出:因为程序 2 执行的次数比
程序 1 的少,所以,程序 2 要优于程序 1。
由于程序
设计学习的实践性较强,需要科学地分配课堂教学 40 分钟的时间,做到练中有学、学中有练,尽量避免“满堂灌”的教学方式,使学生的程序设计能力在上机操作中得到提高。
当学生在程序运行过程中遇到问题时,教师不要马上指出其错误,而是启发学生观察研究程序的每条语句乃至标点符号,再参照出错信息的意思找出错误原因后进行修改,直到正确运行为止,这有利于学生通过人机对话、思索判断的思维活动来培养自学能力。
我发现在课堂上有一些学生,在他们正确完成学习任务之后,很乐意帮助其它同学,协助我进行上机指导,这样可以大大地提高学生的学习兴趣也增强了同学之间团结互助精神。
四、精心设计教学案例,实施有效教学 首先,从案例教学和举例教学的区别来说,案例应该在教学当中占据主导地位,过多的案例给人感觉就像举例教学,这样就失去案例教学应有的特征和效果。
其次,从程序设计教学现状来看,由于教学时数少,如果选取过多的案例,在教学进度及教学目标上就很难把握,并且太多案例的选取对于教师来说也有相当大的难度,而对
计算机程序设计教学而言,经典的案例并不是很多,要么太陈旧,要么太大、太深不适合教学的要求,大部分需要教师自己动手去编写。
最后,从程序设计教学的最终目的来看,是要让学生学会程序设计语言的基本知识和基本基本理论,因此说一个好的案例要能给予学生真正的实践指导,使学生能够
系统地把握。
所以,在程序设计教学中的案例选取时,根据这门程序设计语言本身的特点要精选有代表性的一到三个案例,并且要有扩展性。
对于案例而言,由于它并不能包含某一种程序设计语言课程的全部内容,特别是一些原理性、概念性相对比较强的内容,虽然案例教学在实用性和重应用性方面有很大的优势,但在知识的系统性、连贯性上不如传统教学有优势。
所以,要根据课程内容的性质寻找这两方面的接触点和相互之间的联系,将传统教学与案例教学有机地结合起来。
对于案例教学在程序设计教学中实施中的具体教学流程如下: 图1 同时,教师在实施案例教学的过程中要进行不断地反思,进而改进教学策略来适应不断变化的课堂和学生的需求,整个实施过程图如下: 图2 五、重视课堂错误,培养学生的综合能力。
在《算法与程序设计》课堂教学中,错误总是伴随着学生的学习过程。
笔者在两年的教学实践中,有一个很深的体会:学生在分析问题、设计算法到程序实现的学习过程中,通常是在“不断地犯错、不断地改错”这一过程中行进,并在行进中最终解决问题。
有专家指出:“课堂上的错误是教学的巨大财富”。
所以我们要充分利用这些“错误”,全面培养学生的综合能力。
1、用错误“激活”课堂,培养学生反思能力。
学生一般很难察觉隐性错误,教师发现此类错误后,最好不要直接指出,而是要引导学生多观察、多思考、多比较,让“错误”逐步浮出水面。
而且学生往往对自己的隐性错误有很大的兴趣,找到错误后也会很兴奋,教师可借此机会让学生积极开展自我反思。
教学片段:学生完成“求一元二次方程根”程序后,我让学生输入 abc 系数的值 1-23程序运行结果都是 3-1。
我告诉学生:这并不能说明你的程序是正确的。
学生的脸上写着问号。
当输 入 3-2-3 时,我请结果不是 1.3874 和-0.72 的同学举起手来,有几只手举了起来,我立即把屏幕窗口切换到其中一个同学,让学生来帮忙找错:原来是
VB 表达式错了。
经检查,其他几位同学也犯了同样的错误(见表五)。
随后我让学生们进行反思:程序有结果也不一定是正确的,一个正确程序的产生要进行多组数据的测试和比较,这也是编程中要逐步培养的科学精神。
2、用错误“激将”学生,培养学生探究能力。
学生在编程的过程中会比较注重结果,但在某种特例下,程序运行结果是对的,这个程序却无法解决所有的共性问题,这样的程序也是有问题的。
造成这样的问题通常是学生对某个关键环节把握还不够准确,教师应利用这个机会,引导学生进行知识的再建构,培养学生的探究能力。
教学片段:在学习循环语句时,我布置了这样一个提高任务:三毛是个高中生,他很想去看 08 年
奥运会,他打算从今天开始存钱,第一天存上一毛钱,第二天存上两毛钱,第三天存上四毛钱,以后每一天都存上比前一天多一倍的钱,请问他要攒足 1000 元需要多少天呢?表六(1)是学生编的程序和运行结果。
当我告诉学生这个问题的结果是 14 天的时候,学生欢呼了起来。
我说:恭喜你们,结果是对的,但是过程是错的,所以判定程序有错。
学生都很惊讶地着我。
我继续着:为什么过程是错的呢?请同学们进行研究。
在学生研究的过程中,我进行了这样的引导:你们可以把每天的结果打出来,然后思考,如果我把问题变为“请问他要攒足 1638.3 元需要多少天呢?”,程序会作何“反应”。
学生们经过探究,发现原来的程序逻辑是错的,在理解了问题的原因后,他们改正了这个程序的逻辑错误。
,我们不能忽视这些资源,而应充分利用这些错误 学生的错误是课堂最原生态的“资源”带给我们的教学契机。
课堂错误也只有在不断地改正中行进,在教师的良好驾驭中转化提升,才能迸发无穷的魅力,因为——“错”中自有黄金屋。
六、在“玩”中学,在“学”中玩,追求“快乐学习” 算法与程序设计难教、难学是一直困扰着广大师生的问题,游戏是一种古老而年轻的学习方式;教是一种有效的学习方式。
尝试地将游戏和教的学习方式应用在
VB 程序设计的入门课中,通过让学生从两人一块玩猜数游戏、和电脑一块玩猜数游戏,过渡到教电脑玩猜数游戏,来进行算法与程序设计教学。
实践证明,这是一种有效的程序设计教学的途径。
教学过程的主要环节如下: 环节一:玩“猜数游戏”1.展示课题:教电脑玩“猜数游戏”——初识
VB 开发环境2.组织学生两人一组玩“猜数游戏”,游戏规则如下: 同学甲心里想一个 0——100 间的整数,让同学乙来猜。
3.组织同学讨论:玩猜数游戏时,同学甲和同学乙都做了哪些事?4.老师用
VB 设计的
电脑游戏和同学一块玩,玩时注意总结猜数所用的方法,并设法减少猜 的次数。
5. 教师引导学生交流讨论。
讨论中引出随机数的概念、算法、算法优化的概念。
在该环节中,通过“猜数游戏”应该达到设疑激趣的效果。
所组织的交流讨论活动,是后面程序设计、算法及算法优化概念教学的关键,因此提问和回答都要简明,突出主要问题。
让学生对电脑能够具备玩“猜数游戏”的智能产生好奇。
环节二:“指点迷津” 教师通过组织学生阅读教材 P87,P93,让学生理解程序设计、程序设计的基本步骤、程序设计语言等概念。
教师在组织活动时应该向学生强调,程序设计语言实质是人“教授”电脑“本领”的载体,这种“教”就是利用程序设计语言编写一组命令或指令。
环节三:“熟悉我们的教练场——认识
VB 开发环境” 通过教师演示示范,学生实践操作,使学生学会:1.启动
VB 程序;2.新建工程;3.认识界面;4.试运行(F5)。
教师示范时要突出两点:一是对照 WORD 界面,比较认识
VB 界面;二是建立一个新工程,同时也就建立了一个窗口界面,这是
VB 程序设计的优点之一。
在环节三中,教师应该突出强调
VB 环境的特点和
VB 程序设计的优点,达到让学生体会到
VB 的操作简单、强大功能,可以用
VB 程序来教电脑玩游戏。
环节四:教电脑显示信息、接受命令与反馈信息——界面设计 1.用六个“标签控件”显示游戏的主要信息。
2.用三个“命令按钮控件”完成猜数、结束、与重新开始按钮设置。
3.用三个“文本框控件”接受并反馈过程信息,其中一个文本框控件用来接受对方所猜 的数,另外两个文本框控件来显示所猜的次数及其相应的提示信息。
4.初识
代码编写:双击“退出”命令按钮,在
代码窗口的光标位置,输入“end”即可。
5.保存成果。
环节四是让学生第一次尝试教电脑的做事情,是本节课的关键环节,要特别注意简单易行,让学生体会到教电脑做事情是不难的事情。
另外,所有的控件和
代码都采取拿来就用的原则,需要修改标签的 Caption 属性,就直接让学生修改;在编写
代码时也是如此。
环节五:本课小结 总结所学的内容,并突出强调学习
VB,就是通过掌握
VB 程序设计语言来教电脑做事情,使电脑具有相应智能。
七、制定合理的评价方式,促进学生的全面发展 评价策略,教学评价是课程的重要内容,也是保证教学和促进教学有效的重要手段。
新课改倡导评价方式多样,.