1. 引言
随着“双一流”建设的深入推进,我国高等教育正面临着前所未有的发展机遇和挑战。教育部《关于加快建设发展新工科实施卓越工程师教育培养计划2.0的意见》[1]中明确提出“强化学生跨领域交叉融合能力培养”,“双一流”建设高校需率先突破传统学科壁垒。新一轮学科评估将“教材建设质量”(观测点3.6)和“交叉融合成效”(观测点4.3)列为重要指标[2]。根据《新工科研究与实践项目指南》[3],新一代信息技术产业需要具备“计算思维 + 领域知识”的复合型人才。但当前工程教育中存在“学科交叉表面化”、“能力培养碎片化”问题,亟需构建系统化的跨能力域培养体系。
在这一背景下,新工科教育的改革与发展成为提升我国工程教育质量、培养创新型工程技术人才的重要途径。跨能力域计算思维作为新工科教育的核心内容之一,对于培养学生的系统思维、创新能力和解决复杂工程问题的能力打下坚实的基础,具有重要意义。
本文首先阐述计算思维教材的重要性及当前该类教材存在的问题,针对现状中的不足之处,在第三小节提出一个计算思维教材的开发方案;第四、第五小节阐述了计算思维课程的教学模式改革和教学效果评价方式;第六小节指出当前计算思维教育面临的困难和挑战,并尝试给出应对策略,以期抛砖引玉,引起业界对该类教材和教学的重视和探讨,促进“双一流”和新工科跨能力域人才培养的发展。
2. 计算思维教材现状及存在的问题
计算思维是一种运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等一系列思维活动。它涉及到将问题抽象化、设计算法、编写代码以及对结果进行测试和分析等过程。计算思维的核心是将问题抽象为可计算的形式,并运用算法和计算机科学的原理来处理和解决问题。
随着数字化转型加速,全国92%的本科院校开设计算思维相关课程,覆盖计算机、经管、生物、人文等二十余个学科门类[4]。但当前教育在教材内容、教学方法和实践环节等方面仍存在诸多不足,特别是在计算思维的培养上,缺乏系统性、针对性和创新性的教材。现有的教材内容多以Python、C++等编程语言为载体,往往偏重于理论知识的传授,忽视了计算思维在工程实践中的应用,无法满足新工科背景下对学生跨能力域综合素养的培养需求[5]。
我国计算思维教材的不足主要体现在以下几个方面。
2.1. 重理论轻实践
许多教材过度强调抽象概念(如算法复杂度、逻辑结构),但缺乏实际案例。例如,对于一些算法的内容侧重于算法的理论讲解,缺乏将其应用于实际工程中的案例,导致学生在学习上为了算法而学习算法,不能很好地理解其应用[6]。
2.2. 内容侧重编程语法与工具操作,弱化思维本质训练
部分教材将计算思维与特定编程语言绑定。例如,某教材用较多篇幅讲解“循环结构”时,重点放在Python语法细节而非逻辑设计,模糊了计算思维与语言工具的区别[7]。
2.3. 跨学科整合不足,知识体系沿袭传统计算机基础课程框架
多数教材局限于计算机领域案例,缺少与其他学科的融合。例如,讲解“数据表示”时仅涉及二进制转换,未延伸至社会科学数据分析等跨领域应用场景[8]。
2.4. 前沿技术脱节
教材较少涉及AI、大数据等新技术。50%的教师呼吁教材加强人工智能、大数据等前沿技术的融入,约70%的教师认为现有教材缺乏针对不同学科背景的差异化内容(如文科与理工科需求差异) [9]。
2.5. 思维训练碎片化
部分教材将计算思维拆解为孤立知识点,如单独设章节讲解排序、递归,缺乏系统性项目引导。再如,学生学完“树结构”后仅能完成二叉树遍历习题,却无法设计一个结合树结构与哈希算法的文件索引系统。而企业更看重计算思维中的“问题分解能力”和“算法设计能力”,但现有教材对此类能力的训练不足。
2.6. 评估方式单一化
配套习题以选择题、填空题为主,缺少开放式问题。例如,某教材对“算法设计”章节的练习题要求“写出冒泡排序步骤”,而非“设计一个适应动态数据流的排序策略”。
2.7. 教材更新周期慢
前沿技术融合更新滞后3~5年,教材平均更新周期达4.7年,区块链、量子计算等前沿技术渗透率低于12% [10]。
3. 计算思维教材开发的具体方案
结合“双一流”建设目标与新工科人才培养需求,打破传统工科教材的学科壁垒,基于计算思维培养目标,整合人工智能、大数据、区块链等新兴技术案例,开发模块化、层次化的教材内容,注重理论与实践融合,按照“基础理论 + 核心技能 + 项目实践 + 拓展创新”四位一体的教材结构,让学生在奠基阶段就能开阔眼界,知道计算思维在不同领域中的具体应用。
教材总体框架设计如图1所示。
Figure 1. Overall framework design of teaching materials
图1. 教材总体框架设计
“基础理论”是基石。不同于其他教材,计算思维的基础理论不应追求大而全,其目的是突出“计算思维”,在内容的把握上应以够用为原则,这里所谓够用是指对应于教材中的项目实践而言,否则极易陷入知识内容的具体堆砌,导致无法将计算思维从这些知识中抽取出来,达不到教学的目的。这里将“基础理论”分解为信息表示、算法思维和逻辑思维三部分内容。计算思维最终要加工和处理的还是数据,信息表示部分主要展示万事万物如何转化为0和1的数据。算法思维是计算思维的核心组成部分,这部分内容要包括比较常用的典型算法。逻辑思维是计算思维的引擎,其作用贯穿于解决问题的全过程,教材的重点放在基于布尔逻辑的推理上。
“核心技能”是承上启下的方法论支柱,是将基础理论转化为解决实际问题能力的关键桥梁。在教材中,“核心技能”部分就是通过编程实践系统地、有练习地教授学生这四大核心技能:
1) 如何有效地分解一个问题?
2) 如何敏锐地识别其中的模式?
3) 如何精准地抽象出关键模型?
4) 如何严谨地设计出解决问题的算法?
“项目实践”是计算思维学习过程中的综合应用与成果转化阶段。它不是一个简单的练习题,而是一个有实际意义的、综合性的任务,要求学生独立或协作地运用在“基础理论”和“核心技能”阶段学到的知识,去设计、实现并最终完成一个可交付的“理论”上的成果,尽管它可能不是一个实际意义上的成果,但却可以充分地培养学生的计算思维。在任务的选择上要按照项目式学习场景,体现出算法的实用性和一定的跨能力域特性。
“拓展创新”将计算思维作为工具,去解决其他学科(如生物、艺术、社会科学)的问题,或者将其他领域的思想引入计算领域,最终目标是塑造学生的批判性思维、好奇心、想象力和将想法变为现实的创造能力。
4. 教学模式改革与实践路径
4.1. 教学模式改革
“计算思维”课程的目标不是培养程序员,而是培养所有专业学生的问题解决能力和数字化素养。其教学模式与实践路径必须围绕这一目标进行设计。本文结合“基础理论 + 核心技能 + 项目实践 + 拓展创新”四位一体的教材结构,将改革传统的“理论灌输 + 上机验证”模式,转向基于“问题导入 + 理论基础 + 项目分层实践 + 思维拓展”的教学模式。传统的教学模式虽然有明显的局限性,比如没有以学生为中心设计教学环节,但同样也不能否认其优点。新的教学模式吸取了传统模式的优点,将其纳入新模式中,成为其中的一个环节,尤其是在基础理论学习阶段,会充分发挥其优势。
1) 问题导入
用一个生动的故事、现象或问题引出主题,让学生分组讨论,教师适当的引导,引出问题所涉及的相关理论或算法,重点要激发出学生的兴趣和探索欲望。
2) 理论基础
此环节中充分发挥传统教学的优势,让学生理解相关的理论或算法,这是解决问题的基础。
3) 项目分层及差异化教学
项目分层是将一个项目按照由浅入深的顺序分为若干个版本,也可以是多个难易不同的项目,将其划分为若干不同的难易等级。由于“计算思维”类课程在各专业的培养方案中往往排在靠前的学期,学生的专业能力还没有得到充分的培养,而课程本身的课时量也比较有限,且学生能力也不同,因此,将项目分成若干层次,以适应不同能力层次的学生,这对差异化教学非常重要。这里将学生差异化分为基础层、中间层和进阶层。
基础层:要求学生理解和掌握核心概念和基础技能,并能理论上完成项目的最简版本,或在项目小组中做一定的协助工作。在过程中可以使用伪代码,或者模拟方法。
中间层:理论上完成项目的中间版本,在过程中可以使用伪代码,或者模拟方法。
进阶层:为学有余力的同学提供更复杂的挑战任务。要求完成项目的中间或以上版本。
在此环节中,相较于做一个可用的项目产品,计算思维的培养才是教学的核心,过程中,教师应酌情提供必要的帮助甚至部分代码。
4) 思维拓展
在完成项目实践后,鼓励学生进一步拓展思维,将实践中用到的核心思维与社会需求相结合,提高学生计算思维的能力,将来可以应用于其主修专业领域中,实现跨能力域的提升。
4.2. 实践路径
这里用一个例子与上述模式结合,形成一个完整的项目实践路径。
1) 问题导入阶段
在一些社交软件中(如Facebook、微信等),系统会给你推荐“你可能认识的人”或“好友推荐”等,这是怎么做到的。该阶段可以在线上群组中提前进行,鼓励学生先自行思考探索。
2) 理论学习阶段
学习如何遍历一个抽象的图结构,详细讲解深度优先搜索(DFS)和广度优先搜索(BFS),标注访问顺序,写出DFS和BFS的伪代码,分析两者的时间和空间复杂度。
3) 项目实践阶段
经过理论学习后,学生知道怎么遍历一个图了,但图到底是什么?有什么用?现实中什么东西可以是图?为什么有时候用DFS,有时候用BFS?此时可以结合前面导入的问题,引导学生忽略一些细节,抓住核心要素,让学生做进一步抽象思考:整个社交网络就是一个巨大的“图”,每个用户是一个“顶点”,好友关系是连接顶点的“边”。假设你自己是一个根结点,那么从你出发进行BFS遍历,BFS的第一层就是你的直接好友。你好友的好友就是BFS的第二层,这些人就是“可能认识的人”最直接的候选集。而DFS可以分析更复杂的关系,用来探索其中的关系链,比如“找出我们所有共同好友”,或者“判断两个人之间是否存在某种间接联系(路径)”。
将项目分解为几个层次进行差异化教学,比如从易到难分解为“找出你的直接好友”、“找出可能认识的人”、“判断两个人之间是否存在某种联系”这三层。
4) 拓展思维阶段
引导学生做进一步的拓展思维,在真实的海量数据图中(数十亿顶点),直接进行BFS代价极高。工程上会使用更高级的图算法(如随机游走、标签传播)或在专门的图数据库上进行优化查询,但BFS是这个思想的基石和原型。
前面从具体案例中抽象为图,那么图还可以用来表达什么?互联网的Web服务中的链接?城市的交通网络图?计算机网络中的拓扑?学生会联想到更多的贴近生活的应用,如高德地图等,进而会更进一步去思考高德地图是用什么算法计算路径的等等。这样,就完成了一个从“具体–抽象–具体”的一个过程,在这个过程中,学生的计算思维得到拓展,使他们认识到所学的理论不再是刻板的、不知何用的理论,而是可以用来解决现实问题的一些“活生生”的理论,将来在他们各自的领域中将这些计算思维应用到实践中去,达到新工科跨能力域人才培养的目的。
在课时分配上,各部分课时分配比例如表1所示。
Table 1. Proportion of class hour allocation
表1. 课时分配比例
|
问题导入 |
理论基础 |
项目分层及差异化教学 |
思维拓展 |
比例(%) |
10 |
35 |
45 |
10 |
5. 教学效果评价
计算思维课程的最终目标是让学生内化一种解决问题的方法论,使其能够应用于计算机科学、自然科学、社会科学乃至人文艺术等各个领域。教学效果评价也应紧紧围绕这一目标而设计。具体考核评价方式及成绩比例如表2所示。
Table 2. Assessment and evaluation methods and proportions
表2. 考核评价方式及比例
数量 |
课后作业 30% |
小组研讨 20% |
项目实践 50% |
合计 |
基础知识 |
10 |
|
10 |
20 |
核心技能 |
20 |
10 |
25 |
55 |
思维与素养 |
|
10 |
15 |
25 |
合计 |
30 |
20 |
50 |
100 |
基础知识主要为理解支撑计算思维的基础知识,理解计算的基本概念,掌握一门编程语言的基础,熟悉数据及其表征,了解计算系统的能力与局限。
核心技能重点关注问题分解、模式识别与抽象、算法设计、评估与优化、概括与迁移、自动化思维。这是课程最直接的目标,旨在让学生掌握一套“思维工具包”。
思维与素养是课程更高层次和更长远的目标。批判性思维、协作解决问题的能力、面对不确定性的信心、伦理与社会责任感,特别是一些如隐私、算法偏见、自动化带来的社会影响等,培养负责任的技术使用者和创造者。
总之,要将编程能力与计算思维区别开,评价设计中,需确保测评的是思维过程,而非仅仅是编程技能或代码实现。
6. 实施挑战与对策
6.1. 实施面临的挑战
1) 师资力量挑战
许多教师习惯于传统知识传授型的教学模式,而计算思维要求教师不仅掌握信息技术,更需理解其背后的抽象、分解、模式识别和算法设计等核心概念,教学过程中更强调项目式学习、探究式和建构主义,要求教师从主讲者转变为引导者和课程设计者,这一角色转变需要时间和过程。
2) 教学资源挑战
与各学科深度融合的、高质量的计算思维教材和案例库稀缺。许多资源要么过于偏向编程技术,要么流于形式,未能真正体现计算思维的本质。教师缺乏可供直接使用的、贴近生活的跨学科教学案例。同时,对如何有效评价学生计算思维能力的提升,缺乏科学、便捷的工具和方法,容易导致教学评价回到传统的知识考察老路。
3) 制度与政策挑战
各专业的课程体系科目繁多,课时紧张,学校对专业总学分往往都有一定的限制要求,增加计算思维的课时,将不得不以降低其他课程的课时为代价,这对专业培养方案的制定产生一定的困扰。另外,计算思维的深度融合需要信息技术教师与其他开课专业教师的紧密协作。但学校普遍缺乏促进这种跨学科教研与合作的制度安排和激励机制[11]。
6.2. 应对策略
1) 构建有效分层次的师资赋能体系
初级层面:面向全体教师,开展计算思维通识培训,重点在于理念普及和基础概念理解,消除陌生感。可通过大规模的在线开放课程如MOOC等实现。
中级层面:面向学科骨干教师,开展计算思维与学科融合专业培训,提供丰富的跨学科教学案例,并指导其进行教学设计。
高级层面:培养一批培训教师,使其具备课程研发和指导其他教师的能力。
另外,还可引入外部专家与资源,与一些高校、研究机构或优秀科技企业合作,建立长期的支持与顾问关系,为教师提供前沿理论和实践指导。
2) 打造开放、共享的教学资源
建设计算思维资源云平台,汇聚国内外优质资源,包括教学设计、教学视频、项目案例、工具软件等。资源可按学科、主题进行精细化标记,便于教师检索和使用。平台应鼓励教师上传、分享和评论,形成共建共享的生态。
3) 营造支持性的制度环境
推动修订如数学、信息技术类等各专业的计算思维相关课程,明确将计算思维作为核心素养之一写入课程目标,并进一步推动完善相关各专业的培养方案,将计算思维加入专业培养目标。鼓励学校内部成立计算思维教研组,并将信息技术教师作为资源专家,分散到各学科组中进行“结对子”指导,形成“技术赋能学科,学科反哺思维”的良性循环[12]。
7. 结论
计算思维课程的目标是多维度和分层次的,短期目标是让学生掌握一套核心的问题解决技能(分解、抽象、算法等),中期目标是使学生能够将这些技能与编程等工具结合,应用于实际场景,长期目标是塑造学生的批判性思维、协作精神和伦理意识,使其成为一个在数字时代中更具适应力和创造力的终身学习者。这个目标体系清晰地表明,计算思维不是一门单纯的技能课,而是一门旨在提升学生整体思维素质和问题解决能力的基础性、通识性课程。