基于项目式教学法培养学生的计算思维
刘海玲 魏东
目前,计算思维的发展如火如荼,并渗透到中小学信息计算课堂教学中。那究竟什么是计算思维?如何通过信息技术教学提升学生的计算思维能力?这类问题都值得探讨。项目式教学法是指师生共同合作完成整个项目,开展项目式教学的价值在于让学生能够分析实际问题,并综合运用知识、视野、技能等方面的能力,通过发现问题、分析问题、分解问题、解决问题等一系列过程,最终解决实际问题。这种教学模式,有助于提升学生的计算思维能力,塑造出符合时代需要的创新人才。笔者所在学校的八年级学生在小学期间已完成Scratch编程的学习,同时,他们对智能手机具有浓厚兴趣,以手机APP开发来代替传统的编程训练,更易激发他们在短时间内开发出一些功能强大的应用。基于以上因素,笔者选择App Inventor課程作为培养学生计算思维能力的理想工具,开展实践研究。
对于八年级的学生而言,模仿程序不会很困难,但是如何独立完成一个完整的、具有个性化创新性的程序,是相当困难的,学生需要在特定的情境下,设想要制作的模型,分析模型有哪些需求,如何将需求化繁为简、化整为零。这就需要确定一个主题项目,再把项目分解成几个小任务,逐个击破,进而培养学生的计算思维能力。下面,笔者以“灌篮高手”这一项目为例,谈谈具体的教学实践。
● 巧设情境,确定项目
“知之者不如好之者,好之者不如乐之者”,兴趣是最好的老师。作为课堂教学的组织者,教师要善于引导学生进入课堂,能够根据教学目标巧设情境,尽量运用生活情境创设项目,将生活问题项目化,提高学生自主学习的动机。在本节课教学中,笔者以很多学生都喜欢看的《灌篮高手》动画片导入,拉近师生之间的距离。很多学生都喜欢球类运动,但是都会碰到一个问题,那就是身边没有计分板,要是能在随身携带的手机上安装一个具有计分功能的APP,该有多好。就这样,笔者通过动画引出了本节课的主题项目——制作“灌篮高手”计分器。
● 分析需求,化整为零
笔者抛出主题活动后,抓住关键点,引导学生思考:如果要下载一款手机计分软件,你希望软件具有哪些功能?学生根据实际情况进行分析,学会思考:需要哪些功能?功能通过什么组件实现?核心组件的工作流程是怎样的?界面如何布局?利用算法如何实现。学生在这个环节里对项目进行综合分析,将一个完整的项目分解成若干个小任务,并得其细化为自然语言描述、需求分析(如下页图1)、设计界面、算法设计(如下页图2)、块语言设计等小环节,再逐个击破。通过思维碰撞,学生能够完整、系统地分析,计算思维能力得到提升,为项目的完成奠定了理论基础。
● 分步实施,不断调试
1.设计界面
作品UI界面如何布局?需要创建哪些组件?每个组件实现哪些功能?笔者引导学生巧用平面布局与表格布局等功能规划程序界面,调整各组件属性,使软件界面美观大方。
2.编写程序
如何实现计分功能的算法设计,并根据分值运算、判断、呈现比赛结果,这是教学的重点及难点。笔者提示学生,可利用投篮的类型,显示当前的分值,再根据条件语句实现比赛结果的判定。可这个环境的代码块冗长,因此可以先完成1分球的程序的编写。笔者依靠导学案、微课等资源的支撑,将大问题化解成若干小问题,再利用小代码构建大程序,这种化整为零的教学方法,既能顺利完成既定的教学目标,又能培养学生分析问题、解决实际问题的能力,这对计算思维能力的培养尤为重要。
3.调试完善
完成模块搭建和代码的编写之后,学生利用AI伴侣检测、调试程序,并能及时根据模拟的手机程序运行情况,调整界面或代码块。这个环节着重培养学生善于发现问题、分析问题、解决问题的能力,学生通过独自调整、完善作品,逐渐学会利用计算思维来解决实际问题。
● 拓展思维 改版升级
学生在完成基础功能的模块运行过程中发现,现有的作品只实现了加分与判断结果功能,其实,还有优化升级模块功能,如添加比赛倒计时功能,在比赛开始、结束时增设开场、结束音乐的功能。有的学生利用标签显示比赛时长,再结合计时器与数字滑块显示倒计时;有的学生认为作品不仅可以用于篮球赛,还可以用于其他比赛,用户可以在文本框中自主设定比赛时长(如图3),这样作品会更灵动、更完美。在本环节中,笔者提供了微课资源,激励学有余力的学生在作品中融合个性化创意,进一步优化、迭代、更新。
● 结语
北京大学李晓明教授在2019年12月做的“对计算思维的理解与教学实践”主题报告中,提出计算思维问题求解的教育教学应重在实践,尤其是结合学科交叉的实践。当前,利用App Inventor可视化编程工具与实用的项目相结合的方式,将理论与实践有效融合,在培养学生信息素养方面得到了广泛应用,学生综合应用能力得到了有效的检验,计算思维也日趋受到认可与重视。作为一线教师,要将相关理论与实践相结合,以项目研究为抓手,巧设情境,培养学生学会利用算法与计算思维的方式,提升分析问题、转化问题、分解问题、解决问题的能力。
项目式教学法具有独特的优势,学生通过一个完整的项目研发,能够塑造、延伸创新能力和计算思维,但是,就目前的教学实践而言,仅靠以上方式来提升所有学生的计算思维、创新能力,还是远远不够的。