高中“算法与程序实现”单元项目式学习实践与思考
2023-12-21王丹北京市通州区潞河中学
王丹 北京市通州区潞河中学
陈宝杰 北京市汇文实验中学
《普通高中信息技术课程标准(2017年版)》倡导基于真实情境解决问题的项目式学习方式。基于项目的学习是指学生在教师引导下发现问题,以解决问题为导向开展方案设计、新知学习、实践探索,具有创新特质的学习活动。“算法与程序实现”单元的教学目标之一正是帮助学生形成运用计算机解决问题这一关键能力。那么,如何有效地运用项目式学习法来开展高中“算法与程序实现”单元的教学呢?下面,笔者以“开发飞花令比赛程序”为例,详细阐述如何将项目式学习与“算法与程序实现”单元进行有效整合的方法。
●“算法与程序实现”单元实施项目式学习的方法
在利用计算机编程的方式进行问题求解时,通常需要经历提出问题、分析问题、设计方案、编程调试和解决问题环节。其中,分析问题主要是明确问题的目标和条件等,将问题进行抽象,通过建模的方式界定问题,用数学模型、文字、表格或图形等不同的形式描述问题。设计方案一般包括根据需求分析进行问题功能分解和算法设计。[1]
项目式学习流程通常包括项目启动与准备、项目规划与设计、项目实施与学习、项目交流与评价。项目是以制作一件具体的、有实际应用价值的作品为目的的学习任务。项目启动与准备阶段需要教师提前确定项目方案,学生确定分组分工,师生协商评价标准。项目规划与设计阶段需要学生确定项目主题,规划设计成果方案。项目实施与学习阶段是项目学习的重要阶段,学生大部分的知识习得和技巧掌握都在这个过程中完成,同时在该阶段学生还要应用所学知识和技能完成最终作品。项目交流与评价则是对项目成果和学习过程进行评价。
经过对比和思考,笔者发现项目式学习流程和用计算机解决问题的过程存在一定的对应关系。在对“算法与程序实现”单元实施项目式学习时可以采用设计单元学习主副线的方式来进行。用计算机解决问题的过程是编程学习的基础知识之一,可以作为单元学习的知识主线,而项目式学习可以作为单元学习的方法副线。主线为明线,副线为暗线,双线并行,共同推进学习进程。
在“开发飞花令比赛程序”教学案例中,项目式学习中的“项目规划与设计”对应“分析问题和分解功能”,“项目实施与学习”对应“设计算法和编程调试”等,具体设计如下图所示。
●“算法与程序实现”单元实施项目式学习的实践
1.项目启动与准备阶段:提出问题
考虑到项目的选择会影响学生的参与度和积极性,教师选取了贴近学生的学习和生活经验,能引起学生的探究兴趣,具有一定难度和创新空间的半开放主题“如何开发飞花令比赛程序”。此外,还组织学生进行了科学分组并填写小组分工表(如表1),教师带领学生明确项目任务及成果形式,讨论并初步确立小组程序的评价标准。
表1 小组分工表
2.项目规划与设计阶段:分析问题,分解功能
计划是项目式学习开展的指向标,影响着项目的推进与成功,因此,项目式学习需要提前制订好计划。在本案例中,学生需要根据阶段1中教师提出的“开发飞花令比赛程序”主题,讨论确定小组的项目主题;然后基于本组的项目主题进行具体的问题分析,如可以从已知条件、求解目标、已知和未知的关系三方面来分析问题;接着利用“小步子、分步骤”的思想,将复杂的问题分解成一个个具有联系的子问题,再逐个解决,这样有利于降低问题解决的难度,增强学生解决问题的自信心。[2]
在本阶段,教师先采取范例教学法,引导学生经历分析问题和分解功能的具体过程。然后,采取小组学习和组内头脑风暴等方式,组织学生在项目活动记录单的指引下完成计划,如小组程序方案,主要解决核心问题下的关键问题一“如何设计小组程序方案”,具体如下页表2所示。
表2 各小组的程序方案汇总表
3.项目实施与学习阶段:设计算法,调试运行
项目实施与学习阶段是取得项目成果的重要阶段,通常包括活动探究和制作作品。活动探究是学生在解决问题的过程中获取新知识的过程。制作作品是运用已有的知识技能完成作品的制作,能反映出学生在项目式学习中获得的知识和掌握的技能。本案例将活动探究和制作作品相融合,边探究边制作作品。
首先,教师采取范例教学法,引导学生通过完成算法流程图拼图练习来设计算法,再通过对比分析不同的流程图,学会优化算法的方法。其次,教师引导学生根据作品评价量规,综合应用顺序、选择、循环三种程序结构及自定义函数等旧知并学习二维列表等新知,编程实现算法,完成范例模仿练习。再次,学生通过小组合作和自主探究等学习方式,根据阶段1中讨论确立的小组程序评价标准,利用项目活动记录单、学习网站等学习资源,动手编写并不断调试改进小组程序,最终解决核心问题下的两个关键问题“如何设计并优化算法”及“如何编程实现小组程序功能”。
4.项目交流与评价阶段:解决问题
项目交流与评价阶段包括成果交流和活动评价。成果交流是对项目学习整个学习过程的总结、体会或经验的交流、作品的展示等。活动评价是对项目学习过程进行反思的有效途径,既要对项目成果进行总结性评价,又要对项目学习过程进行形成性评价,还应实行自我评价、组内和组间评价,保证评价的多样性。
在本案例中,教师先组织指导各小组梳理自己的项目学习情况。例如,小组成员一起讨论小组程序的完成情况:已经实现了哪些功能?还有哪些功能没实现?设计亮点是什么?后续打算对程序做什么改进?此外,请每名组员简述对项目的学习感想。学生可以结合该项目程序的开发经验,思考继续开发什么程序,该程序主要实现什么功能。在讨论过程中,组长负责将讨论结果整理并填入“项目活动记录单”。接着,各小组一起交流学习过程和学习感想,展示程序作品。全体学生利用评价表,主要从技术性、趣味性、创新性、友好性四个方面对小组程序进行评价,再结合演讲表现、合作情况等对各组进行综合评价,最终解决核心问题下的关键问题四“如何评价学习成果”。
●“算法与程序实现”单元实施项目式学习的思考
项目式学习是对复杂、真实问题的探究过程,也是精心设计项目作品、规划和实施项目任务的过程。在开展“算法与程序设计”的教学中,教师要着重注意以下几点,以保证项目式学习的顺利开展。
1.创设真实的问题情境
项目主题应该贴近学生的学习生活。“开发飞花令比赛程序”就是一个基于真实问题的综合实践项目,旨在将技术与文化融合,最终形成的项目作品具有实用价值,能真正辅助学生学习古诗词,学生的学习兴趣和成就感都很高。
2.重视合作学习
项目式学习的任务通常具有较强的综合性,更适合由小组成员通力合作完成,因此适合采用小组学习模式。为避免小组学习流于形式,必须做好科学分组及分工,在开展“开发飞花令比赛程序”项目教学时,教师设计了组长、设计总监、技术总监、测试总监、发言人这五个职务,尽量发挥每个组员的优势。
3.整合数字化资源
项目式学习通常围绕问题解决开展,不一定按照传统的知识体系顺序学习。在学习的过程中容易出现知识点多且散而杂的问题,教师可以通过自主开发学习网站等方式整合文字、图片、视频等不同形式的学习资源,尽量满足不同学习方式的学生需求,为其个性化发展及合作学习奠定基础。
4.进行持续性评价
项目式学习通常历时较长,需要定期交流评价。“开发飞花令比赛程序”这个项目在开展过程中,在定方案、创作品等各个阶段教师都会组织学生展示交流,并在课后及时进行量化评价。在评价时,不仅要根据方案评价表和小组程序评价标准对各个小组作出评价,还要依据范例学习效果评价表、范例练习评价标准、学习表现评价表,从合作学习、规划设计、范例练习及小组程序四个方面对每位学生进行综合评价,及时掌握学生的学习情况并动态调整教学。
●结语
项目式学习具备很多优点,但任何一种教学方法都不会十全十美。作为信息技术教师,需要学习并理解多种教学方法,并根据实际情况将它们有机结合在一起,通过多实践、勤反思、善总结的循环往复过程,最终达到提升教学质量的目的。