为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

如何引导中学生进入编程世界

2017-12-10 12页 doc 54KB 10阅读

用户头像

is_531654

暂无简介

举报
如何引导中学生进入编程世界如何引导中学生进入编程世界 “框架填补法”在中学编程学习中的应用研究 “框架填补法”在中学编程学习中的应用研究 摘要 在中学程序设计教学中,绝大多数的学生都觉得难学。笔者根据J.Piaget提 [1][2]出的建构主义理论,融汇支架式教学(Scaffolding Instruction)的思想同,创造了一种新的教学方法:框架填补法,并在不同的班和传统教学法对比教学,收到的效果大不一样。本文重点介绍的框架填补法不按传统的教材顺序,先从整体上让学生把握住程序的框架结构,再细化流程图,最终将自然语言转化为计算机语言,比较轻松地...
如何引导中学生进入编程世界
如何引导中学生进入编程世界 “框架填补法”在中学编程学习中的应用研究 “框架填补法”在中学编程学习中的应用研究 摘要 在中学程序教学中,绝大多数的学生都觉得难学。笔者根据J.Piaget提 [1][2]出的建构主义理论,融汇支架式教学(Scaffolding Instruction)的思想同,创造了一种新的教学方法:框架填补法,并在不同的班和传统教学法对比教学,收到的效果大不一样。本文重点介绍的框架填补法不按传统的教材顺序,先从整体上让学生把握住程序的框架结构,再细化流程图,最终将自然语言转化为计算机语言,比较轻松地达到了大纲要求的教学目标。笔者将此法连续3年在不同年级十多个班的教学中进行了进一步的验证研究,并用“t检验”统计法对相关数据进行分析,证明了这种新的学习方式对于中学生编程学习有很大的帮助。 关键词: 编程 建构主义 支架式教学 传统教学法 框架填补法 t检验 一 引言 (一)问题的提出 在教育部颁发的信息技术大纲中,要求中学生必须掌握一门计算机高级语言。但编程又是高中信息学中公认的难点。学生普遍反映学不懂,抵触情绪比较严重,甚至要求不纳入会考范围。 (二)解决问题的思路 在中学的教材中,学习的高级语言一般是Pascal。笔者参加过这种教材的三个版本的编写,觉得Pascal语言虽然相对于中学生来说比较难学,但如果教师能正确采用相应的教学方法,学习这门语言应该是不困难的。为此,作者经过在多年一线教学的经验积累,在以强调学生为主心、创造学习情景、让学生自主学习等原则下,创造了框架填补教学法。为了对比不同的效果,笔者选用了两个不同水平的班级:树人学校2001年入学的学生和重庆八中2001年入学的学生。树人学校的学生与普通中学水平相当,而八中学生水平是全市一流的。八中学生教学的方法是完全依据教材的进度及内容安排,称为传统教学法;在树人学校则采取框架填补法。将此两种方法对比教学后,觉得效果大不一样。随后的两年中,我根据实验个体性质进一步修改了该教学法,扩大了实验研究的对象,在总共20多个班中进行对比实验,并将测试数据经t检验,得到了非常显著的实验效果。 二 框架填补法 (一)理论依据 教育心理学的研究表明,学生在接受新知识或接受新技能时,如果有一个正确的、积极的心理准备(求知欲),则其接收的效率将会高出被动接收效率的 1 “框架填补法”在中学编程学习中的应用研究 一至两倍。长期处于被动接受的状态还会产生压抑、厌倦、对抗、恐惧等情绪进入心理的误区,严重影响学习的效果。而中学生在编程学习的过程中,普遍表现出“厌学”、“难学”、“被动学”的现象。而出现这种现象的原因,主要是传统的编程教学模式设计以及在校大学生的学习模式为样本,在难度上进行了部分调整之后,按部就班地从最烦琐而且暂时无法应用的基本理论学起,让学生首先在心理上产生了一种抗拒的意识。但学生难以在开始阶段将离散的知识点系统地接受,等到开始了实际的编程练习时,早就将前面的知识忘记了,而且已经索然无味了。 要让学生能够学好编程,必须解决好几个关键问题: 1 培养学习的兴趣 2 创造学好编程的情景 3 变“老师灌”为“学生学” 4 改变现有传统的知识结构,创造新的目标框架 建构主义理论认为,“在学习过程中,要以学生为中心,在整个教学过程中要以教师为组织者、指导者、帮助者和促进者,利用情景、协作、会话等学习环境要素充分发挥学生的主动性、积极性和首创精神,最终达到使学生有效地实现 [3]对当前所学的知识的意义建构的目的”。建构主义的教学方法比较多,其中, [2]支架式教学(SI)的特点非常适合中学信息学的编程教学。支架式教学要求为学生学习建构一种概念框架(Cnceeptual Framework)。这种框架中的概念是为发展学习者对问题的进一步理解所需要的。为此,事先要把复杂的学习任务加以分解,以便于把学生的理解逐步引向深入。它与前苏联著名心理学家维果斯基的“最邻近发展区”理论是一脉相传。这个“最邻近发展区”中,学生的实际发展水平(第一个发展水平)就是他们有学好编程的想法,但是,烦琐的命令和语法让他们觉杂乱和烦琐,没法感知整个结构化程序设计的整体风格和结构。这时,老师就要指导他们达到潜在发展水平(第二个发展水平)之间的距离,即每个学生能够学好编程,但要在老师的帮助下从一个水平提升到另一个水平,这样不停地提高,真正使学生走在发展的前面。 为此,老师要设计“脚手架”,按学生目前水平和学习的主题,用“最邻近发展区”的要求建立框架,然后将学生引入问题情景。当进入了学习情景中后,学生会慢慢展现其独立探索的一面,他们会主动提出问题了,这时,老师要循序渐进地引导,同时指导他们协助学习。框架填补法正是在这种理念指导下,根据中学程序设计的特点而搭建框架,找到学生的“邻近发展区”,再发展到第二个发展水平,营造编程学习情景。 传统的编程学习是从复杂的语法格式开始,一步一步地“系统”地学习。但这种教学方法容易让学生一开始就陷入到复杂的的语法规则中,而且在学习这类 2 “框架填补法”在中学编程学习中的应用研究 知识时还不知道其有何用处、如何使用。因此,不少中学生直到学习到后面的顺序、分支、循环程序设计时才明白前面内容的意思。但是,大部分学生早在开始编程之前就已经丧失信心了。这种教学方法是“先细后粗”,让学生直到后面阶段才真正明白什么是程序。 框架填补法是支架式教学法在中学编程教学中的一种应用,它先从整体上让学生认识什么是程序,然后将每一个具体的程序(任务)用流程框架图画出,这只是一个“脚手架”,但足以让学生目的明确。接下来就是细化每一个框图,将每一个图分解成更加细小的任务。当任务小到一定程度时,便是一条不可再分解的语句了。到这个时候,学生便会比较轻松地接受这条语句。这种教学法不以具体的语法规则为教学重点,而是重在培养学生整体认识性,对于具体的语法规则就变成“任务驱动”的方式去学习了,很容易培养学生主动学习的能力。 (二) 传统教学法的教学安排 传统教学法安全按照教学大纲要求,安排为14课时,学习的内容为: ?计算机语言的分类(1课时) ?Pascal语言的编辑界面(1课时) ?Pascal语言的基本符号(1课时) ?Pascal语言的程序格式(1课时) ?函数和表达式(1课时) ?输入输出语句(1课时) ?顺序程序设计(2课时) ?条件语句(2课时) ?分支程序设计(2课时) ?过程和函数(2课时) 笔者就按照这种教学设计,从最基本的内容一步一步讲下来。第一节课,学生学习计算机语言的分类时,由于介绍了大量的新东西,学习听得比较轻松,而且学习积极性高。在学习第二节课时,学生开始觉得比较空洞了。因为他们还不知道什么是程序就要进入编程界面去熟悉各种操作。第三节课就觉得很枯燥了,觉得好像在背很枯燥的英语单词,开始有人不听课了。从第四节课开始,学生满腔激情开始淡没,听得很吃力,又不知道记那么多的标准函数做什么,开始被动地接受东西了,反正教师讲什么就听什么,但不知道学了这些东西有什么用。到了第7节课左右,已经有50%左右的学生已经跟不上教师的进度,表现的状况是上机不能编写程序,上课听不懂。到了内容的末期,60%的学生完全听不懂教师讲的内容,20%的学生能听懂大部分,但不能编写程序。只有20%的学生能跟上教师的进度,在老师的帮助下能正确调试出程序。综合这个过程,将能跟上教学进度的学生比例曲线由下图表示: 3 “框架填补法”在中学编程学习中的应用研究 (三) 框架填补法的具体实现 笔者发现,不少学生在学完编程课程后连什么是程序都不知道。不少教师在讲授程序课时过多地沉溺于编写程序的规则上去了,一开始就让学生记忆很多符号和保留字,在编写程序时没有从整体上去把握思路,陷入到具体的语法中去了。于是,在树人学校的教学过程中,笔者没有按照大纲的顺序,而是以生活中的实例讲什么是程序,程序设计的思路,如何画流程图,如何将流程图细化,如何将自然语言转换成Pascal语言。到此为止,程序的源代码就出来了。 以这种方法,笔者的内容及课时安排如下: ? 什么是计算机语言,语言的分类(1课时,与传统教学法无异) ? 什么是程序,以生活中的事为例,让学生明白程序其实很简单。(1 课时) 如,早晨起床的程序如下: 1 从床上醒来 2 穿衣 3 洗漱 4 吃早餐 5 收拾书包上学 马上有同学说第2、3、4步可以交换顺序。于是笔者告诉学生在编写程 序时哪些步骤可以交换,哪些不能交换。学生记忆深刻。 ? 用流程图来表示程序。(2课时)。在本课时里,不分顺序、分支以及 循环三大章节的内容,全部纳在一起讲解。在这里,便开始搭框架了, 是最粗略的框架,主要教学目的是让学生从整体上把握结构化程序设计 思想。如: 4 “框架填补法”在中学编程学习中的应用研究 循环程序流程图 分支程序流程图 笔者发现,经过这两节课后,将教材中的课后练习中较难的题让学生去完成流程图,80%左右的学生都能完成。这个结果让笔者倍感欣慰。 ? 细化流程图(2课时)。 这一步很重要,主要让学生将粗略的流程图中的每一步细化,以适合程序设计的习惯。比如,“找出两个数中的最大数”就这样细化: 1 给变量A读入一个数 2 给变量B读入一个数 找出两个数 中的最大数 3 比较A、B的大小,取最大数 4 将最大数存入变量C中 在这一步时,学生已经进入到了编程的情景中(虽然还没有编写代码,但他们的工作已经完成了编程过程中很重要的一个环节了),此时学生不会觉得这个过程费解,也就是说学生还保持着学习的兴趣。 ? 将细化后的流程图转化为程序(6课时) 这一步的工作量最大,主要是将自然语言转化为计算机语言。比如,“给变量A读入一个数5”就转化为“A:,5;”。在这个程序上再将保留字、标准函数、输入输出语句教给学生,笔者发现出其的顺利,大部分同学可以借助教材进行语言转换了。这个过程中,教材只是作为查找语法及函数的。笔者当场在黑板上布置了一道作业题,大约70%的同学能够正确地完成,剩下的30%的同学或多或少地完成了部分,没有动不起笔的学生。而这道题,笔者在八中学生中测试的结果是仅30%左右的学生能写出程序。而更关键的是,树人学校的学生一直都没觉得学习编写程序是一件难事。 其实在进行这一步时,学生早就迫不及待地开始提问了:这个语句应该怎样完成,那个语句该怎么做,有些学生甚至自己在书上找答案了。这就已经变成主 5 “框架填补法”在中学编程学习中的应用研究 动要学了,到了这一步,老师讲述已经为辅了。 ?上机调试程序(1课时)。这一步其实在上一步就已经穿插进来了,学生只需记住几个常用的操作步骤就可以完成程序的编译。 ? 扩展知识的讲解 在八中学生中,到最后一节课时,早就被“折磨”得痛苦不堪了,根本不敢扩展。而在树人学校,学生已经处于不同的高度了,笔者从结构化程序讲到面向对象程序设计,从Pascal讲到VC,从J2EE讲到.NET,让他们明白这些编程工具很多只是语法上的差异,关键是掌握编程的整体思想。 可以用下图来表示树人学校学生掌握知识水平的情况: 三 两种方法的对比 两种不同教学方法对比效果,由下表可见一斑: 对比对象 八中学生 树人学校学生 对比项目 逐渐减弱,最后几乎没稍有减少,大部分同学一学习兴趣 有兴趣 直保持浓厚的兴趣 教完即忘,翻开书也不基本语法的掌握程度 借助书本查找其用途 知道是什么意思 编写程序的能力 20%的同学能完成 65%的同学能完成 调试程序的能力 差 较强 四 框架填补法应用面的扩大研究 在上述两个不同学校的学生对比进行了实验后,我发现此法有相当的实用 6 “框架填补法”在中学编程学习中的应用研究 性,于是开展的进一步的研究。研究时间为两年,即2002年和2003年,对象为重庆八中当年高一学生。由于每个年级有十多个班,每个班的学生在入校时是平行分班,每个班学生的学习能力基本均等。我将它分成两组:2002年的A组为1,7班,采用框架填补法;8,13班为B组,采用传统教学法。在第二年的实验中,结合前一年的经验,我对框架填补法作了些改进,使其更加突出知识的整体性、系统性以及“框架”的骨干作用和“填补”的细化作用。为了有充分的数据证明,我在程序设计这一章学习完成后,进行了测试。测试的方法分为笔试和上机编程两项,二者之和为总分。试题的来源为大学非计算机专业计算机等级考试试题,我选取了难度适合中学内容的部分试题。当成绩出来后,我对这些成绩进行了“t检验”,其结果如下: 2002年高一年级考试成绩t检验统计表 t p 分组 人数 平均分 标准差 A 362 80.667 9.535 4.857 P<0.01 B 312 68.5 9.867 经t检验,p,0.01,其成绩差异是相当显著的。 2003年,我再次将框架填补法进一步完善后,将其应用到当年的高一学生上,4,10班为A组,11,17班为B组,A、B两组的学生仍然是平行分班,水平对等。考试成绩仍然是采用框架填补法的A组遥遥领先。其“t检验”结果如下: 2003年高一年级考试成绩t检验统计表 t p 分组 人数 平均分 标准差 A 366 81.374 9.473 4.568 P<0.01 B 365 70.113 9.625 该年的结果是p,0.01,成绩差异仍然是相当显著的。 对两种教学方法进行对比,可以得到以下表格的中数据: 教学法 框架填补法 传统教学法 对比项 学习目标 开始就明确 最后逐渐明确 学习顺序 先整体再细化 先细化再整体 学习主体 学生 教师 学习方式 引导学生自主学 教师满堂灌 学习情景 营造编程的情景 基本上没有情景 知识体系安排 根据框架内容安排 安全按教材顺序安排 学习兴趣 持续保持较浓的兴趣 兴趣逐渐消失 完成教学内容情况 圆满完成 勉强完成 7 “框架填补法”在中学编程学习中的应用研究 五 实验之余的思考 由于改变了教学方法,不容质疑,框架填补法是帮助学生学习程序设计的好方法。通过这次成功的探索,我感觉在以后的教学中,除了这种教学方法的具体 过程外,还有以下值得借鉴的地方: 1 要敢于打破教材的束缚,寻找最适合学生认知特点的教学方法。 2 在教学内容的体系上合理安排,让学生能够系统地、连贯地学习知识,有利于学生循序渐进地学习。 3 在某些知识点的教学上,应该让学生先从整体上把握全局思想,再具体到每一个知识点,让学生思维清晰。 4 兴趣是最好的老师,让学生对所学的知识保持永恒的兴趣,学习效率会大增。 结束语 框架填补法是在建构主义理论中支架式教学法的一种应用,它创立了学习编程的情景。学生在编写一个程序的过程中,先是明确了问题,搭好了框架,然后带着问题去查书,去找那些语法规则,然后相互讨论,最终以多种形式编写好程序。在教学的过程中,我发现实验班的学生往往会主动问问题,一般情况下我是引导方向,尽量让他们自己完成,其学习的主体性体现得比较突出。而对比班的学生几乎从不提问,主要原因是提不出问题。 两种方法的教学效果相差非常明显,但为什么现在的教材不改变教学模式呢,原因可能是这样:Pascal语言一直都是大学的教材,很多年来大学教材都是按照最传统的模式编写,这对于大学生来说能够接受,其矛盾还不是很突出。后来将Pascal引入中学后,习惯上的模式难以改变,同时也为了追求“系统”的编写模式,所以给中学教学带来了很大的麻烦。笔者在框架填补法中很少用到教材,也没有刻意去区分顺序、分支、循环程序设计之间的差别,先给学生建立一个编写程序的“思想”,再让这个“思想”逐步成为具体的程序。 参考文献 [1] Divid Jonassen et al.condtructivismand computer-mediated commnuication in Distance Education,The American Journal of Distance Education Vol.No.2,1995 [2] Divid Griffiths,Environmental Challenges:Mading a Difference in the Classroom,Proceeding of CAL97 [3] 张建伟、陈琦 “从认知主义到建构主义”,北京师范大学学报(社会科学版),1996年第4期 8
/
本文档为【如何引导中学生进入编程世界】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索