编程文化与人文主题在内涵上的契合分析
作者:王爱胜
来源:《中国信息技术教育》2021年第17期
        随着编程教育的推进,教与学都必然会从语言语法、算法设计继续向计算思维、编程文化高阶发展。这是一门课程不断成熟的表现,也是编程教育内涵与外延同步螺旋上升的需要,更是编程文化慢慢自我塑造的过程。编程文化,可以既包括编程自身的思维方式、价值取向、意识形态等具体表现,也包括编程学习时采用的人文(文化中的先进、核心部分)的主题、人文的产品或人文的元素等与之契合关联。但是,我们往往单纯地把采用社会文化主题的技术实现作为编程文化,这是缺乏深度的。本文旨在分析比较难以理解的编程文化与人文主题的编程在内涵上如何契合。
        ● 人文主题在编程文化中的内涵表现方式
        無论是基于代码编程的算法教学,还是基于图形化编程的作品设计教学,大家都会关注“立德树人”这一重要的教育目标,这是提升学科核心素养的重要方向,也是提高课程内涵的重要途径。
        在编程教学的范例内容选择方面,教师往往会首先选择数理问题,因为数学、物理等学科问题的数据关系明确,容易构造数学模型,并且简单易懂,难点在于需要更精确地分析学生的数学知识基础;其次是密码、遗传、心理分析、人机对话等逻辑类型的内容,因为这类问题能够很好地体现逻辑判断与推理;再次是社会文化、趣味故事等主题内容,这方面容易激发兴趣,能够降低认知难度,适用范围也广,极受欢迎。不论什么内容,又可能会区分为语言、算法和作品不同的教学理念。可以说编程文化的具体形成与教学内容、教学理念与教学形式都是密切相关的。
        编程文化中吸纳人文内涵,往往有三种比较有深度的表现方式:一是人文产品设计类,编程项目直接采用基于人文关怀的科技主题,通过编程来解决具有人文需求的实际问题并形成相关产品,如“设计一款老人摔倒自动报警器”,这能够与计算思维高度融合;二是人文元素
吸纳类,在编程文化中融进人文素养,尤其是针对信息意识、数字化学习与创新、信息社会责任等相关的人文元素,如设计程序研究函数图像时,采取图形界面进行参数调整以灵活地研究函数图像,回避红绿颜的对比对弱者进行关照等,虽无非人文产品但有人文元素;三是编程技术文化思想类,编程文化在算法、代码上的文化内涵表现,如迭代算法的数据继承性是“算法优化”,也是“动力源泉”,又如分治算法是高效的算法设计,也是多线程、区块链等技术哲学的价值发展等,这会对帮助人、发展人的技术文化价值有更深刻的表现。
        不论哪一类情况,在编程教学中都需要把编程文化与人文进行内涵契合。通过分析采用文化主题编程教学,可以探讨两种文化相互促进的意义,同时也能彰显编程文化吸纳人文教育的价值意义。
        ● 人文主题的处理过程,需要与编程文化(技术特、概念本质)保持一致
        很多编程技术都具有特定的功能与用途,这是编程自身的技术文化价值所在。教师在采取包括人文主题在内的任何情境、任务、问题或项目时,都要考虑主题内容与编程的特技术、概念本质是否保持一致,避免教条地使用技术造成问题解决过程、主题处理过程与技术、概念的貌合神离,甚至伤害对技术价值的认知,也损害文化主题的意义。
        例如,泰山版初中信息教材中采用了分组进行基于“列表”存储、交流“品质”的人文主题的数据编程处理,通过输入、追加、显示、交流等列表操作,对数据存储、数据加工的编程技术、列表概念、文件读取等进行学习。其过程是,首先请每一个学生出自己的多项品质,利用列表追加技术,如list.append(“勇敢”)、list.append(“善良”)等完成数据获取、存储,在数据获取过程中交流、认同、学习其他同学的优良品质;然后,通过列表概念认识数据存储的方式,通过列表访问技术查看小组的数据存储成果,形成品质认同效果;最后,通过向文件的写入列表数据技术[如f.write(list)],对学生品质、小组理念进行存储、提交、展示,完成从个人到集体的“品质聚合”,在这整套的项目活动中,在人文上对学生的品质养成意义非凡,对列表技术的动态存储、数据访问与管理的运用也思路清晰。更主要是的,列表的动态管理与品质的动态培养相契合。
        再举一个技术、概念与主题处理不甚恰当的例子。某学生用书,在大量借鉴上述教材进行开发的过程中,可能感觉此例很好,又考虑到版权问题,也或者只是想进一步提高站位,采用了核心价值观的文化主题。但是,程序设计中几乎没有数据变化和发展。这就出现了文化主题与技术特、概念本质不匹配的问题。主要原因是,其采用的文化主题中的词汇是固定了三类(每类4个词,共12个词),因为是固定词让学生一次性输入,“动态”存储意义不再
必需。实际上,这12个词是可分成三个层面来说的,存储在一个列表中也显得与主题与技术貌合神离。如果编写者真的深度理解了列表技术内涵,该主题也可以改进得更恰当。例如,方案一是可以使用三个列表存储成三个分类的各自4个词汇,在显示时可以分类访问;方案二是可以提高列表技术难度,使用列表嵌套形成诸如s=[["1","2","3","4"],["a","b","c","d"]]的分类存储数据模型。数据访问时,可以使用print([0][3])技术分类访问数据,如此可让价值观的存储、查询等更有“理解”意义。
        可见,在采用列表处理数据时要体现其动态、分类特点,不能简单地存储无表达意图的数据,如在使用字典处理数据时,就要体现出其“索引”特征等。如此,能更容易地让文化主题与技术概念进行内涵融合、过程协调、目标一致。
        ● 人文主题的编程功能设计,要发挥计算思维的优势形成双重文化契合
        在采用问题、情境、任务或项目式进行编程学习时,往往都会有一定的功能设计,采用编程来完成其过程必然要利用、发挥计算思维的优势。即,一方面要从问题分析、算法设计、代码编写与调试的流程来进行整体设计,另一方面更需要注意利用关键算法,发挥计算优势来实现特功能。这样,就能让文化主题的功能与计算思维相结合,以其特功能更现
编程的必要。
什么是编程举个例子        例如,很多教师在教学中采用古诗作为文化主题进行输入、输出等编程基本语句的练习,这样较短时间的操作练习也并无不可,但是程序与古诗的“结合点”在哪里呢?文化的内涵与技术内涵无法契合。笔者在针对数据查询功能设计时,就利用“飞花令”的文化主题进行了编程实现,突出数据获取(读文件)、数据查询(查指定词句的诗)、数据呈现(交互式人机界面)的现实,尤其是针对关键算法——“枚举”进行生动、有趣、真实的基于文化主题编程的探索。
        在教学中,首先进行的是改良版的“飞花令”接诗游戏,体验人脑搜索信息的过程——“根据关键词回忆知道的诗句”。多数情况下学生接得少,由此体会人脑存储的局限性,并提出大量数据存储、检索的意义。然后,请学生尝试“飞花令”游戏,体验“电脑飞花接令”的功能,激发对编程的兴趣,提高对计算机进行数据检索的认识。接下来,让学生探究“飞花令”游戏程序,讨论、交流、问答数据如何输入、检索、输出的程序工作,像阅读英文一样阅读程序,像体会思索一样体会计算思维,整体上提高对程序功能的認识。再接下来,提出程序改进的建议,尝试更优化的程序修改,如关键词的输入精准(xl最在的问题)、多个关键词的逻辑
搜索(and、or)等技术拓展。最后,使用其他诗歌文本做成通用“飞花令”程序,形成对数据存储的结构、枚举算法的工作过程的技术认知。“飞花令”程序及注释如图1所示。
        ● 人文主题的编程效果表现,要通过编程的最新技术进行彰显
        采用人文主题进行编程,往往需要在主题表达效果上有较好的表现,这样学生才能更有兴趣,也才能更加体现计算思维与技术创新。在课堂教学中,技术较好的教师往往会利用更高超的程序设计来增强主题效果,如可以通过音乐模拟、炫酷动画等实现。当然,通过最新的技术,如人脸识别、语音识别、文字识别等也可以达到增强效果的目的。
        在这类的技术学习中,我们不必过度涉及较难的底层编码,可通过拓展的功能模块来更好地优化主题表现。例如,上述“飞花令”诗句中,可以指导学生补充完成语音朗读接令诗句的功能,大幅度地提高文化主题的表现效果,并彰显出新技术的魅力。
        参考“朗读飞花令”的技术测试代码(如图2),分组合作应用在“飞花令程序中”。
        借鉴以上技术测试程序,通过引用“模块”、“自定义函数”、朗读诗句、延时等基本的功能设计,完成“朗读诗句”的效果。可见,在新技术的加持下“飞花令”文化主题更显精彩,程序
的技术内涵也得到极大程度的提升。
        综上所述,在编程中使用人文主题,要避免随意的、无特的文化选题和技术应用,这样才更容易形成有意义的编程文化,双重文化、两种内涵的相互契合,能做到既不浪费人文主题又不泛化编程文化,让编程文化更加熠熠生辉。
        苍山点题
        编程教学无疑是这一轮新课程改革的重头戏,甚至是核心内容。但是,编程要面对的首要问题就是编程语言的选择,然后是面对教学的具体实施,其间或最后也不得不面对考试。这三步曲已然在各地尽情尽兴地演奏起来。可是,奏着奏着就开始出现了很多不同的曲风,慢慢就会演绎成极具地方特的曲调。因为各地教育基础、考试方向、管理力度、评价措施等很多方面都不一样,所以很难避免分化现象的发生。可是,作为国家课程,不用采用什么样的曲风或调式,主旋律还应是大致一样的,在此我们应试图从编程文化的角度不断探索、讨论,激发大家在共唱新课程这同一首歌的过程中更自信、更主动、更深刻。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。