以培养计算思维能力为核心的计算机课程教学改革研究
2023-09-17姜丹王辉
姜丹 王辉
关键词:计算思维;思维训练;教育理念;教学方法
随着互联网和人工智能的飞速发展,现代社会对大学生提出了更高的要求,不但要求大学生深入学习专业知识,提高专业水平,打牢岗位任职基础,更要求大学生具备强大的思辨能力和创新能力,能够快速、有效地理解和认知突发问题,处理复杂多变的情况,符合信息化社会的高要求,这就对计算机课程教学提出了更高的要求。
一、计算机课程的教学改革核心
近年来计算机基础课程教学改革不断推进,不断应用新的教学理念和教学方法,比如提出模块化教学理念,采取案例分析、任务驱动、项目展开式等多种教学方法,但是在培养的核心问题上出现了偏差。例如,受“考试驱动学习、考试推动教学”的惯性影响,教学过程中重知识轻思维。在短期功利主义的思维模式下,大学生往往是考试考什么,大学生就重视什么,考试考知识点、方法和技能,学生就重视知识点、方法、技能的学习。教师的教学过程也容易陷入这样的怪圈,过分强调计算机的基本术语、基本概念和语法规则,片面地追求如何把单个的知识点讲清楚,而忽略运用计算机知识解决问题的计算思维,不注重思维的培养和训练。虽然近年来的教学改革也逐渐侧重思维的培养,但也只仅局限于程序设计中编程思维的培养。
图灵奖得主Edsger Dijkstra 说“我们所使用的工作影响着我们的思维方式和思维习惯,从而也深刻地影响着我们的思维能力”[1]。计算机作为人们学习、工作、生活不可或缺的工具,深刻地影响着人们的思维方式。计算思维能够将问题清晰地描述出来,将解决问题的方案表示为信息处理的一系列流程,是一种强大的思维方法,对于提升大学生的认知能力、思维能力、创新能力都起着十分重要的作用。
计算机课程教学改革要以培养计算思维能力为核心,研究什么是计算思维,研究如何在课堂教学中培养计算思维能力。
二、计算思维的研究
为了能够更好地在计算机课程教学中培养计算思维,首先必须搞清楚到底计算思维到底是什么,有哪些特征。
(一)计算思维的概念
2006 年3 月,美国卡内基梅隆大学计算机科学系主任周以真教授,在美国计算机权威期刊《Communicationsof the ACM》上发表了一篇题为《CommunicationsThinking》——“计算思维”的文章,首次明确提出计算思维的概念。在文章中周以真教授系统性地定义计算思维:计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列的思维活动[2]。也就是说计算思维是一种运用计算机科学基本理念来分析问题、解决问题的思考方法。
(二)计算思维的本质
计算思维的本质是抽象(Abstraction) 和自动化(Automation)。运用计算思维进行问题求解的过程可归纳为理解问题、制定算法、执行程序、总结评价等几个基本环节。在这个过程中,人和计算机作为解决问题的两大主体分别起到了重要作用。计算机作为自动化执行的工具,是自动化这个本质的载体。同时,人对问题进行理解和分析,找出问题的已知条件和最终目的;然后运用多种方法将待解决的问题分离、提纯、概念化成可描述、可执行的内容,也就是抽象及建模,目的是制定计算机能够理解并自动执行的算法和程序;接着借用计算机其强大的计算能力,对制定的程序自动执行从而得出问题的解。显然,在这个过程中,人发挥了其特长——抽象(Abstraction),计算机也发挥了其特长——自动化(Automation)。这恰好是计算思维的本质。
(三)计算思维的特征
计算思维不等于计算机编程。虽然计算思维离不开计算机编程,编程中会使用到计算思维,编程思维也会培养计算思维,但是计算思维还要求更加广泛的思维方法,能够在多个层次上进行抽象思维,能够进行系统设计,其涵义远远超过了程序设计。
计算思维不等于计算机操作技能。很多人误解地认为:计算机仅仅是一种工具,只需掌握其操作技能,运用其来帮助人类解决问题。实际上,计算机作为一种工具,在人类的使用过程中,也反过来潜移默化地改变了人类的思维方式。计算思维是融合了计算机学科的基础概念,以及广泛的思维方法的思想,有了这种思想人类才有创造能力。
计算思维融合了数学思维和工程思维,一方面它具有数学的抽象、严谨与精确,很多时候也以数学模型为基础上,但是它又广泛应用了工程学的各种方法,使用工程思维建立与实际世界互动的系统,所以计算思维其核心思想是兩者之精华,计算思维= 数理思维+ 工程思维。
三、计算机课程中计算思维能力的培养方法
(一) 课堂教学围绕计算思维能力培养开展
当前计算机教学中既有面向对象的思想,又有面向过程的思想,既涵盖了计算机的基本概念,又涵盖了计算思维的基本方法。在教学过程中,要求教员要认真研究教学内容及其特点,挖掘其中隐含的计算思维,针对计算思维的培养和训练进行课程课堂教学设计,全面地培养和训练大学生的计算思维能力。
例如程序设计中,自己调用自己的方法称为递归(Recursion),其作为一种思维方式,在程序设计语言中广泛应用。递归通思维常把一个大型复杂的问题,层层转化为一个与原问题相似的,但是规模较小的问题来求解,大大地减少了解决问题的复杂度。递归思想是计算思维中非常典型且用途非常广泛的一种思想,掌握递归思想对于培养计算思维非常重要。
在《计算机程序设计基础》中有一个教学进度为“函数的递归调用”,在教学实践中,借助这个教学内容的学习,不但教会大学生掌握递归函数的定义及调用方法,会使用递归函数解决实际问题,更有意识地培养大学生的递归思维,提高大学生的计算思维能力。
所以“函数的递归调用”这一进度的教学线索为“知识——技能——思维”:通过本次课的学习要求大学生掌握函数的递归调用方法,会使用递归函数解决实际问题,并在教学过程中体验计算机学科解决问题的思维规律和思考方法,培养递归的思维方法,提高计算思维能力。
(二)利用BOPPPS 模型培养计算思维能力
BOPPPS 教学模型从教学组织实施层面,给出了遵循“导入--目标--前测--参与式学习--后测--总结”的教学过程,使得教师能够有效地组织课堂教学,同时该模型还能够帮助学生思考问题、分析问题、解决问题,探寻学习难点,反思学习盲点,能够培养学生的计算思维。
以上述“函数的递归调用”这一进度为例,具体的教学环节按照BOPPPS 模型进行设计,具体如下:
Bridge-in(导入):以野外驻训为场景,以“如何选择食物才能使得背包里的食物总热量最高?”为引题,抛出0-1 背包问题,同时激发大学生的学习兴趣。
Objective(学习目标)+Pre-assessment(前测):带领大学生对0-1 背包问题进行分析,试图通过已有的思路来解决问题,在分析的过程中,完成对大学生思维方法的检测,注意观察大学生是否有递归思想的雏形。在进行各种尝试后仍没有找到合适的解决方法后,此时另辟蹊径提出递归的概念,明确本次课的学习目标,带着目标进行学习。
Participatory Learning(参与式学习):此环节分为3 个小环节,首先以求N 的阶乘为例,带领着大学生对简单问题进行分析,尝试着由大学生总结递归函数的定义及调用方法;然后以求Fibonacci 数列为例,初步使用递归思维进行问题分析与求解;最后使用递归函数解决0-1 背包问题。在整个过程中,教员起到启发引导、归纳总结这样的牵引作用,而作为学习主体的大学生,则一直处于主动思考、积极探索的状态。
Post-assessment( 后测): 以讲故事的方式提出Hanoi 塔问题,带领大学生分析问题并解决问题,查看大学生是否会使用递归思想进行问题求解。
Summary(总结):带领大学生分析归纳递归思维的特点,介绍递归思维的应用,使得大学生掌握递归的思维方法,能够使用递归思维思考和解决问题。
在整个教学过程中如何解决0-1 背包问题是教学主线,围绕主线函数的递归定义与调用是知识线,而分析问题、解决问题的思考过程中使用到的递归思维则是思维线,知识线与思维线交叉融合,相辅相成,不但注重知识学习,更加注重计算思维的培养。
(三)通过思维可视化技术培养计算思维能力
思维是人脑对客观事物间接的、概括的反映,体现了事物的本质以及事物之间的联系。人脑的思维活动是非常庞大的,常常会变得杂乱无序。思维可视化是运用一系列的图示技术,将人脑的思维活动梳理并呈现出来,包括思考方法、思考路径、思维规律等,使本来不可见的思维清可视化。被可视化的思维更加容易被理解、被记忆,可以提高信息加工和信息传递的效能。
在教学过程中采用思维可视化技术,把“将思维尽可能地展现出来”,不但有利于传递知识,更有利于培养大学生的计算思维能力[3]。通过思维可视化技术培养计算思维的方法主要有三个方面:知识框架的预先植入、教学线索和知识线索的展示、知识体系的构建。
1. 知识框架的预先植入。
在预习环节或者课堂前测环节,首先要将教学目标提前交代清楚,使得大学生对本章内容和本次课的教学所涉及的教学内容,以及要达到什么样的目标,有一个总体的把握,带着目的去开展学习。传统的教学方法只是将教学内容或者教学目标进行简单的文字阐释或者罗列,首先可读性和可记忆性比较差,大学生面对陌生的知识的文字描述本身就比较难以理解,更加难以记住。采用思维导图技术,将本章或者本节内容的知识框架展示出来(并不展示细节),同时配以该知识框架所对应的教学目标,图文并茂,条理清晰,更加形象且直观。信息编码与数据表示的教学目标及内容如图1 所示。
2. 教學线索和知识线索的展示。
在授课过程中,根据教学线索绘制思维导图,并动态播放该思维导图,一个知识点牵引出下一个知识点,将知识点之间的相互关联展现出来,更加注重思维的发散和逻辑的梳理,培养大学生的发散思维和逻辑思维能力。例如图2 所示。
3. 知识体系的构建。一次课教学结束,一章教学结束,以及一个模块教学结束后,要求大学生在课下使用思维导图整理出该次课、该章节、该模块的知识体系。使得大学生在将知识点串联起来,形成知识体系的同时,更能注重整个思维的梳理和搭建的过程。
通过以上三种方法,在教授知识的同时,更注重思考的过程和思维的梳理,更有助于培养大学生的计算思维能力,在教学实践中也取得了良好的教学效果。
四、结束语
计算机课程中所涉及的基本概念、方法以及思考方式都渗透着计算思维,在课堂教学实践中,围绕着计算思维的培养,将计算思维的培养融入日常的课堂教学各个小环节中,使得大学生在学习知识、方法、技能的同时,潜移默化地培养了计算思维,从而训练和提高大学生的思维能力和创新能力,为当今社会培养高素质高思辨能力的人才。
作者单位:姜丹 王辉 海军大连舰艇学院 基础部计算机教研室