高中程序设计教学中开展自主学习的思考与实践
[文章提要]
程序设计教学长期以来一直是高中信息技术教学的重点和难点。编制一个完整的程序必须了解程序的基本结构,掌握常量、变量和表达式等概念,熟悉常量、变量的说明方法,学会输入、输出、赋值等语句的格式。对于一个初学者而言,这是比较困难的。如何在教学中因材施教,激发学生兴趣,指导学生学习是程序设计教学的首要问题。本文重点讨论上机实践时的自主学习方式。
[关键词] 自主学习 程序设计
[正文]
一、引言
程序设计教学长期以来一直是高中信息技术教学的重点和难点。
程序中包含着计算机输入、处理和输出信息的过程。通过学习程序设计,特别是编程实践,不仅能够帮助学生深入理解信息处理的方式,锻炼其分析、解决问题的能力,还能训练和培养学生严谨的逻辑思维能力、灵活的技术思维能力和独特的创新思维能力,形成较强的问题意识和较好的创新思维品质。
然而,“万事开头难”,程序设计尤其如此。首先,编制一个完整的程序必须了解程序的基本结构,掌握常量、变量和表达式等概念,熟悉常量、变量的说明方法,学会输入、输出、赋值等语句的格式。对于一个初学者而言,这是比较困难的。其次,由于计算机在计算方面的独特优势,使计算机解决问题的技术思维方式和学生一向习惯的数理逻辑思维方式有所不同,这也给学生的学习带来了困扰。另外,学生的思维方式各有特色,接受能力也不尽相同,如果不能因材施教,也会产生各种困难。
目前,很多老师在程序教学部分,采用比较单一的接受学习方式,强调语句语法的理解和命令概念的记忆,注重理论课上知识的灌输,忽视了编程实践课中的方法思路的指导。在初学阶段,特别是上机调试程序时,学生不可避免地会遇到各种问题。如果这些问题不能及时解决,就会有挫折感,容易导致他们为完成学习任务而抄袭,久而久之,就丧失了学习的热情和兴趣,产生畏难情绪,从而对今后的学习失去信心。
如何解决上述问题呢?笔者认为,教师必须从培养学生兴趣入手,让学生成为学习的主人,营造良好的学习环境和氛围,逐步引导学生改变学习态度、学习意识和学习习惯,借助教师提供的学习资源,尝试自主、合作和探究的学习方式,才能形成教与学的良性循环,达成教学目标。
二、理论基础
单一、被动的学习方式往往使学生感到枯燥、乏味,而且负担很重。因此,新课程改革中要求转变原有的单纯接受的学习方式,建立和形成旨在充分调动、发挥学生主体性的学习方式,提倡自主、探究和合作的学习方式。
学习方式不仅包括学习方法,而且涉及学习习惯、学习意识、学习态度、学习品质等心理因素和心灵力量。从实践的角度讲,改变学习方式意味着改变学生的学习态度,培养学生的学习责任感,并使学生养成终身学习的愿望和能力。
自主性、探究性和合作性是学习方式的三个基本维度,而合作学习和探究学习都是建立在自主学习的基础上的。只有自主学习才能帮助学生确立自主的尊严,获得可持续发展的动力。
所谓自主学习,就是在自主教育气氛中,学生在学习活动中不断激发主体意识,积极发挥主观能动性和创造精神的一种学习模式。“自主学习”的学习方式下,学生的知识不是靠老师传播,而是靠自己去主动获取,学生对一些问题的结论,不是靠老师去分析,而是靠自己去独立思考,长期下去,学生获取信息、加工信息的习惯和能力逐步形成,学生自主分析、解决问题的能力逐步形成,智力加工水平逐步提高,从而实现真正意义上的学会学习。
所有能有效促进学生发展的学习,都一定是自主学习。但并不是所有的学习领域和学习主题都需要用合作学习的形式或探究学习的方式来进行。对程序设计来说,学习概念、原理时接受学习是必要的,编程实践时自主学习是最重要的,解决复杂问题时合作、探究就是最有效的了。本文重点讨论上机实践时的自主学习方式。
三、原则和策略
1、激发兴趣
俗话说:兴趣是最好的老师。兴趣来源于好奇,好奇心是人类与生俱来的。一个人只有对某件事情产生了好奇心,感兴趣了,才会启动思维,苦思冥想;只有对一个问题感兴趣了,才会主动去寻找解决它的办法。并且,只有在做事情时感到其乐无穷,精力才会高度集中,才能充分发挥自身的聪明才智,才能有所创造,有所发明,兴趣是激发学生学习积极性的动力,兴趣是激发创造力的必要条件。因此,在程序设计教学过程中,教师的重要任务之一就是激发学生的学习兴趣。
(1)、激发学生的学习兴趣,首先要从利用学生的好奇心,培养学生的直接学习兴趣入手。直接学习兴趣是由所学的内容或学习活动,即学习过程本身直接引发的兴趣。因此,教师可从问题的引入和学习活动的设计上下功夫。在VB程序设计教学中,我为每堂课都设计了一个能激发学生好奇心的任务,“猜年龄”,“猜数字”, “诗情画意”, “芝麻开门”,“星星闪烁” ,“图形变形闯关”,“星座图片浏览器”等等。学生们通过这些小任务,饶有趣味地学会了标签、文本框、按钮等控件的使用及其属性设置。
(2)、激发学生的学习兴趣,还要培养学生的间接学习兴趣,使学习兴趣能保持稳定。间接学习兴趣是由学习活动的结果所引发的,它更容易调动学生学习的激情和内在潜力。一个程序经过调试而运行成功,往往需要学生花费相当多的时间和精力,因此,它带给学生的愉悦也是不言而喻的。这种“成就感”不仅使学生增强了自信心,而且会使其爆发出继续学习的强烈愿望,间接学习兴趣也就越来越浓厚。由间接学习兴趣所引发的学习动机具有明显的自觉性和主动性,这也使学生的自主学习有了内在的驱动力。因此,对于那些需要帮助和指导的学生,教师应进行个别辅导,使其体会到成功的快乐,才能形成稳定和持久的学习兴趣。
2、学生主体
学生是学习过程的主体,学生的学习过程是一个相对独立的客观过程,教师的主导作用要通过学生对学习过程的主动性、积极性才能实现。因此,开展自主学习,必须把学生置于主体地位并提供主体地位的天地,使学生成为学习的行动者。
(1)、坚持以学生为学习的主体,首先要重视学生在学习活动中主体意识的自觉激发。主体意识是基于学生对学习的一种内在需要,这种内在需要一方面表现为学习兴趣,另一方面表现为学习责任。如果学习的内容能够带给学生理智上的挑战,能够切入并丰富学生的经验系统·,能够使学生获得积极的、深层次的体验,就能增强学生的主体意识。因此,教师在设计教学内容时,要靠近学生最近发展区,使学生在知识与技能上有所发展,有所提升。程序设计中的很多问题都要求学生能够建立数学模型,教师如果能在教学中将学习内容和数学知识合理、有效地整合起来,往往能收到良好的教学效果。例如,“解一元二次方程”, “求阴影部分面积”,“求水仙花数”,“判断质数”,“判断点与圆的位置关系”,“求直线在直角坐标系中某个区域的整数解”;“百钱买百鸡”等等,这些任务都会给学生带来既熟悉、又陌生的感觉,使他们跃跃欲试。学习有了挑战性,学生才会去尝试、去探究。
(2)、坚持以学生为学习的主体,更要重视学生在学习活动中主观能动性的积极发挥。教师的教学活动是作为外部因素作用于学生的,这种作用只有跟学生的学习动机、学习需要、学习意志等内部因素发生交互作用,才能收到良好的教学效果。其中,学习的意志品质是主观能动性得以充分发挥的关键。学习意志表现在学习活动中分为准备阶段和行动阶段。产生学习兴趣,明确学习目的,是意志准备阶段的第一步,确定解题思路是第二步。教师在这一步中,能做的很多。程序设计中讲究自顶向下逐步细化的结构化设计思想,把抽象的解题思路以流程图的形式具体描述出来,不仅能使思路清晰、编程有据,还能有效地培养学生思维的条理性和逻辑性。学生只有确立了解题步骤,才能开始具体的程序编制,这就是学习意志的行动阶段了。在这一阶段,学生不可避免地会遇到很多困难,要解决很多新问题,教师首先要教会学生程序调试的方法,帮助学生理解计算机反馈给他的错误信息,对程序做出修改和调整。其次要鼓励学生发挥坚韧的学习意志,克服各种困难,把编程进行到底。其实,每次通过自身努力完成一个程序,都是对学生学习意志的一次有益的锻炼。
众不同的条件和需要,可以由任务的“可扩展点”做进一步发挥与完善。这样的设计对于一些学有余力的学生来说,既是因材施教,又可激发其主动创造的欲望,培养创新精神。比如学过嵌套的For循环结构后,教师设计了用“*”组成图形的任务,并由简单到复杂地分解了六个图形,鼓励学生编程闯关,其实学生只要完成前面三关就能掌握这类图形的编程特点,教学的目的也就达到了。学生掌握了普遍规律后,再对特殊图形进行特殊处理,就能完成后面的图形。最后一关是菱形,很多学生在形成了思维定势后,把图形分上下两部分,把前面的程序进行简单拼接,完成闯关。只有少数同学利用图形的上下对称特性,使用-n到n之间的循环变量来表现图形特点,把上下两部分图形合二为一地输出。
(3)、培养创新能力,要训练学生的创新思维能力。创新能力的核心就是创新思维能力。创新思维是指人们在提出问题和解决问题的过程中,能够产生新成果的思维活动。发散思维、类推思维、求异思维等都是行之有效的创新思维形式。程序设计课中,培养学生的创新思维,主要通过编程解题的途径。教师提出问题后,要鼓励学生独立思考解题思路,逐步引导他们改变以往单一的、逻辑的、线性的思维方式,多角度、多侧面、多方位地考察问题,注重在上机实践活动中,借助程序的编译反馈信息检验思维成果。其实,程序设计算法中的枚举法、分治法、递推法、递归、动态规划法等等,都是对学生创新思维的有效的训练方法。
四、教学过程
1、教学准备
(1)、确定目标
在确立教学目标时,教师应以学生的求知需求为主线,以学生目前的知识技能基础为依据,考虑让学生“学什么”,“怎么学”。而且要针对学生间的差异,提出分层次的目标,使不同层次的学生得到发展。
(2)、设计任务
设计学习任务,是引起学生兴趣的关键。教师应关注学生的经验,提出有意义的学习任务,促使学生主动、积极地投入到学习中去。
(3)、收集资源
学生的自主学习需要有丰富的学习资源来支撑。教师应围绕学习任务,搜索相关的学习资源,把基本概念、语法规则、操作步骤、调试帮助等内容组织成网页,使学生在编程实践时有据可查,及时获得必要的支持信息。
(4)、制作学案
我坚持使用学习网站开展自主学习,为每节上机实践课设计了学习网页,提出学习的目标和任务,提供有关的资源链接,将学习任务分解为多个子任务,给学生提供学习的台阶,方便学生循序渐进地学习。
2、教学实施
教学实施阶段,以学生自主学习为主。在每节课开始,教师先把程序演示一遍,揭示学习任务和要求,让学生在教学网页的帮助指导下,自行设计程序,上机实践并调试程序,完成学习任务后将程序上传到教师机。实施阶段,教师必须关注以下两点:
(1)、加强对话
教学活动本身是交往的过程、对话的活动,是师生通过对话在交往与沟通活动中共同创造意义学习的过程。“亲其师,信其道”,师生间只有通过平等的对话,才能增进彼此的感情,使教师真正成为学生学习的组织者、引导者和促进者。另外,师生间、生生间对话的目的在于交流编程思路,互相启发,在思维碰撞的过程中,形成新的思想,培养创新思维能力。
(2)、关注实践
“实践是检验程序的唯一标准”,学生的程序必须通过编译,运行结果正确,才能说明程序的正确性。但学生在程序调试中,往往会碰到各种问题,程序编译出错时,学生对于出错信息的理解有困难,教师可以给出一些常见的出错信息解释和相应的检查修改策略,使学生的自主调试能力逐步提高。
3、教学评价
教学评价的主要功能是提供反馈,以改进学习,促进学生发展。程序设计中的问题向来没有统一的标准答案,学生的设计思路五花八门,程序形式更是多种多样,教学评价不能只看结果,而要分析程序思路,促进学生的思维方式的改进和提高。教师在网站为每个学生开辟个人空间,管理学生作业及作品,方便了教学评价,教师也可把学生程序演示给学生看,共同分析典型程序。
五、结束语
经过一学年的教学实践,学生的学习兴趣和学习责任感日益增强,能够处理的信息量也有显著提高,编制程序的质量也明显得到提升。应该说,总的教学效果得到有效的改善。
当然,在自主学习中,学生还未参与教学目标的设定,这对学生的学习规划能力有较高的要求,目前还主要由教师来制订。
另外,少数学生可能由于长期的接受学习导致学习主动性较差,自我监控能力不强,缺乏探索的精神,有待于教师耐心的引导和帮助,激发其自主学习的意识,形成内在的学习动力,形成良性循环,才能不断发挥学习的主动性和创造性。
开展自主学习,关注学生全面发展,教师要研究的还有很多,提出自己的想法和做法,与各位同行共勉。
[参考文献]
1、钟启泉,崔允漷,张华主编,“《基础教育课程改革纲要(试行)》解读”,华东师范大学出版社
2、蔡日增 主编,《创新原理与方法》,高等教育出版社





