“三步转译编程教学法”专题 | 初中三步转译编程教学法框架构想 “三步转译编程教学法”专题 | 初中三步转译编程教学法框架构想
admin
2023-08-29 10:46:05
0

“身边的算法”是信息科技课程的核心内容。

在从计算机算法到生活算法的学习过程中,一方面要遵循学生认知规律,从简单到复杂,经历命令/图标—程序—算法的学习。

这是计算机角度的从“学”到“用”。

另一方面要体现信息科技的独特课程价值,通过“用”体现信息科技作用,“以”信息科技思维方式去解决生活问题。

这是面向生活问题的从“用”到“以”。

“三步转译编程教学法”专题将通过系列文章,尝试解释问题解决一般方法在信息科技领域内的映射,希望在实践中,从“学”开始,再通过“用”加以体现,最终实现“以”的目标,把深刻落实课标转化成为实际行动。


20多年来,不论哪个版本的中小学信息科技课程标准,其主要内容一直是学习运用ICT技术手段帮助学习活动的开展、学习程序的编制等,或可称之为信息科技课程的主要学习方向。

信息科技课程在建设与实施过程中,一直强调发展学生的核心素养、发展学生的计算思维等内容,但是,素养、思维等词汇抽象层级比较高,要落实到教学中需要数次层级转换才能够转化为具体的内容和行为指标。本文将聚焦程序编制方向来讨论学与教的实践方法。

泰勒在讨论课程目标和学习内容厘定方法的时候指出,对社会生活的研究、对学科的研究和对学习者的研究是课程目标和学习内容的三大来源;这些研究的结果经教育哲学和认知心理两把筛子,基本可以梳理出可实现的课程学习目标和学习内容。本文将参照泰勒的建议来思考初中编程学习目标和学习内容。

问题与思考

1.对社会生活变化的认识

当前,我国社会生产正处在产业升级转型、提升核心竞争力的过程中,产业竞争力的核心是高素养的人才与“从零到一”的原创能力。各行业在数字化转型中对IT业与其他行业的相互理解、深度融合提出了明确的需求。

但是,IT业过度细致的分工,如有大批从事简单编写代码的从业人员,不仅影响了企业的核心竞争力,而且导致在面对与其他行业深度融合的需求时,缺乏需求确认及技术转述的人才。

2.对信息科技领域的透视

信息科技与其他学科之间不一定有清晰的界线,却已经是稳定的领域,开放性、综合性十分明显。信息科技领域就其根本技术手段与方法来说,“程序与编程”是明确的回答。信息科技产品开发过程一般是从用户需求了解与辨析开始,经过模型构建与算法选择,最后编写代码形成程序系统,以实现预设功能。

面对IT行业与其他行业的相互理解与融合,软件开发行业也提出了“领域驱动设计”模式:在大多数软件项目中,主要的焦点应该是领域与领域逻辑;软件的核心是其为用户解决领域相关问题的能力。

3.对学生学习规律的回顾

少年儿童的认知发展呈现着由外而内、由表及里、从具象到抽象的过程(如图1)。心理学家安德森则认为计算机语言源于自然语言、区别于自然语言,抽象度更高,是一类很难配入的特殊语言。


图1 皮亚杰认知发展阶段论

计算机程序的发源地是英语作为母语的地区,程序编制从某种角度来说也可以看成是英语的“自然语言”写作。华盛顿大学一项研究表明,就编程能力的影响因子来说,一般认知能力是最佳预测因子,语言能力是最强有力的预测因素。

4.课程教学中的相关反应

我国6-7年级学生的年龄大部分在11~12岁,认知心理发展大致位于皮亚杰的具体运算晚期到形式运算早期。所以,这个阶段的我国中小学信息科技课程编程的学习,主要借助“图形化”编程工具等作为编程学习的技术工具。

同时,在学习编程的学习活动中也常常选用项目学习这样的实践型学习方式。《义务教育信息科技课程标准(2022年版)》也在课程总目标中明确指出要发展学生的问题解决能力(如图2),但是其发展无法通过简单的讲授来实现,需要在问题解决的实践过程中具体落实与积累。


图2 义务教育信息科技课程标准(2022年版)目标与学习内容、发展方向等的关系

三步转译编程教学法的框架

1.数据、程序、算法等的本质

(1)数据的本质与需求辨析

数据=现实世界的数字化映射。运用ICT技术手段解决问题,不仅需要理解数据,还需要理解数据背后的对象与对象的运行逻辑;而实境中的体验与各类行业实践经验,为这些理解的产生提供了坚实的经验与理性基础,需求辨析是问题解决与创新的开始。

(2)程序、算法的本质与编程

瑞士计算机科学家Niklaus Wirth指出,程序=数据结构+算法;英国计算机科学家Robert Kowalski则指出,算法=控制+逻辑。程序体现了对象的数字化结构,问题解决步骤的逻辑、控制与时序,这意味着“编程的本质是翻译”。程序是特定问题解决办法用特定领域符号的代码表达。

(3)对算法的各种实际理解

Robert Kowalski在界定算法概念时指出:逻辑成分能对问题和解题中能用的知识提供更清楚和更明显正确的陈述,控制成分对算法的功效承担更大的责任,因而算法能通过提高控制的功效而更易于改进。

对算法的前科学认识有一种是“计算的方法”,这个认识只是“顾名思义”,并没有认识到“计算”有“受控演绎”含义,这类错误或起源于对数学构成的误解。

另一种认识认为学习“算法”就是要学习算法中的基本结构,这类认识仅侧重了算法的控制成分,而对逻辑成分重视不够。还有一种认识是“算法的表现形式一定是数学或符号样式”,而没有看到“数学或符号样式”所指代的问题解决办法。

生活算法是武健在2007年前后在义务教育信息科技教学中提出的一个专用词汇,主要强调在学习程序编制的过程中,重视学生用自然语言来描述对象、对象运动的逻辑与步骤,以契合学习者的认知发展规律与特点,进而有效发展学生编程能力。

2.三步转译编程教学法的一般框架

三步转译编程教学法是针对义务教育信息科技课程中编程学习的教学法,不涉及信息科技课程中其他学习内容。

第一步转译:从真实问题到自然语言描述的文本;第二步转译:从自然语言描述的文本到逻辑过程的图示;第三步转译:从逻辑过程的图示到程序代码。

三步转译编程教学法选用项目学习作为基本的学习方法,借助图形化编程工具,通过这三步将问题解决的具体办法转译为可执行的程序(如图3)。同时,三步转译法作为问题解决在编程领域的映射,是编程学习中主要的过程—方法维度的学习目标。


图3 三步转译编程教学法的框架

3.三步转译编程教学法可能的学习场景与过程

在义务教育阶段的信息科技课程中,常见的编程学习主要体现在两类学习活动中,一是借助开源硬件的智能机械装置搭建(含物联网应用、机器人等),二是依托图形化编程软件的编程动画。三步转译编程教学法可能的学习场景与过程简述如表所示。


4.三步转译编程教学法与其他常见教学法的异同

(1)学习目标与内容等方面的异同

三步转译编程教学法与其他编程教学法一样,在学习目标和内容中都包含程序编写技能的学习。但前者将问题解决的一般流程与程序编写技能同时列为主要的学习目标。

在社会生产领域,编程语言是重要的生产力工具,编程语言随着社会的发展而发展、随着应用侧重点的不同而有不同的选择。三步转译编程教学法因其注重问题解决能力的发展,可实现编程能力发展与具体编程语言之间的松耦合,编程语言发展对编程教学的变动要求可能更为适度。

(2)学习流程与方式等方面的异同

三步转译编程教学法与其他编程教学法一样,都关注编程学习的产物——程序,但在学习流程上三步转译编程教学法大致涵盖了软件开发的全过程,所以三步转译编程教学法在每个转译阶段结束,都生成相应的阶段学习产物(如图4)。


图4 三步转译编程教学法与其他教学法在流程上的差异

三步转译编程教学法与其他编程教学法有着各自的侧重点:

讲练式教学法更适合深入细化编程学习的场景;

任务驱动教学法强调学习者代码语句学习的理解基础与兴趣激发;

三步转译编程教学法选用项目学习作为主线学习方法,注重在运用编程手段解决问题的实践过程中学习编程,并不断积累软件开发这类活动的初步经验,强调问题解决能力的发展,更适合形成编程整体概念的学习场景。

其他的讨论

方法的发展而不是对其他方法的替代,在不同学习者的不同发展阶段可能需要不同的学与教方法,三步转译编程教学法可能更适合中小学阶段学习者,而对于大专院校需要编程精进的场合,或许讲练法有其运用的必要性。

面向中小学生的教学是一项复杂的社会实践工程,教学法的掌握与活用是一类复杂的专业能力。根据已有的学校教育实践经验,一般对某个教学方法的初步掌握,教师需要在专业支持下经历三轮的探索实践。

对于义务教育阶段的信息科技课程来说,编程学习内容只在某个学期中出现,这意味着一位教师的每一轮尝试往往需要间隔一个学年。所以,对教学法的探索是一个长期的过程,三步转译编程教学法的探索需要通过更多教师的实践来丰富、发展。

本文作者:

柳栋海市虹口区教育学院

武健北京市东城区和平里第九小学

沙金上海市宝山世外学校

史泽齐上海市宝山世外学校

田君慧子上海师范大学教育学院教育技术系

文章刊登于《中国信息技术教育》2023年第15期

引用请注明参考文献:

柳栋,武健,沙金,史泽齐,田君慧子.上海师范大学教育学院教育技术系[J].中国信息技术教育,2023(15):5-8.

- 后续内容 -

1、“三步转译编程教学法”专题 | 从算法、思维到问题解决实践——三步转译编程教学法引发的思考

2、“三步转译编程教学法”专题 | 三步转译编程教学法学习评价方案构想

3、“三步转译编程教学法”专题 | 实境体验与第一步转译过程中实境体验与第一步转译过程中

4、“三步转译编程教学法”专题 | 编程教学中学生自然语言表达的三种场景——以“搭建小型物联系统”单元为例

欢迎订阅

纸质版订阅

电子版订阅

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...