初中三步转译编程教学法框架构想

2023-08-10 12:28柳栋武健沙金史泽齐田君慧子
中国信息技术教育 2023年15期
关键词:信息科技编程教学法

柳栋 武健 沙金 史泽齐 田君慧子

摘要:本文根据当今我国社会发展的需要、信息科技学科发展的趋势和学生认知心理的规律,针对课程标准对信息科技领域问题解决能力的要求,通过对数据、程序、算法等本质学习,把握住“编程本质就是翻译”这个关键,在已有实践的基础上提出了从需求辨析、逻辑梳理到代码实现的初中三步转译编程教学法框架,并根据教学探索给出了相关的学习场景、过程的初步描述。

关键词:信息科技;编程;教学法

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2023)15-0005-04

20多年来,不论哪个版本的中小学信息科技课程标准,其主要内容一直是学习运用ICT技术手段帮助学习活动的开展、学习程序的编制等,或可称之为信息科技课程的主要学习方向。信息科技课程在建设与实施过程中,一直强调发展学生的核心素养、发展学生的计算思维等内容,但是,素养、思维等词汇抽象层级比较高,要落实到教学中需要数次层级转换才能够转化为具体的内容和行为指标。本文将聚焦程序编制方向来讨论学与教的实践方法。

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

问题与思考

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

当前,我国社会生产正处在产业升级转型、提升核心竞争力的过程中,产业竞争力的核心是高素养的人才与“从零到一”的原创能力。各行业在数字化转型中对IT业与其他行业的相互理解、深度融合提出了明确的需求。但是,IT业过度细致的分工,如有大批从事简单编写代码的从业人员,不仅影响了企业的核心竞争力,而且导致在面对与其他行业深度融合的需求时,缺乏需求确认及技术转述的人才。

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

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

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

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

少年儿童的认知发展呈现着由外而内、由表及里、从具象到抽象的过程(如图1)。心理学家安德森则认为计算机语言源于自然语言、区别于自然语言,抽象度更高,是一类很难配入的特殊语言。[4]计算机程序的发源地是英语作为母语的地区,程序编制从某种角度来说也可以看成是英语的“自然语言”写作。华盛顿大学一项研究表明,就编程能力的影响因子来说,一般认知能力是最佳预测因子,语言能力是最强有力的预测因素。[5]

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

我国6-7年级学生的年龄大部分在11~12岁,认知心理发展大致位于皮亚杰的具体运算晚期到形式运算早期。所以,这个阶段的我国中小学信息科技课程编程的学习,主要借助“图形化”编程工具等作为编程学习的技术工具。同时,在学习编程的学习活动中也常常选用项目学习这样的实践型学习方式。《义务教育信息科技课程标准(2022年版)》也在课程总目标中明确指出要发展学生的问题解决能力(如图2)[6],但是其发展无法通过简单的讲授来实现,需要在问题解决的实践过程中具体落实与积累。

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

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

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

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

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

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

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

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

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

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

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

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

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

第一步转译:从真实问题到自然语言描述的文本;

第二步转译:从自然语言描述的文本到逻辑过程的图示;

第三步转译:从逻辑过程的图示到程序代码。

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

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

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

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

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

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

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

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

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

三步转译编程教学法与其他编程教学法有着各自的侧重点:讲练式教学法更适合深入细化编程学习的场景;任务驱动教学法强调学习者代码语句学习的理解基础与兴趣激发;三步转译编程教学法选用项目学习作为主线学习方法,注重在运用编程手段解决问题的实践过程中学习编程,并不断积累软件开发这类活动的初步经验,强调问题解决能力的发展,更适合形成编程整体概念的学习场景。

其他的讨论

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

面向中小学生的教学是一项复杂的社会实践工程,教学法的掌握与活用是一类复杂的专业能力。根据已有的学校教育实践经验,一般对某个教学方法的初步掌握,教师需要在专业支持下经历三轮的探索实践。对于义务教育阶段的信息科技课程来说,编程学习内容只在某个学期中出现,这意味着一位教师的每一轮尝试往往需要间隔一个学年。所以,对教学法的探索是一个长期的过程,三步转译编程教学法的探索需要通过更多教师的实践来丰富、发展。

参考文献:

[1]柳栋,武健,魏宁.信息科技学科基本框架与核心内容—基础教育信息类课程建设的思考[J].中国电化教育,2012(02):6-10.

[2]柳栋.已有基础、教育逻辑、体系变革和交易结构—基础教育领域“互联网+”实践中几个问题的讨论[C]//.互联网时代的教育发展—第十八届海峡两岸暨港澳地区教育学术研讨会论文集,2016:28-34.

[3]Eric Evans.领域驱动设计[M].北京:人民邮电出版社,2010:2-3.

[4]J·R·安德森.认知心理学[M].长春:吉林教育出版社,1989.

[5]余娟,李佳琪,陈珑丹.学编程如学外语?[J].上海教育,2021(06):18-19.

[6]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022:6.

[7]李涛.很多程序员开发软件多年,但并未意识到软件是对现实世界的映射[EB/OL].(2023-01-06)[2023-01-10].https://www.toutiao.com/w/7185302623544214307/.

[8]郭朝晖.病、症关系与数字空间[EB/OL].(2023-01-02)[2023-01-10].https://mp.weixin.qq.com/s/0QRqfkd5AFW0gEsPm8I9Mg.

[9]焦华.基础编程的思考方法[J].软件,2018,39(03):57-62.

[10]Robert Kowalski,张幸儿.算法=逻辑+控制[J].计算机科学,1980(05):28-40.

[11]李涛.一文看懂编程的本质,程序员有前途么?[EB/OL].(2021-09-22)[2023-01-10].https://www.toutiao.com/article/7010310998829646348/.

[12]武健.从生活算法中审视程序设计算法[J].信息技术教育,2007(05):36-37.

[13]武健.信息科技视角下的生活算法[J].中国信息技术教育,2014(23):83-84.

猜你喜欢
信息科技编程教学法
编程,是一种态度
元征X-431实测:奔驰发动机编程
批注式阅读教学法探究
编程小能手
实施“六步教学法”构建高中政治高效课堂
纺织机上诞生的编程
智慧旅游景区发展存在的问题和对策研究
关于新时期博物馆的陈列思考
开放引导式阅读教学法描述
“假弱”教学法你用了吗?