算法教学实践与探究
作者:许叠云 上海市上南中学
算法(Algorithm)是在有限步骤内求解某一问题所使用的具有精确定义的一系列操作步骤(或规则)的集合。设计算法就是确定解决问题的途径、步骤和方法,是我们利用计算机解决具体问题(需求分析→设计算法→程序设计→调试程序)的关键步骤,是程序设计的基础,也是对学生思维方法的一种改造。“算法”作为高中信息科技教学中的重难点,高中《信息科技》(华师大版)教材从算法的概念、算法的表示、算法实例三个方面对算法进行阐述并通过算法实例让学生体验算法思想,试图逐步建立起算法思维。但在高一学生中,由于家庭教育、兴趣爱好等的差异性,信息技术应用能力参差不齐,笔者一直坚持通过自身的变革,引导学生进行反思和质疑从而进行意义的建构,以丰富性和多样性去满足学生的需求。
一、 以网络环境下的教学平台为基础,使课堂教学和自主探究得以整合
2001年利用asp构建起个人动态教学网站(www.hsshn.pudong-edu.sh/xdyteaching),经过数年的不断完善,通过“网站管理”模块易于实现页面的维护和更
新,是按笔者意愿和教学风格自建的个人教学平台,成为笔者教学过程中不可分割的一部分。主要服务于以下几个方面:
首先,进行教案与学案整合的尝试。在电子教案的设计过程中,考虑到学生课前课后,个体的差异性,对教材中的流程图进一步规范、扩展和动态化,使学生能在实际问题、算法的自然语言表达、流程图和程序语言之间实行知识的迁移,在教案设计过程中注重实现将结果过程化,语言结构化。借助超文本的非线型性,实现对相关知识作适度注释、扩充和拓展,架设自主探究的信息化环境,以适应个体发展需要。像本文提供的“买笔方案的设计课题计划书(范例)”就是有意识地在进行教案与学案的整合。
在设计“计算从某年某月某日到某年某月某日的天数”的算法时,教材将其作为选学内容,算法中所涉及的相关知识并未提及,给教与学留下了较大的探究空间,笔者尝试着按以下思路进行教学设计并发布到个人教学网站,使教与学的目标更加明确。
“计算从某年某月某日到某年某月某日的天数的算法”教学设计
时序
任 务
基本目标
愿景简述
课前
采用头脑风暴,表述计算方法(发挥学生主体作用)
获得一组算法,通过发布到网站,利用网络学习和交流
构建算法探究素材;通过自主探究活动将具体算法问题的解决过程化,实现意义构建和认识结构的改造
课堂教学
10
分析、比较、选择(教师主导作用)
筛选出合适的算法(要求)
*有鲜明的特点;
*有实现的可能性;
*有可探究的空间;
课前教师随时疏理发布到网站上的算法,以优化课堂教学和便于面向个体进行辅导和引导,从不同角度发掘学生潜力
25
分组合作完成流程图的设计(促进生生之间的交流与合作)
要求整体结构清楚,局部可用语言表述
通过从语言表达到流程图的设计,实现语言智能到空间智能迁移,去发现有待开发的潜能
5分钟
算法中所涉及闰年的概念及某一年是闰年的条件(师生合作)
概念清晰
条件准确
闰年是如何形成的?以及计算的科学依据?判断一个年份是闰年的条件可能有哪些?
完善
*流程图
*C语言源程序(学生主体)
较完整掌握解决该问题的基本算法,让学生体验成功
在课堂教学中,把握骨架(重难点和知识架构),留给学生自由探索和补充的空间,使学生的学习从以摄入为主转向对知识的分析、判断和创造性运用为主,以此来激励学生的探索精神
拓展
*输入一个年份,月份,输出该月的天数;
*判断一个年份是闰年的算法
鼓励学生走出传统课堂教学模式,尊重学生的个体性、独特性和多样性
其次,提供一个互动平台,将课堂教学中的师生、生生互动延伸到课外。在当前课堂教学语言行为中,有关研究发现,师生交流与生生交流相比,师生交流占93.2%,生生交流仅占6.8%,而在师生交流中,93.8%是学生被动回答教师的问题,教师在不自觉中压抑学生的主体性,张扬自己的主导性,阻碍了学生求新求异思维的发展。信息科技教学时数68学时/学年,师生、生生交流时间受到较大的制约,通过互动平台,对课堂教学实施有效补充和扩展,使一对一、一对多、多对一、多对多交流模式易于实现,突破了教学的时空制约,使教学环境更加开放,带来更多平等对话和交流的机会。在上述算法的探究过程中,收到关于闰年及判断闰年的算法的帖子40多个,使枯燥无味的算法教学与天文地理及日常生活等知识结合起来,较好地发挥学生的主体地位。
再者,提供教学资源共建平台,师生均可通过给定帐户上传下载资源,并共享教学资源,使教学内容呈现多样化。教学素材的准备和收集,以及情境的创设不再是教师一个人的工作,有了学生的广泛参与,课堂教学更加生动,丰富多彩。提供教学资源共建平台的主要目的就是引导学生学会搜集、判断、选择和加工信息和发布信息的方法,促进信息科技的教学与信息素养、剖析问题的思维方法有机地结合起来。
二、 师生共同参与构建算法教学资源,激发内在自主学习动因
算法教学资源的共建是算法教学实践与探究活动的重要过程,是激发内在学习动因的重要环节。笔者着眼于《信息科技》第二期课改的基本思想,设计“课题计划书”,将信息科技的教学与信息素养、创新能力的培养有机地结合起来。在本学科的第一堂就组织成立课题小组,要求从平常的学习生活中去发掘问题、提炼问题并能较为准确地表述问题。规范探究活动,培养观察发观问题、提出问题和解决问题的能力。
在师生的共同参与下,同学们在个人教学网站-教学资源栏目发布了算法课题计划书30多个,例如:“E时代学习课题计划书”试图帮助小学生利用网络进行四则运算的学习;“出租车收费问题课题计划书”对我国各大城市出租车收费问题进行探究,并提出了独特的见解和相关算法等等。在算法资源构建过程中,笔者始终将启智与育人作为教学生涯中不懈追求的目标,我们充分利用校内外的教育资源,扩展学习空间,使学生最大限度地获得多方面的发展。买笔方案的设计课题计划书(范例)既是一种教学设计,更重要的是提供给学生模仿,使探究过程更加科学规范,也是对探究过程的一种记录。
买笔方案的设计课题计划书(范例)
课题发起者
教师
年级班级
高一年级
指导教师
许叠云
课题组成员
各班课代表及部分同学
开始日期
20041111
结束日期
20041118
问题的形成起因:
原高一(3)班学年结束时,由于遇到班级调整而涉及到班费结算问题。
问题的详细表述:
  上学期结束前,高一(3)(现高二(3))班长提出:想将剩余班费113元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。商店里有三种钢笔,她都比较满意,它们的单价分别为6元、5元和4元。她想买尽量多的钢笔以鼓励尽量多的同学,同时因为学年即将结束,她又不想有钱剩余。
分析:
 
1
对于这个实际问题,班长要买尽量多的笔,因此:都买4元的笔肯定可以买最多支笔,即:113/428
2
又由于班长要把钱用完,故我们可以按以下方法将钱用完:
由于113/41,少买一支4元钱的笔,换成一支5元钱的笔,笔的数目仍然是28支;
方案:
我们提供给班长的最优方案应该是:买274元钱的笔,买15元钱的笔,不买printf输出格式 同行6元钱的笔。
拓展:
如将该问题推广到剩余班费为x元,如何设计买笔方案?
用自然语言描述的算法
1. 开始
2. x为剩余班费,p4,p5,p6分别表示4元、5元和6元钱笔的数目;
3. x 113
4. x/40,则p4<=x/4, p5<=0p6<=0
5. x/41,则p4<=x/4-1p5<=1p6<=0
6. x/42,则p4<=x/4-1p5<=0p6<=1
7. x/43,则p4<=x/4-2p5<=1p6<=1
8. 输出最佳方案:p4p5p6
9. 结束
用流程图描述的算法:
C语言源程序:
main()
{
int x,p4,p5,p6;
scanf(“%d”,&x);
if(x%4==0)
{
p4 x/4;
p5 0;
p6 0;
  }
else
{
    if(x%4==1)
    {
      p4 x/4-1;
      p5 1;
      p6 0;
    }
    Else
    {
        If(x%4==2)
        {
            p4 x/4-1;
            p5 0;
            p6 1;
}
else
程序调试及结果分析:
输入:113
输出:p4=27,p5=1,p6=0
输入:114
输出:p4=27,p5=0,p6=1
输入:115
输出:p4=27,p5=1,p6=1
学生提问:
当余数为2时,我们可以少买二支4元的,而买二支5元的,总数仍然是28支。方案有二种可能,而该程序只能输出其中的一种方案?
教师答:
哦,是的!请大家思考一下如何修改上述算法和对应的程序或重新设计算法?
(学生对算法和程序的修改成功)
学生再提问:
我们可以将问题进一步限定,比如,在保证尽可能多的前提下,尽可能买最好的(最贵的),是否就完全适合这种算法?
教师答:
很对,对问题完整准确的表达也是一种能力,从结果出发,重新审视问题,在问题探究过程中经常会遇到,勇于对老师提出的问题置疑,值得我和同学们学习。
{
  p4 x/4-2;
  p5 1;
  p6 1;
}
      }
}
printf(“p4=%d,p5=%d,p6=%d\n”,p4,p5,p6);
}
对你探究问题的拓展思考:
1、 如果有些班级所选奖品单价分别为7元、8元和9元,剩余班费又各不相同,如何设计买笔方案?
2、 为了让奖品丰富一些,班主任建议三种奖品的单价分别为:x元、y元和z元,如何设计买笔方案?(其中x<y<z)
3、 生活中还有哪些现象可能适应这一算法?
对探究过程的反思与体会:
1、 从一个实际问题出发,师生共同参与探究,由特例到一般,步步深入、提高,整个教学过程充分展现了学生的主体地位,激发了内在学习动因;
2、 能将能力的培养真实地落实在教学实践活动之中。
三、 打破知识垄断,实现资源共享,促进师生之间、学生之间的交流与合作
打破知识垄断,营造一种知识共享和知识创新的信息氛围,促进小组之内、小组之间以及所任教班级与班级之间信息的交流,形成动态的知识流,并将学生、教师之个体知识转化为集体知识,使隐性知识较为自然地转化为显性知识,从一定程度上可避免出现知识孤岛或知识垄断现象。
教案有时作为教师个体认识和智慧的载体,受师道尊严等传统文化的影响,不愿公之于众。笔者在个人教学网站的“学科教学”板块发布了全年教案,通过“教学论坛”板块主动接受来自各方的指正,使自己的认识不断得到提升,教案也在动态中不断地得到优化和完善,同时也为同行们提供了借鉴的便利,通过“教学反思”板块及时发布教学心得,记录教学心理历程,在交流与合作中促成隐性知识向显性知识的转化,使较为封闭的个体教学过程置于一个开放的环境之中,努力实现从信息→知识→智慧的转变。
通过“教学资源”板块,师生均可在其中上载或下载资源。根据不同教学单元,有针对性上载“教师课题计划书(范例)”和空白“___课题计划书”,指导同学进行适度探究,在给定的时间内,完成课题计划书并上载。突破教学过程的时空限制,同组之间、组与组之间、班级与
班级之间以及教师均能及时了解课题进展情况,师生均可通过“教学论坛”组织起交流和讨论,相互学习,相互激励,相互补充,通过课题计划书的不断改进,去感受学习过程中的发展和进步,建立起学习过程中的一个个里程碑,去领悟交流、合作、资源共享和知识地图所带来的益处,体验成功的快乐。
四、 师生共同参与评价,引导学生质疑,学会学习与探究
在有选择地对具有一定价值的课题开展探究活动后,利用2学时组织班级课题报告会,进行总结和评价。为提高报告会的效率和质量,规范报告者的言行,笔者提前组织各课题小组长预备会议,指导并参与制订报告的基本要求和规范。如,对于“算法探究课题报告会”,提出以下基本要求和规范,以引导所有参与者进行交流讨论:
1、算法问题的原创性、可行性,如果是引用他人的,必须注明来处,尊重知识;
2、算法的清晰程度和正确性;
3、流程图是否完整表达了算法和流程图的规范性(注重三大结构的组合与嵌套问题)
4、力争对某具体问题能做些拓展和设想;
5、所有发言者力争做到言简意赅,举止大方文雅;
6、学会倾听、学会思考、学生质疑、学会提问,相互尊重和相互鼓励;
2004学年我校信息科技学科开始引进过程评价平台,其提供的定量和定性评价手段,对笔者个人教学平台作了非常好的补充,解决了笔者个人教学平台在过程评价方面的不足。总之,作为信息科技学科的教师,没有理由不去发挥自身在信息技术方面的优势,没有理由不去从事信息技术与学科教学的探究。笔者以"积累-交流-共享-创新"为指导思想,所进行的一些探索和尝试,还很肤浅,一定还存在许多不足,更有待于进一步完善,希望志同道合者、专家学者的批评指正。
参考书目:
1、 《教育信息化》教育部教育管理信息中心主办20055
2、 《高中信息科技》华东师范大学出版社 2004.7
3、 IT项目管理》上海市信息化培训协会编 2003.7
4、 《上海市中小学信息科技课程标准》上海出版社 2004.10
5、 微软中国:《微软知识管理策略》科学出版社
上海市上南中学
20055

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。