第三步转译:从逻辑图示到代码 实现

2023-08-30 10:54陈晓
中国信息技术教育 2023年16期

陈晓

摘要:本文通过案例,主要探讨了三步转译编程教学法中的第三步转译——从逻辑图示到代码实现过程中,教师可以依据不同教学重难点、不同软硬件结合的编程教学内容等,采用不同的处理方式完成这一步转译,从而实现培养学生解决问题能力的目标。

关键词:三步转译;逻辑图示;代码实现

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2023)16-0015-03

三步轉译编程教学法中的第三步转译—从逻辑图示到代码实现,并非颠覆以往的编程教学方法,而是在原来的基础之上,通过利用第二步转译的产物—逻辑图示,帮助学生梳理出代码实现过程中会利用到的数据和算法,形成程序,从而实现培养学生问题解决的能力,形成编程整体概念。

“生活中的各种灯”项目实践

1.项目简介

面向对象:七年级(上)的学生。

总课时:3课时。

学生情况:已有学习信息社会与系统及图形化编程基础,但大多仅涉足纯软件编程如制作动画故事、互动小游戏等,缺少机会将编制的程序用于解决现实世界问题。

项目概述:本项目是对新课标中“过程与控制”模块的教学尝试,旨在在探究中培养学生解决生活实际问题的能力。项目内容由点亮LED灯、控制LED灯以及改进生活中的灯组成,共3课时。主要目标是:认识常见的传感器与执行器;了解常见的“输入—计算—输出”的计算模式,尝试通过编程还原;细心发现生活需求,大胆设计并通过编程验证。

编程成果形式:借助开源硬件的智能机械装置搭建。

2.项目教学过程

(1)进入情境,思考问题

教师结合硬件演示点亮一盏LED灯,引发学生兴趣,并引出“输入—计算—输出”的计算模式;鼓励学生头脑风暴,发现生活中各式各样的灯的控制系统,如声光控灯、烟雾报警灯、红绿灯、小夜灯等;尝试利用程序控制还原生活中的各种灯。以声光控灯为例,鼓励以小组合作形式尝试在导学单上绘制出其“输入—计算—输出”的计算模式,并尝试用自然语言分享其控制过程。

(2)协作探究,分析问题

深入分析声光控灯中的控制过程。教师给出范例,学生尝试模仿顺序、分支、循环结构的逻辑图示范例,在导学单上将声光控灯的控制过程通过图示简要绘制出来。

(3)分析数据,构建方案

讨论光敏传感器是如何判断白天或黑夜的。利用编程软件中的仿真工具,呈现不同光照强度下光敏传感器检测到的数值变化,在探究中通过对连续量阈值的判断,转换为系统的开关量。借助学习单,还原声光控灯系统中的过程与控制(如图1)。此环节是帮助学生从逻辑图示转化到功能代码表达的重要一步—将逻辑图示先转化为可计算的功能实现框图。

(4)实践体验,验证方案

连接硬件,在对应的编程软件中尝试还原声光控灯的程序代码,即根据学习单中的功能实现框图提示,找到相应图形化代码块。教师可给予学生如图2所示的提示,引导其编写程序控制硬件LED灯的亮灭(如图3)。在此过程中,学生将不断对照前两次转译成果作为编程目标,调整修改程序,直至完成代码实现效果。

(5)优化方案,拓展延伸

设想生活中各种灯的控制方式,及其有待改进之处,如生活中使用小夜灯时的不便之处,绘制出对应的逻辑图示,利用第3课时编程验证。学生将在此过程中独立完成一次从生活到问题、从问题到逻辑、从逻辑到代码的编程体验。

3.案例思考

本项目呈现了三步转译编程教学法在结合硬件的编程教学中的实践运用。笔者发现,在第三步转译中,前一步产物逻辑图示是由自然语言描述的控制系统,学生无法直接转换成相应的积木块。在这个过程中,还需要带领学生建立现实生活中的“白天”与计算机语言积木块之间的桥梁,此处的关键点在于转译“白天”为“判断光敏传感器检测到的值大于阈值”,从而再对应到编程软件中的代码实现。因此,相较于纯软件的编程,结合硬件的编程在第三步转译中需要根据逻辑框图,先转换为功能实现框图,再建立功能实现框图与代码块之间的关系,从而完成代码编写,形成程序。

经验总结与思考

1.根据不同的教学重难点,提供不同程度的教学支架

在编程教学中,当教学重难点较多放在代码实现上时,学生一般可以在逻辑图示的指引下,模仿老师或独立开始编程;若教学重难点放在概念教学、需求分析上,可以在学生编程之前给予一定程度的教学支架,如建立逻辑图示与代码块之间的关系,帮助学生更顺利地编写程序,也可根据需要提供半成品程序,带领学生观察、组织、修改代码,以实现编程验证的教学目的。

2.根据不同软硬件结合的编程需要,采用不同的转译过程

在教学过程中,学生通常需要利用编程来还原生活场景,验证生活问题或解决生活问题,因其取决于教学内容的开放程度、学校的软硬件条件完备程度等(这是一个较为复杂的环节),所以第三步转译需要根据实际情况讨论。如纯软件编程的动画制作与借助硬件搭建的智能化设备编程,后者的转译过程不仅需要从逻辑图示转译到代码实现,还需要先从逻辑框图转译到功能实现框图,再建立功能实现框图与代码块之间的关系,以帮助学生更好地使用编程还原生活场景。

3.第三步转译不是三步转译法的结束

在三步转译编程教学中,学生往往是在后期才进入打开软件编写程序的环节,但这不代表三步转译的结束。在算法实现、评估与优化的过程中,学生需要阶段性地回顾确认代码实现是否实现了第一步实境体验提出的需求,以此评价学习成效。而且,本项目为学习内容开放度较低的案例,但在项目学习中,往往有更高开放度的学习要求,如在原程序上适当增加个性化功能,这时候学生需要重新回到第一步考虑实境体验中产生的更多需求,再进行第二轮的三步转译,在学习过程中,如此循环往复地实践运用三步转译法,最终才能实现解决问题能力的提升。