基于计算思维层次化认知的大学计算机教学改革实践

2020-12-28 06:49姜洋衡红军李俊生
中国大学教学 2020年11期
关键词:大学计算机计算思维混合式教学

姜洋 衡红军 李俊生

摘 要:计算思维是大学计算机课程的核心培养目标。在大数据和人工智能的背景下,对计算思维的认识在不断发展,逐渐形成了迈向2.0版本的计算思维新认识。为了更加系统性地培养计算思维,本文在计算思维新认识的基础上,提出了计算思维的层次化认知模型,给出了基于计算思维层次化认知的大学计算机课程改革方案,设计了针对不同层次计算思维认知水平的混合式教学方法,提出了反映不同层次计算思维认知能力的评价机制。实践结果表明,该方法不仅使非计算机专业学生更加系统性地掌握计算机的核心基础知识,而且能够提高计算思维培养的质量和水平。

关键词:大学计算机;计算思维;层次化认知;混合式教学;评价

大学计算机是本科非计算机专业的一门核心基础课程[1]。随着时代的发展和技术的进步,现代社会对大学计算机的人才培养目标提出了更高的要求,更加强调综合素质的提高和计算思维能力的培养[2]。随着大数据和人工智能的发展,国内外许多学者给出了计算思维的新认识和定义,这些新认识和定义都从不同角度反映了计算思维的特征内涵。但由于这些新认识和定义的多元性,给以培养计算思维为核心的大学计算机教育带来了很大的挑战。如何系统性地理解这些新认识和定义进而指导大学计算机课程改革和教学实践,是当前大学计算机教育面临的重要课题。本文在计算思维新认识的基础上,提出了计算思维的层次化认知模型,并基于层次化的认知模型,给出了系统化的教学改革方案和相应的混合式教学方法,针对不同层次的计算思维认知能力设计了相应的评价机制并总结了改革实践效果。

一、计算思维的层次化认知模型

自从周以真教授在Communications of the ACM上发表了关于计算思维的文章,认为计算思维不仅是编程,而是人类解决问题的一种方式,是一种在多个抽象层次上思考的方法之后[3],计算思维越来越受到人们的关注,并成为计算机科学界和教育界广泛研究的对象[4]。虽然学者们在“计算机教育应该以培养计算思维为核心”的培养目标方面很早就已经达成了共识,但是对计算思维的理解和认知,国内外学者提出了不同观点。早些时候,认为计算思维是运用计算机科学的基础概念来进行问题的求解、系统的设计以及人类行为的理解等涵盖计算机科学之广度的一系列思维活动[5]。何钦铭教授提出,计算思维是基于不同层次计算环境和约束的问题求解方法,其核心特征是构造,包括对象构造、构成构造和验证构造[6]。陈国良院士和李廉教授在对计算思维新认识的基础上,提出计算思维2.0的概念,认为计算思维是所有领域的科学家在应用计算和计算模型时所采取的思维模式,而不是计算机科学家独有的思维方式,其随计算模型的发展而不断变化[7]。国外学者对计算思维也存在不同的观点,例如有学者认为计算思维是一种情况建模,是达到某一个目标的信息操作方式[8]。也有人认为计算思维是一种分析性思维技能,它借鉴了计算机科学的概念,却是所有人使用的基本技能[9]。还有观点认为计算思维是将问题的解表示为算法的思维过程,或者是一种有助于自动化过程设计的心智技能等[10]。

以上关于计算思维的这些认识从不同角度反映了计算思维的特征和内涵。为了让以培养计算思维为核心的大学计算机教育更好地落地,本文将计算思维认知划分为三个层次,分别是计算思维认识层、计算思维应用层和计算思维设计层,不同层次的内涵见表1所列。

要培养计算思维,首先需要了解什么是计算,计算的过程是怎样的,是不是所有的问题都是可计算的,怎么判断一个问题是可计算的和不可计算的。这是掌握计算思维更高层次的基础,因此把了解可计算和不可计算的本质区别作为计算思维第一个层次的内涵特征。有了这个基础后,就可以进入计算思维的应用层,在这个层次要求能够运用已有的计算方法解决一些可计算问题,这些已有的计算方法一般是以函数或方法的形式被调用。虽然目前已有的计算方法很多,但是随着信息化社会的发展,有更多的问题没有现成的计算方法,这时就需要掌握更高层次的计算思维认知水平,也就是基于一些设计理念和设计思想,针对不同的计算问题,设计相应的计算方法。并不是所有问题都是可计算的,因此设计计算方法之前,首先需要判断问题的可计算性,并且如果有相同或相近的计算方法,可以直接利用,避免重复设计。因此计算思维的三层认知模型是层层递进、循环促进、缺一不可的,只有有了计算思维认识层的基础,才能更好地具备计算思维应用层和设计层的认知能力。随着计算思维高层认知能力的不断提升,反过来又进一步促进对计算思维底层(认识层)的理解。

二、基于计算思维层次化认知的课程改革方案

以往的大学计算机课程内容主要包括计算机文化和操作技能等方面的基础知识,缺乏计算思维设计层次方面的培养。在学时有限的情况下,课程改革的总体思路是围绕计算思维层次化认知的培养目标,精简以往大学计算机课程的教学内容,并通过增加程序设计提高计算思维培养的质量和深度。根据皮亚杰的认知发生理论,思维必须以知识为载体,对于计算思维认识層,需要安排计算与计算文化方面的知识,让学生了解计算的本质和发展,从而培养学生的计算思维意识和对可计算问题的判断能力。这部分安排的学时虽然不多,但是对于后面更高层次计算思维能力的培养非常重要,是必不可少的基础理论知识。在计算思维应用层,需要首先介绍数据类型的概念,因为数据是计算的基础和处理对象,对数据的深刻理解有助于对数据处理的分类和应用。对于不同类型的数据,数据处理的方式不同,掌握数据处理的一些常用方法不仅有助于加深理解计算思维认识层,而且为计算思维设计层的学习打下良好的实践基础,因此这部分需要安排一定的理论学时和实验学时,见表2所列。

对于计算思维设计层的培养,需要增加程序设计方面的内容。因为语言是思维的载体,要想通过程序设计提高计算思维的算法设计能力,首先需要学习一门程序设计语言。传统的程序设计语言,由于语法细节过于复杂,在掌握设计算法解决问题之前,需要通过大量的学时学习语法细节。这给课程改革带来很大的矛盾:一方面,我们希望增加程序设计提高计算思维培养的深度和水平;另一方面,因为学时有限,我们希望避免学习过多的语法细节,从而更加专注于高层思维能力的培养。解决的关键是选择一门合适的程序设计语言,该语言应该具备简洁、通用的特点,能够针对任何可计算问题设计相应的计算方法,并且学习效率很高。当前流行的Python语言恰好具备这几个特点,其语法相比于传统程序设计语言更接近自然语言,这对于非计算机专业学生来说,大大降低了学习的门槛。Python语言还是一门生态语言[11],有着丰富的第三方库,不仅善于处理大数据和人工智能等方面的计算问题,而且能够解决不同专业的可计算问题。这不仅有利于学科的交叉和融合,而且能够促进创新。计算思维设计层的教学内容大概占整个大学计算机学时的一半,是深化计算思维培养的主要内容。

三、大学计算机层次化混合式教学方法

大学计算机是一门系统性很强的课程,不仅整体是一个系统,每一个章节也是一个子系统,因此学习内容很多,而且学生的计算机基础差别很大。为了提高不同计算思维认知层次的教学质量,并且充分利用“中国大学MOOC”上已有的优质在线教学资源,满足不同基础同学的学习需求,我们根据不同计算思维认知层次的教学内容特点,设计了相应的混合式教学方法,见表3所列。

(1)内涵式混合教学。内涵式混合教学就是通过线下教学分析,解决计算问题方法的演进过程,从而揭示计算的本质,同时利用线上资源扩展计算文化方面的基础知识。例如,从计算发展史的角度,选取一些比较有代表性的节点,介绍计算方法的演进。从最早的基于算盘的手动计算,到基于差分机和分析机的机械计算,再到基于通用图灵机模型的电子计算。这些计算工具的发明往往基于对计算问题更加深刻的认识。图灵机是图灵在对计算最本质抽象认识的基础上提出来的,是可计算问题的判定依据。一个问题如果是可计算的,那么就一定可以通过图灵机来计算,否则就是不可计算的。图灵机将所有的可计算问题统一抽象为对纸带上数据的修改问题,修改的过程通过带有读写头的有限状态控制器实现。后来,图灵在对数据和计算过程进一步认知的基础上,提出了通用图灵机的概念并证明了其与构造图灵机的等价性。通用图灵机是计算机的理论模型,现代计算机虽然在外形上发生了很大的变化,但是基本的运行原理仍然是与图灵机相同。线下教学主要通过分析图灵机的运行原理来帮助学生理解计算的本质,基于图灵机发明的计算机方面的基础知识和相关系统主要通过线上资源自学。这一层次主要解决人才培养的认知与兴趣。

(2)案例式混合教学。案例式混合教学是指基于案例讲解数据处理的相关操作和相关概念。在讲解案例操作之前,首先需要介绍数据类型的概念,因为不同类型数据的存储方式不同,取值范围不同,支持的运算操作不同,深入理解数据类型的概念有助于对数据处理方法的应用。为了更好地掌握数据处理的常用方法,设计了一些和生活工作相关的应用案例,例如制作成绩表的电子表格案例。这里涉及数据的统计、分析和可视化操作。这些案例使学生不仅能系统性地掌握数据处理的常用方法,而且能够处理现实生活中很多的實际问题。为了提高课堂的教学效率,老师可提前将这些案例操作过程做成视频放到在线教学平台上,学生可以在线观看并反复学习。课上因为学时有限,教师重点讲解案例操作背后的一些核心概念。例如在制作成绩表的过程中,涉及相对引用和绝对引用的概念,这是数据处理里面非常重要的两个概念,只有深刻理解这两个概念的区别,才能更好地应用电子表格中的数据处理方法。类似在进行数据筛选和排序的过程中,还涉及数据清单的概念,在进行一些更加高级操作的时候会涉及函数和嵌套的相关概念。这些概念是数据处理的核心,因为数据处理的方法是在不断改进的,只有深刻地理解这些核心概念,才能更好地应用已有的计算方法解决实际问题。这种线上、线下混合模式不仅能提高课堂教学效率,而且能培养学生深入思考和广泛联系的思维习惯,更进一步提高人才培养的知识学习与能力提升。

(3)演化式混合教学。演化式混合教学是指课堂上通过案例的演化来介绍程序设计的基本知识点,然后利用线上丰富的教学资源对基本知识点进行扩展。一般演绎分两个方向:纵向演绎和横向演绎。纵向演绎是指通过不断增加问题的复杂度来扩展知识点,例如增加变量提高数据处理的通用性,增加分支结构提高数据处理的智能性,增加循环提高程序处理复杂问题的能力,增加数组提高程序处理批数据的能力,增加函数提高代码的复用率。纵向演绎不仅能够快速地扩展知识点,而且因为每个知识点都有一个真实的应用场景做支撑,学生便于理解和掌握。横向演绎是指问题本身的复杂性没有增加,而是通过变换思路和方法来解决相同的可计算问题。例如求π,有基于概率的方法,有基于划分的方法,有基于公式的方法。不同的方法虽然解决问题的思路不同,但计算结果是一样的。这种课堂探索式的学习方式不仅提高了学生分析问题、解决问题的能力,而且培养了学生的创新思维和创新意识。因为程序设计的应用范围很广,不同领域有不同的计算问题和计算方式,因此对于想进一步提高计算思维的同学,可以通过在线学习的方式进行自学。这种混合式的学习方式不仅丰富了教学内容,提高了课堂教学效率,而且培养了学生混合式的学习习惯,为今后的自主学习打下了良好的基础,更深层次地增强思维能力与创新能力。

四、计算思维层次化认知能力评价机制

为了检验不同层次计算思维培养质量的达成度,我们设计了层次化的评价机制,见表4所列。

其中,对于计算思维认识层,主要通过客观题的方式考核学生对于计算思维相关基本概念的理解和掌握;对于计算思维应用层,通过实践案例大作业的方式考核学生应用基本数据处理方法解决实际计算问题的能力,例如制作一份考勤表、各科成绩表,或销售额统计表等;对于计算思维设计层,采用问题导向型的程序设计方式考核学生设计算法解决可计算问题的能力。

为了在培养学生计算思维的基础上,进一步提高学生的创新思维和创新意识,我们还在教学过程中设计了一些案例主题,学生围绕主题自己设计案例方案,从总体设计到详细设计,从数据结构到算法实现,最后展示案例效果。从实践结果来看,这种方式不仅在培养学生计算思维的基础上锻炼了工程实践能力,而且极大激发了学生的创新热情和活力。

五、结语

计算思维的层次化认知模型是在总结计算思维研究成果的基础上,提出的一套系统性的认知模型。该模型不仅能够更有针对性地指导大学计算机教学改革,而且便于结合在线开放课程开展混合式教学。近两年的实践结果表明,基于计算思维层次化认知模型的大学计算机教学改革不仅使非计算机专业学生更加系统性地掌握计算机的核心基础知识,而且能够提高计算思维培养的质量和水平。下一步,我们将通过与其他专业深度融合,逐步开发出具有不同专业特色的计算思维培养教学计划和教学案例,不断提高非计算机专业学生的计算思维认知水平和应用能力。

计算思维培养不是一门课程可以解决的,需要通过一系列课程的学习逐渐形成一种解决问题的思维能力,更多的是隐藏在教育教学方法与能力培养的过程中,要靠学生“悟性”、教师引导,使学生能自觉地运用到实际问题的解决中。

参考文献:

[1] 徐晓飞,李廉,战德臣. 未来工程教育形态:面向可持续竞争力的服务型教育[J]. 中国大学教学,2019(5):4-9.

[2] 王移芝,金一,周围. 基于“计算思维”能力培养的教学改革探索与实践[J]. 中国大学教学,2014(3):49-53.

[3] WING, J. M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.

[4] 李廉. 计算思维——概念与挑战[J]. 中国大学教学,2012(1):7-12.

[5] 陈国良,董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学,2011(1):7-11.

[6] 何钦铭,陆汉权,冯博琴. 计算机基础教学的核心任务是计算思维能力的培养——《九校联盟 (C9) 计算机基础教学发展战略联合声明》解读[J]. 中国大学教学,2010(9):5-9

[7] 陈国良,李廉,董荣胜. 走向计算思维2.0[J]. 中国大学教学,2020(4):6-12.

[8] NARDELLI, E. Do we really need computational thinking? [J]. Communications of the ACM, 2019, 62(2): 32-35.

[9] YADAV, A., GRETTER, S., GOOD, J. Computational thinking in teacher education[J]. Communications of the ACM, 2017, 60(4): 55-62.

[10] DENNING, P. J. Computational thinking in science[J]. Computing Science, 2017, 57(6): 13-17.

[11] 嵩天. Python 語言:程序设计课程教学改革的理想选择[J]. 中国大学教学,2016(2):42-47.

[基金项目:全国高等院校计算机基础教育研究项目(项目编号:2019-AFCEC-192),中央高校基本科研项目(项目编号:3122015C022)]

[责任编辑:余大品]

猜你喜欢
大学计算机计算思维混合式教学
以自主学习能力培养为目标的大学计算机课程教学改革
基于SPOC平台的混合式教学模式研究和实践
独立学院“大学计算机”实验课程教学改革
民办高校以NCRE为指导的大学计算机课程教学研究
基于SPOC模式的《大学计算机基础》课程改革的研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
《C语言程序设计》课程的教学改革与实践