高中信息技术Python 编程教学微项目学习研究
2022-09-20林温阳
林温阳
(福鼎市第六中学,福建 福鼎 355200)
一、研究背景
《普通高中信息技术课程标准(2017 年版2020 年修订)》(以下简称“新课标”)将计算思维列入核心素养。编程教育、STEAM 教育和人工智能教育成为培养学生计算思维的重要途径(任友群,2019)。苹果之父乔布斯(Steve Jobs,1955~2011)认为每个人都应该学习编程,因为它教会你如何思考。Python 语言是迄今最接近自然语言的一种轻量型高级编程语言,非常适合中学生编程学习使用。国内外研究表明:学习编程有利于知识迁移、认知推理和思维提升;有利于解决问题能力的培养和社交协作行为的习得;有利于塑造提升自我效能感(Self-efficacy),激发学生学习内生驱动力。长期以来,高中信息技术编程教学受内容编排及教学方式的影响,课堂教学重知识轻素养、重线性轻融合,难以让学生的学习走向深处,使用晦涩难懂的文本编程语言解决高度抽象的数学问题来教授编程的现象仍较普遍,这并不适应当前编程教育新形势。为了打破这一现状,笔者尝试开展Python 编程微项目学习的探索实践,为学生提供一套演绎推理、解决问题的思维框架。
二、微项目学习的教学理念
实用主义教育学的代表人物之一克伯屈(W.H.Kilpatrick,1918)最先提出项目的概念与构思。后来神经病学教授巴罗斯(H.S.Barrows,1969)创立了项目式学习理论(Project-based Learning,简称PBL)。它强调“以学为中心”,注重学习者主体的实践性、综合性和参与性。项目式学习教育模式从此风靡全球。目前,全国各地中小学正如火如荼地开展项目式教学探索与尝试。微项目学习(Micro Project-based Learning,简称MPBL)作为一种更加高效灵活且实用的教学方法,它是根据课程标准,将学科教学内容课时化、项目化、情境化,让学生获得具体完整的核心概念和解决问题的关键能力。
传统的问题解决教学模式只注重结果、注重答案,而微项目学习更加注重过程与方法、注重思维与情感。它克服了传统教学跨度大、评价难、参与度低等难题。学生积极自主地学习,跨越不同学科的界限,有机结合理论与实践,注重项目成果的产出……作为项目式学习的简化模型,微项目学习以课时为单位解构学科知识体系,将课程总目标细分到每一堂课。它紧扣学生的学习基点,设计真实的问题情境,将学生置于微项目学习场中,增加学生学习的参与度;采用小组合作学习方式,培养学生的沟通协作能力;有机整合教学内容与微项目任务,培育学生的元认知能力。微项目学习是项目式学习的发展和延伸,主张理论与实践相结合,依托微项目的任务合作和成果反馈,促进学生自主建构,聚焦学生深度学习[1]。
三、微项目学习的理论基础
(一)建构主义理论
皮亚杰(J.Piaget,1896~1980)关于建构主义学习理论的观点阐述是:儿童的认知发展绝非依靠知识传递灌输,而是其自主建构内化的过程。微项目学习以建构主义理论为指导,强调学生自我行为导向学习能力,倡导师生共同决策,关注学生的学习过程。通常情况下,跨学科式项目学习持续时间较长,且对学生综合素质要求高,在有限的一堂课时间内很难有效开展。为了让学生获得知识、锻炼技能、训练思维和提升素养,在常规课堂教学中可以将项目式学习微型化,即将单位课时的核心知识情境化,项目活动清单化,学习任务问题化,持续激活学生的探索欲望。
(二)做中学理论
杜威(J.Dewey,1859~1952)提出“做中学”理论,认为学习是一个“学”和“做”交互迭代的过程,强调教育对象(客体)的主观能动性和社会适应性。鉴于此,在微项目学习活动中应做到:(1)与现实生活相联系。社会实践中蕴藏着丰富的教学资源,微项目学习需要大胆创新,精心提炼教学素材,开发适于课堂应用的微项目,让学习不再单调。(2)以实践活动为载体。在异步交互学习活动中,生活教育是学习的最佳途径之一(陶行知,1918)。微项目学习应为学习者提供充足的活动机会和自由的创作空间,促使其把所学知识用于实践,在实践中体会知识的价值。(3)关注学生的个性多样化发展需要。
(三)活动理论
前苏联著名心理学家维果茨基(L.Vygotsky,1896~1934)与列昂捷夫(A.Leontyev,1903~1979)提出了活动理论(Activity Theory)。他们认为人是在活动中形成个体意识,主张将个体活动纳入社会活动中。学习活动是在真实的生活情境中达成学习目标的核心要素,是教学这一有机整体的基本单位,它符合教育生态学目标价值取向。微项目学习任务群是核心,活动过程、操作方法和交互形式等都是围绕学习任务群而展开。其中,构成微项目学习活动的基本要素有学习目标、活动主题、步骤方法、活动资源、过程监管、成果评价等。
四、微项目学习的教学模式
组织实施微项目学习,首先,结合目标分析、学情分析和内容分析,确定微项目主题和学习目标,设计评价量规;其次,设置驱动性项目任务群和问题串,创设真实有效的教学情境;再次,讲解微项目学习中具体涉及的基础知识和基本方法,并提供支撑学习的脚手架;最后,针对微项目学习的过程和结果,依据评价量规进行点评、总结与分享。下面,以Python 编程教学微项目学习活动设计为例详加说明(如表1 所示)
表1 Python 编程教学微项目学习活动案例
(一)结合学情,选定微项目
学习的本质是解决问题,并在不断地解决问题中训练思维进阶。组织实施微项目学习时,应做好以下工作:(1)设定微项目学习目标。在学科大概念统领下,全面剖析教材知识体系,整合教学内容,确定单元和课时的核心知识和关键能力,这是微项目设计的出发点和归宿点。(2)分层设计微项目任务。依据课程标准、教材要求和学情分析,教师选择提供一组多个基于真实问题、适宜合作探究、契合学习主题的微项目任务,支持学生根据自己的兴趣爱好选取。(3)确定驱动性问题串。提出一些富有挑战性又贴近生活实际的真实问题,驱动学生在微项目活动中不断探究,反复修缮作品,让学生的学习更加积极主动、更有意义。(4)提供学习资源和认知工具,让学生事先掌握常量、变量、数据类型、运算符、表达式、函数和三种程序设计结构等Python 语言基础知识,确保每个小组选定的微项目符合预设的学习目标,并能顺利完成当堂学习任务。
(二)围绕目标制定微方案
在微项目确定之后,教师根据问题实际、知识逻辑和学生认知等,对微项目进行整体规划,确定微项目所涉及的核心知识和关键能力。前者要求微项目涉及内容要覆盖单元课时知识点,为学生提供一系列多维度学习活动体验。例如,选择单分支、双分支、多分支或嵌套分支结构实现条件判断;选择for 语句、while 语句实现循环控制;以及在循环中break、continue、exit、pass 的区别等。后者要确保微项目的能力要求符合微项目学习总体框架和基本思路,能整合微项目涉及的基本问题,激发学生学习兴趣,培养学生的批判性、创造性高阶思维[2]。例如,编写Python 程序模拟掷骰子,将2 粒骰子连续抛掷50 次,记录出现的点数及其频次。为此设计微项目学习任务群,如表2 所示。
表2 掷骰子微项目学习任务群设计
(三)分组合作,实施微探究
在微项目学习中,学生以小组为单位,在教师组织下开展自主合作探究学习。他们在组长的带领下,清楚自己所扮演的角色、承担的任务以及即将完成的任务;对照评价量规,积极参与深度学习;与同伴一道进行任务分解、责任分工和协同互助,共同完成微项目学习成果的生成与迭代。期间,教师可以向学生讲解示范基础知识与基本技能,或者借助Toontalk、Blockly 等可视化编程工具将计算思维外显化表征,或者应用跨学科融合设计发展计算思维,或者采用小组协同编程方式,进行团队角色合理分工[3]。但是,教师不宜过多地参与学生学习新知,应当促进学生投入“定向(Own it)、内化(Internalize it)、强化(Consolidate it)、掌握(Learn it)、分享(Share it)”的生本学习设计框架(李英蓓,2017)。课堂组织实施微项目学习,为了让课堂教学更加精彩,需要多重发力:(1)解读课标、挖掘教材是关键;(2)更新理念、项目选择是基础;(3)问题解决、思维创新是重点;(4)有序组织、学法指导是保障;(5)学习评价、激励发展是根本。如前述设计开发“模拟掷骰子”Python编程微项目,目标是创建模拟掷骰子的Python 程序;问题是如何产生随机数;任务是当接收用户键入字符时,使用random 模块生成一个1~6 之间的随机数。Python 部分源码如图1 所示。
图1 模拟掷骰子Python 部分源码
(四)梳理总结,分享微感悟
精彩的课堂总结可以帮助学生梳理归纳所学的理论和技术,建构联系紧密、结构清晰的知识体系,发现知识点的内在联系和规律。核心素养视角下的微项目学习是让学生通过对富有挑战性任务的持续探究,对核心知识的复盘、再思考和再建构,完成微项目学习任务和作品的制作与展示。前述学生完成了“模拟掷骰子”Python 代码编写,在组内、组间、全班分享自己在微项目学习活动中的体会感受,交流自己在编写程序代码中遇到比较复杂的难以理解的问题,如:函数模型、逻辑结构、算法设计等,而后又是如何尝试做到细化分解难题、各个突破,最终解决问题的。这些基于问题解决的知识应用统整都是有益的学习经验分享。
(五)拓展延伸,成果微展评
学习成果展评是微项目学习中不可或缺的重要环节。它可以让学生更加积极主动地投入学习,还可以让学生从学习新知走向协同创新之路。例如,在“模拟掷骰子”的Python 编程教学中,利用了微项目学习教学法,学生以小组形式进行了初步的程序编写,课结束时让学生将自身作品做班级展示,并对项目成品进行自评与互评。值得一提的是,在微项目学习活动之初,就应该事先设计好学习成果形式和学习评价量规。同时要注意突破学科本位的藩篱,让学生的学习走向深入。
五、结语
综上所述,高中信息技术课堂实施微项目学习,需要以有序规划和执行微项目学习步骤,让学生找到适合自己的知识基础和发展需求的微项目为依托。同时,教师要施予必要的学法指导,让学生顺利进行理论与实践学习。最后,教师需要组织学生进行微项目学习成果展示和评价,让学生进行复盘、讨论和修缮,增强学生的成就感和主动性,提高课堂教学质量。开展微项目学习活动,沉浸式编程体验让学生的分解抽象、模式识别和算法描述等编程思维品质得到了显著提升[4]。微项目学习体现出明显优势:(1)依标据本遴选的情境素材承载着提高学生认知和训练学生思维的功能。(2)任务群驱动,问题串主线贯穿课堂有意义的学习全过程。(3)建构模型,培养综合认知能力,训练学生高阶思维。(4)结合实践设计的微项目紧扣核心知识,符合学生认知水平。微项目学习在中小学课堂得到了较广泛的应用,但也出现项目内容浅层零散、忽略育人目标等诸多问题。期待后续以人工智能教育应用研究为契机,进一步探索基于微项目学习的学生计算思维培养路径。