项目化学习的编程教学实践
——以“用选择结构做出判断”为例

2022-03-02 15:03:45山东省威海市临港经济技术开发区蔄山中学王米篧
学苑教育 2022年20期
关键词:本课编程垃圾

山东省威海市临港经济技术开发区蔄山中学 王米篧

项目化学习(Project-Based Learning)是一种指向高阶思维能力的学习模式,它以项目为主线,以教师为引导,强调学生的主体性,在项目中渗透学科的核心知识和概念,通过真实的情境设定,教师引导学生对与情境有关的驱动性问题进行持续深入的探索,创造性地解决问题,并将习得的知识和能力应用到现实生活中,实现知识的再建构,促进核心素养的形成。

一、项目化学习的意义

《基础教育课程改革纲要(试行)》中将初中信息技术归为综合实践活动课程,强调学生通过实践等多种方式,增强探究和创新意识,提高综合素质和能力,这对信息技术课堂教学提出了更高的要求。初中信息技术的编程学习是学生发展编程思维和能力的重要阶段,经过小学对Scratch 图形化编程的学习,学生已具有了一定的编程思维,但在初中阶段,学生需要学习Python 语言来编写代码并设计程序,学习难度大幅度提升,加上编程本身比较枯燥,学生的学习兴趣低下。传统的教学模式很难提高学生对编程的兴趣,而项目化学习法则为编程教学注入了新的活力。

在初中编程教学中采用项目化学习法,把课堂教学内容分成一个个项目,学生在教师的引导下,在项目活动中自主探究、协作交流,在实际问题的解决中学习编程知识,全面提高综合能力。基于真实情境的项目,主题设置贴近学生的生活实际,能够吸引学生的注意力;自主探索结合小组协作的项目活动激发了学生的主动性,提高了学生在课堂上的参与度;公开的成果展示增强了学生的学习体验,进一步提高了学生对编程的兴趣。项目化学习具有的真实情境、学生主体、小组合作、多角度思维等方面的特点充分地调动了学生的主动性、积极性和创造性,并在丰富的项目活动中增强了学生将编程理论和实际操作相结合的能力,进一步提高了核心素养。基于此,本文就以“用选择结构做出判断”一课为例(以下简称“课例”),谈一谈项目化学习在初中编程教学中的具体实践。

二、初中编程教学的项目化学习实践

“用选择结构做出判断”是泰山出版社《信息技术》第1 册第二单元的内容,主要让学生掌握选择结构的基本语句和使用方法。这一单元通过学习Python 编程,重点探究如何用计算机解决问题,培养学生的计算思维和能力,需要理论和实践相结合。在本课知识性内容的基础上,结合时下的热点话题垃圾分类,设定了“用Python 设计垃圾分类程序”的项目主题,让学生能学以致用,运用选择结构解决生活中的实际问题。

1.巧设情境,确定项目。

创建真实的情境是项目化学习的重要特征。设置贴近学生生活的情境,让学生围绕情境问题,开展多学科、跨领域的实践探究活动,既符合中学生的年龄特点和兴趣,激发学生的认知热情,又能让学生更好地理解知识与情境之间的关系,有利于学生知识技能的建构和在实践中的迁移。情境的设置要遵循以下原则:①要包含能引发学生思考的驱动性问题;②情境需要结合学生的生活实际,结合学生已有的认知水平。

例如,在本项目中,课前教师先录制了一段“垃圾分类知多少”的校园采访,随机调查学生关于垃圾分类知识的积累,调查显示大部分同学有一定的垃圾分类知识,但很难做到全部正确分类。在课堂上教师首先播放了这一段视频,然后提出问题:生活中我们常会出现不清楚垃圾类别的问题,怎样可以准确地对垃圾分类?学生的回答很多,如加强宣传教育、在包装上标明垃圾种类等,只要是合理的答案都应给予肯定,并请学生进一步思考:是否可以运用所学,设计出一个指导垃圾分类的程序?这样,就引出了本节课的项目主题——用Python 设计垃圾分类程序。

2.启发思考,分析项目。

由于每个学生在学习能力、认知水平、兴趣性格等方面存在差异,他们对项目主题的理解也不尽相同,且编程对于初中学生来说仍有较大的难度,仅依靠学生的独立思考很难解决问题。因此教师需要为学生的探索指引方向,引导学生思考问题,分析项目,将一个完整的大项目分解成若干个层层递进的小项目、小问题,让学生由易到难,逐步分析解决问题。教师还应在课前根据学生的学力划分小组,将学有余力和学习困难的学生分为一组,让学生在交流合作中发挥各自的长处。

如在本课中,抛出项目主题后,学生还十分茫然,此时教师先引导学生思考:生活中我们是怎么对垃圾进行分类的?垃圾分类有什么标准?由于大多数学生已具备一定的垃圾分类知识,他们能归纳出“根据垃圾的特点进行判断”的本质,并类推出程序的分类过程,抽象出分类模型。接着展示以可回收垃圾分类为例的流程图,让学生能够从用自然语言描述分类过程,转化为用流程图描述解决该问题的算法,顺势引出选择结构的概念。

接着教师设计了一个“大家来找茬”的游戏,组织学生观察可回收垃圾和有害垃圾的两个单分支分类程序,其中一个程序是正确的,另一个程序中故意设置了几处错误。借助导学小助手,协同小组合作,学生通过对比发现并修改错误,在观察探究中学习运算符和缩进格式,掌握基本的if 语句的使用。随后教师进行小结,强调程序编写中代码的拼写和格式的重要性,并为学生讲解if 语句的基本使用方法,使学生能进一步将流程图和代码相对应,为之后的实践活动提供学习支架。

3.自主协作,实施项目。

项目的实施是项目化学习的中心环节,是解决重点、突破难点的关键环节。项目化学习以学生为主体,在实施环节,教师要改变以往全盘传授的教学模式,要为学生留有充分的自主探索的空间,让他们自己去探讨、摸索、交流,在自主探究和小组合作中习得知识和技能,进而解决问题。同时,教师也要为学生适时地提供指导以及提供资源、工具的支持,帮助学生完成实践活动。

在本课例中,项目实施阶段设计了两个实践探究活动,层层递进地实现了垃圾分类程序的设计。教师先提出问题:在可回收垃圾的分类程序中,符合判断条件的执行输出,那不符合条件的如何实现输出?提出改进分类程序的需要,自然过渡到第一个实践活动,引导学生自主探究双分支结构,使用if…else 语句完成垃圾二分类程序。接着活动探究二在活动一的基础上,要求进一步补充、完善程序,设计出符合本地需要的垃圾四分类程序(即将垃圾分成可回收垃圾、有害垃圾、厨余垃圾、其他垃圾这四类)。这个程序需要用到较复杂的多分支选择结构,为了支持学生更好地完成项目,教师为学生提供了微课视频、学历案和电子导学助手等多种学习资源,学生自主学习多分支结构中if...elif...else 语句的基本结构和使用方法,完成最终的垃圾分类程序。学习能力稍弱的学生可在教师指导、同伴互助下完成项目。每个探究活动都为学生提供了程序的半成品,学生可以通过填空的方式分析、补全核心代码,既降低了编写程序的难度,又能使学生掌握关键知识点,体会程序设计的乐趣和意义。在代码补充完成后,学生还需要根据运行情况,及时调试程序。学生在补充代码、调试程序、解决问题的过程中,逐步发展计算思维,提高利用计算机解决实际问题的能力。

4.交流评价,展示项目。

项目化学习最终会产生公开的项目成果,并在群体中进行交流。在公开的成果展示中,各小组交流在实践过程中遇到的问题、解决方案及收获。项目作品的展示不仅让学生的学习更有动力,获得成就感,还能促使学生回顾自己的项目历程,进行反思。对照他人的成果,学生可能会再次发现问题,对自己的作品进行补充完善。对项目化学习的评价除了总结性的成果评价,还应有过程性评价。评价内容可以包含学生的学习态度、项目的参与度、知识掌握度、小组合作情况、项目作品等等,通过学生自评互评,教师点评相结合的方式多方面进行综合评价。项目化学习中的评价是多元且丰富的,多元主体的参与以及总结性和过程性相结合的评价策略能更客观地评价学生的表现,促使学生反思自己的学习过程,鼓励学生真正地投入学习中。

本节课例中,学生在完成项目后,先在自己的项目小组内演示交流程序,接着组内试开展情境模拟,组员分工配合模拟程序的实际应用。组内交流过后,小组可以在班级内演示程序并配合解说,在公开的成果展示中获得积极的情感体验。其他小组可以提出意见和交流评价,然后学生登录智慧教育平台上传本课项目作品,并填写《项目学习评价表》,对本节课上自己和组员的表现进行实时在线评价。学生对自己和同伴的实践过程和项目成果的评价,也能提高学生的反思能力。

5.迁移拓展,总结项目。

在项目的总结阶段,学生通过总结、归纳,借助思维导图等工具梳理本课知识框架,将本课所学建构到自己的知识体系中,为后续的项目化学习积累有效的经验,从总结反思中获得进步。项目化学习的真实性要求解决问题的思路和方法在现实生活中是可以迁移的,因此,本阶段应启发学生充分思考,全面地反思整个项目的过程,如本项目的问题、内容、成果与收获、不足之处与优化的措施,并将本项目的知识延伸到生活的其他问题中去,发展学生的计算思维,提升利用计算机解决实际问题的能力。

在课例的总结阶段,教师帮助学生利用思维导图构建本课的知识框架,然后引导学生思考:生活中我们面临着哪些选择的情境?哪些问题可以用选择结构程序去解决?有学生提出道路上常见的“红灯停,绿灯行”就是选择的例子,还有学生提出根据目的地不同而乘坐不同路线的公交车也是选择,学生们讨论过后,教师提出一个生活实例——登录网站需要输入用户名密码,用户名和密码正确才能成功登录,并留给学生“网站登录.py”的程序,激励学有余力的学生在课后继续探讨完成。

三、项目化学习的编程教学实践反思

首先,项目化学习给予了学生很大的自主权,大部分学生能很好地进行自主探究,但少部分学生的自学能力较差,学习上存在一定困难。因此,项目小组在学习中显得尤为重要。依靠同学间的合作交流和教师的引导,学生可以在合作学习中提高课堂的效率。教师应在课前提前分好项目小组,以4-6 人为宜,根据能力的高低对学生进行合适的搭配,并协助学生选出小组长,由小组长统筹组内工作。在实施项目的过程中,由组长负责安排组内的分工并督促每位组员积极地参与到项目中,充分发挥自身的优势,培养合作意识,让每个学生都能有参与感、获得感。

其次,项目化学习非常注重高阶认知策略和低阶认知策略的整合。如果在学习过程中全部使用低阶认知策略,那么学生的学习就会仅仅停留在获取信息、记忆、理解的层面上,缺少更高层次的思考;如果只有高阶认知策略而缺少低阶认知策略,那么没有大量基础知识和技能支撑的学习就仿若空中楼阁,项目化学习也无法深入。为此,在项目化学习的设计过程中,应注重低阶认知策略和高阶认知策略的搭配。本课例中的项目化学习主要使用的是问题解决的高阶认知策略。从发现问题开始,然后分析问题,学习相关的知识,共同讨论、设计解决方案,最后在不断的测试中解决问题,学生在此过程中既用到了记忆、理解、比较、分析等低阶认知策略,又促进了问题解决的高阶认知形成,在此过程中整合低阶认知和高阶认知策略,提升多种认知能力。

此外,项目化学习的设计对教师来说意味着新的挑战。项目化学习超越了传统学科教学中对零散知识点的学习和理解,从更高的层次出发,要求在不同的情境中思考知识之间的关联和应用,进行灵活的判断。真实的情境中包含的问题往往较为复杂,除了本学科的知识外,还会涉及到其他学科的内容。比如在本课的“设计垃圾分类程序”中,涉及到垃圾分类的知识,属于环境教育的内容,而最终的项目成果实际也体现了多个学科的共同作用。这些都要求教师具备系统思维,从高层次出发设计项目情境,建立起知识与真实生活、多种情境的联系,具备跨学科的学习设计能力,并不断丰富、拓宽自己的知识网络。

实践证明,项目化学习在信息技术编程教学上有其独特的优势。在项目化学习中,学生通过确定项目、分析项目、实施项目、展示项目、总结项目这样一个完整的项目学习过程,在问题情境中收集、分析信息,在实践和协作中探索获取新知,促进了计算思维的发展,提升了多种认知能力,提高了解决实际问题的能力,真正做到了学以致用。同时,在初中编程教学中开展项目化学习也要求教师不断提高专业水平,充实知识储备,结合具体的教学内容巧妙设计出紧贴生活实际的项目,让学生学在编程、乐在编程,提高学生的核心素养。

猜你喜欢
本课编程垃圾
垃圾去哪了
编程,是一种态度
少先队活动(2021年2期)2021-03-29 05:41:04
元征X-431实测:奔驰发动机编程
编程小能手
学生天地(2020年17期)2020-08-25 09:28:48
Let’s play football.(部级优课)
人教版八年级物理下册《液体的压强》教学设计
成长(2020年3期)2020-05-27 03:45:44
纺织机上诞生的编程
那一双“分拣垃圾”的手
当代陕西(2019年24期)2020-01-18 09:14:46
倒垃圾
倒垃圾