浅谈不发达地区NOIP教学中的速成教法
全国的NOIP(全国青少年信息学奥林匹克联赛),分普及组(以初中生为主)和提高组(以高中生为主),至今已举办了十年。初赛有少部分的信息技术基础知识的内容和绝大部分的与程序设计相关的问题,复赛只有4道程序设计题。因此这项比赛主要是程序设计大赛。全国绝大多数省连年参加,而且发达地区的水平越来越独站鳌头。而在不发达地区该项活动刚刚起步几年,又遇上搞得好的学校取消了初中。因此本来至少应从初一、初二年级开始进行NOIP普及活动的教育,在这类地区就变成了从高一开始“NOIP的 普及和提高活动”一起进行。这就给这类地区的学生能获“省赛一等奖而参赛”,并且成绩和全国的学生在一个分数线上提出了严俊的考验。学龄短两至三年,结果 却要一模一样。在这种情况下,怎样发动更多的学生参与到此项活动中来,怎样让素质好的学生速成即在短时间内能脱颖而出?就成了组织者
为了仿拷贝,加了这些信息
一、如何发动更多的高中生参加NOIP活动?
如有不便,请留言提出
先分析一下世界经济发展变化的形式。有史以来,世界经济的发展已从直接经济交换时代——农业文明阶段,发展到了间接经济交换时代——工业文明阶段;目前,正从间接交换经济时代,发展到超级直接经济交换时代——信息文明阶段。其主要标志是出现了新的生产力——网络,还有手机、视频电话以及各类替代现金的信息卡,如电话卡、信用卡、储蓄卡、乘车卡等等不胜枚举。可以在网上发E-mail,就不必让邮局代发信件;可以在网上开视频会议,就不必车马劳顿;可以在家办公,就不必大兴土木盖办公楼;可以使生产消费双方在网上定制、直接见面,就不必商场夹在中间瞎掺和……这些变化说明信息文明使一切都直接化了。
义乌教育
这些使一切“直接化的技术”都是以信息技术(主要指
义乌信息技术教育,http://www.ywhs.net/itedu
在这种情况下的落后地区,NOIP的指导教师只需告诉同学们,程序设计语言入门很简单。只要你参加NOIP的初赛,我可以“免费”先教你学习《PASCAL语言程序设计》再教你学习《数据结构》中的基本算法。求知欲强的高中生们会想:虽然我很可能从高一学到高三,都无法获得NOIP省赛一等奖的成绩而获得保送大学的资格,但我丰富了自己的知识,跟上了时代的步伐,为上大学再学程序设计打下了良好的基础,何乐而不为呢?一开始一个班便会有70~80%的学生踊跃报名。此时要想让更多的学生和你学习下去,最好在“奥班”直接从《PASCAL语言程序设计》开始教学;而在普通班从《QBASIC》语言程序设计基础开始教学,在讲完顺序语句后就可讲一个小问题来引入算法,以培养学生们编写程序的兴趣。
题1:某校高二年级有171人参加信息技术课会考,考场安排如下表:
|
准考证号码 |
1~30 |
31~60 |
61~90 |
91~120 |
121~150 为了仿拷贝,加了这些信息 |
151~171 提供最前沿信息技术教育信息及IT技术 |
|
考场号码 义乌教育
|
1 |
2 |
3 如有不便,请留言提出 |
4 提供最前沿信息技术教育信息及IT技术 |
5 |
6 提供最前沿信息技术教育信息及IT技术 |
设计程序,当任意输入一个考生的准考证号码时,能查询出该考生在第几考场,能用顺序语句编写该程序。
分析:先提示此题关键是利用“取整函数”来构造任一个准考证号码X和考场号码N之间的等式关系。再启发同学们构造出如下N与X关系的表达式。
义乌教育
QBASIC表达式:N=INT((X-1)/30)+1
或PASCAL表达式:N:=Trunc((X-1)/30)+1
然后让同学们自己将该程序补写完整并运行。
能自己构造出与上类似的表达式的同学,一定是学习程序设计的好苗子。
在讲完分支语句和循环语句即基本算法学完之后,再用一个有算法思想的问题来考察这些初学者是否有编程提高的能力。
题2:利用对称图形的思想,编程打印如下图形。
|
|
|
义乌教育 |
分析:这三个图形从上到下是7行,都是对称图形,为编程方便,可将行数i不称为:1~7行,而将行数i称为:-3~3行。图②每行起始位置所留的“空格数” 、“符号”及其“符号的个数”都与i的绝对值有关系。其程序如下:
提供最前沿信息技术教育信息及IT技术
var
i,j,c:integer;
begin
义乌市信息技术教育网,itedu
for i:=-3 to 3 do
begin
义乌教育
c:=abs(i); write(' ':c+1);
义乌教育
for j:=1 to 7-2*c do
write(chr(68-c));
writeln;
end;
end.
讲解完图②后,若能自己用对称思想编写完成图①和图③的程序,则说明其有编程提高的能力。再在这批有兴趣继续学习的学生中,选出大约1/3较好的学生转学《PASCAL语言程序设计》,以中国计算机学会所编的信息学奥林匹克系列丛书中的《全国信息学奥林匹克联赛培训教程》为教材效果较好,这样的启蒙顺序会使更多的人学会编写程序的基本方法。注意如果你不能让多于1/3的学生和你继续学习,那么说明你和孩子的沟通能力有不足之处。
我 的经验是“编程高手”,不仅只在奥班中产生,更多地会出现在有能力的普通班学生中,因为他们学起来更专一。因此在培训初期不要放弃这类大多数学生,说不上 哪个学生就会冒尖,他们不全是来凑数的。况且理论上讲,支持这项活动的人多了,获奖学生的百分比就增加了,就有可能让较多的程序设计爱好者获得省赛一等 奖。总之初赛的培训一定要普及。
二、怎样让素质好的学生在短时间内速成?
在高中阶段,怎样让学生们既要完成正常而较紧张的学习任务,又要在业余每周仅两节合法课的时间里学好程序设计,使个别学生能出成绩,即在NOIP复赛上能完成四道题中的两至三题?显然指导教师应在时间上和教法上想办法。
由 于在下午的自习课基本上均被高考科目的辅导课占用了,那么在什么时候给有兴趣、有能力的学生加课呢?显然是要挤时间。办法是在下午的自习课中,给有时间想 学的学生进行滚动教学;给中午不回家的学生布置任务,开放机房,并利用互联网让学生们进入程序设计学习与交流网站,如大榕树和同济大学的程序设计网上自动 评测系统进行自主学习,自我评估。给学生们营造一个合作、交流和竞争的学习氛围。
要让学生们能对付NOIP复赛中的两至三题,在基本PASCAL语言学完(需要半年的业余时间)之后,就得让学生们学会动态规划、递归、树、搜索、贪心等算法。常规的教法需要两年才能完成,肯定很难出成绩。这就要求指导教师教会“进攻型”学生自学的能力,使他们成为这批学生中的“程序设计高手”。
《数 据结构》是程序设计的方法论,必须给学生教。学会这门课后,学生们就会有自学能力。怎样让学生们快速入门呢?就要用最直接、最易懂、最形象的语言,让学生 们领会每一部分算法最关键的步骤所在。至于完整具体的算法,他们完全可以自己读懂。比如在讲最小代价生成树时的两个算法——普里姆算法(Prim)和克鲁斯卡尔(Kruskal)算法时,首先用一典型例题进行分析。
题3:假设要在n个城市之间建立通讯联络网,则连通n个城市只需n-1条线路。如何在最节省经费的前提下,建立这个通讯网。n个城市的初始连通图具有n*(n-1)/2条边,每条边都有权值。如何造出这个具有最小代价的只有n-1条线路的n个城市通讯网呢?
分析:
Ø 普里姆算法是先连接n个顶点中“权值”最小的一条边,再连接和这两个顶点相连的“权值” 最小的一条边,依次下去,直到n个顶点连成了n-1条边为止。这是一个“边、边相接”的过程。
Ø 克鲁斯卡尔算法是先连接n个顶点中“权值”最小的一条边,再在所剩顶点中连接和这两个顶点不相连的“权值”最小的一条边,当没有(n为偶数)或只有一个(n为奇数)孤立点存在时,再将所剩边中权值最小的边连接起来,直到n个顶点连成了n-1条边为止。这是一个“边、边先分后合为一体”的过程。
这样分析完,再在黑板上给学生们画出用以上两个方法绘制最小代价生成树的具体过程,之后大多数学生就可以读懂书中的普里姆和克鲁斯卡尔的算法描述了。
提供最前沿信息技术教育信息及IT技术
这 种教法让学生们基本理解《数据结构》大约需要两个月的时间。之后教师可介绍一些名师们如吴文虎、王建德、吴耀斌、曹利国、向期中、朱全民等所编写的信息学 奥赛指导丛书,并指导“进攻型”学生自学。例如信息学奥林匹克系列指导从书中的《图论算法与程序设计》和《组合数学的的算法与程序设计》、《金牌之路》、 《奥赛经典》和《信息学奥林匹克》等等。说明只要以其中的一套书为蓝本进行主攻,若有能力再以其它书为辅,有计划地上机开始多编程序,并指导学生们上Internet如大榕树、趣题之家和程序设计网上自动评测系统等类型的网站,进行学习、与外省的编程高手进行交流、自测自己目前的水平。在一年多的时间里来消化递归、搜索和动态规划等算法。到高二参加NOIP复赛前的两个月中若能自攻两至三套往年的NOIP竞赛题每套中的2至3道,考场上正常发挥,这类考生一般有可能拿到省赛一等奖的成绩。如若考场失利,就要总结经验教训,在一年中针对自己的短处进行训练,在来年高三时继续参加NOIP一定能发挥出自己最好的水平,而拿到省赛一等奖,圆一个中学生能保送较好的重点大学的梦想。
三、结论
总之,只要落后地区的NOIP指导教师能高瞻远瞩,对有兴趣参与NOIP竞赛的学生们有耐心、能奉献自己的一技之长,一定会有更多的学生参与到NOIP活动中来。



文章评论
共有 0位itedu爱好者发表了评论 查看完整内容