胡承丰
浙江省新高考已经进行了四年,技术科目的蓬勃发展吸引了众多考生。技术课程实践性强,突出动手能力和创新精神的培养,其中“算法与程序设计”模块对学生的抽象思维和逻辑思维能力要求较高。因此,作为技术学科重头戏的“算法与程序设计”模块,往往令技术选考生们望而生畏。
“算法与程序设计”不同于以往的任何一门课程,它代表着一种全新的思维模式,没有任何基础的高中生学习起来有一定难度。如何帮助他们突破程序学习的壁垒,除了常规的习惯养成,还需要具有创新的教学方法与策略。笔者经过长期的探索与实践认为,在程序教学中借助Raptor可视化程序设计环境,从结构算法显性化、方法形式多元化和习惯养成三个维度的教学策略入手,可以帮助技术选考生突破程序学习的难点,高质高效地提升他们的算法与程序设计能力。在程序教学中,使用Raptor辅助教学的具体教学方法与策略,如下图所示。
● 结构算法显性化,突破思维屏障
Raptor软件绘制流程图克服了传统流程图无法直观体验算法运行实现效果的缺陷,将程序结构算法动态、直观、真实地展现在了学生的面前,帮助学生绕过思维的屏障,使他们能边看边思考,真正地理解程序的控制结构和算法思想,更轻松地学习程序设计。在具体教学过程中,笔者通过Raptor帮助学生理解程序的三种基本控制结构和各种基础算法。
1.利用Raptor帮助学生理解程序的三种基本控制结构
理论和实践证明,无论多复杂的算法均可通过顺序、分支和循环这三种基本控制结构构造出来,它们是程序设计中的基本框架。对基本框架的理解,有助于学生对程序结构的整体把握,为后续学习打下坚实的基础。
2.利用Raptor帮助学生理解各种基础算法
如果说语法和结构是程序的肉体和骨架,那么算法就是程序设计的灵魂,算法思想与问题求解的思路是程序设计的重点。Raptor将复杂的算法结构动态展示,让学生了解算法的来龙去脉,理解算法的本质,把握程序设计的精髓。
● 方法形式多元化,激发学习兴趣
程序学习相对其他科目来说,不仅难度大,而且略显枯燥、乏味,如果教师不注重学生学习兴趣的培养,很容易让学生产生畏难情绪,不利于该课程的开展和学生的持续发展。因此,在使用Raptor辅助教学的过程中,笔者根据高中学生的学习特点和身心发展规律,以丰富多彩的教学内容和灵活多样的教学形式,激发和培养学生的学习兴趣。
1.挖空留白,降低学习难度,激发成就感
程序设计初学者普遍存在没思路、不知从何下手的问题,此时如果不加引导,学生无法获得成功的体验,很容易自暴自弃。在最初使用Raptor设计流程图或者遇到有一定难度的项目时,可以适当降低要求,不要求学生完成整个的流程图,对关键部分采用挖空留白的方式,排除一切干扰因素,有效降低学生的认知负荷,达到让学生“会思考”的目的。这样做既达到了教学目标,又能让学生体验成功的乐趣,激发学生的成就感。
2.设置分层任务,满足不同层次学生的需求,促进个性化发展
学生对程序的认知和理解存在着思维的差异性与层次性,在使用Raptor辅助教学的过程中,笔者将问题细化,分级呈现,方便学生自主选择学习任务,进而循序渐进地分层学习。基础任务面向全体学生,而拓展作业难度相对大一些(既是对所讲内容的补充和提高,又是对部分学习水平较高的学生的能力的提升、知识的拓展与引领)。合理的分层任务让所有学生都能得到相应的提高,同时也促进个性化发展。
3.着眼算法多样性和算法优化,体验算法魅力
在使用Raptor的过程中,可以引导、鼓励学生独立思考,提倡算法多样化和算法优化,让学生感受算法特有的思维魅力,进一步内化学习动机,激发学习兴趣。优化算法是一个逐步领悟、自我体验、自我选择的过程,是学生自我完善的过程。学生在展示交流、讨论的过程中,受到启发,产生对自己的算法进行改造的强烈愿望。
4.精选课堂范例,增强趣味性,活跃课堂气氛
在实施教学的过程中增强教学的趣味性,能更好地调动学生的多种感官参与学习,优化教学过程,营造良好的学习氛围,使学生的思维变得活跃、思路变得开阔,是构建高效课堂的重要手段。在使用Raptor辅助教学的过程中,可以通过精选课堂范例,增强课堂趣味性,活跃课堂气氛,让学生在轻松愉快的环境中感受程序学习的乐趣。
● 习惯养成,强化程序思维
学习程序设计的目的不仅仅是让学生学会写几段代码,或掌握那些解决问题的工具,更重要的是培养学生的程序思维,训练解决问题的思维方式,有效提升解决问题的能力。
在程序学习过程中,使用Raptor制作流程图,可以幫助学生养成先理解思考,再规划,最后实施的习惯,其实也就是程序思维的培养,程序思维的培养能让学生在处理问题时效率更高。
“算法与程序设计”是高中生颇为头疼的内容。在教学中可以通过Raptor可视化程序设计环境的辅助,从上述三个维度出发,将结构算法显性化,帮助学生突破思维屏障,通过多元化的方式方法,激发并保持学生的学习兴趣,使之逐步养成良好的程序思维习惯,最终让学生具有良好的程序实现能力,促进学生信息技术核心素养的提升。