您好, 访客   登录/注册

以计算思维培养为导向 深化大学计算机课程改革

来源:用户上传      作者: 李廉

  摘 要:本文根据当前正在进行的以计算思维为导向的大学计算机课程改革思路,讨论了这次改革的动因、改革的基础以及改革的内容。结合大数据和云计算的时代特征,阐述了改革的特点和目标。同时对于改革最重要的任务,即教学体系建设以及教材编写,提出了一些看法与建议。
  关键词:计算思维;大学计算机课程;改革;教学体系
  一、改革的动因
  自从20世纪80年代我国各大学普遍开设计算机基础课程以来,计算机基础课程教学在整个高等教育发展过程中,经历了不断的改革与调整,教学理论和教学目标也在经历着不断深入的发展与变化。其中有两次重大的改革[1]:
  第一次改革是在1997年。教育部高教司发布了《加强非计算机专业计算机基础教学工作的几点意见》(即155号文件),确立了计算机基础教学的“计算机文化基础-计算机技术基础-计算机应用基础”3个层次的课程体系,同时规划了“计算机文化基础”、“程序设计语言”、“计算机软件技术基础”、“计算机硬件技术基础”和“数据库应用基础”5门课程及教学基本要求。提出了教学手段、方法改革要求,建立了计算机基础教学归口领导的教学组织并加强了教学条件建设。这次改革确立了计算机基础课程的地位,并对课程体系作了规范化整合。
  第二次改革起始于2004年。在《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》中,明确提出了进一步加强计算机基础教学的若干建议,确立了“4领域×3层次”计算机基础教学内容知识结构的总体构架,构建了“1+X”的课程设置方案,并将“大学计算机基础”作为第一门课程。此项改革促进了计算机基础教学不断向科学、规范、成熟的方向发展。
  在这两次改革的背后,实际上反映了对于计算机基础课程定位和开设目标的与时俱进。从早期对于计算机课程的技能培养的目标,逐步过渡到对于计算机应用能力的培养。即从狭义的“技能”培养逐步演化为对于“能力”的培养,这种认识的提高是伴随着计算机在人类社会中日益重要的影响和渗透而不断深化的。
  最近十年以来,国际上开始对于计算思维产生了强烈的关注,多篇文章以及一些报告从不同角度提到了计算思维的训练与培养对于未来社会和人才培养的重要意义,美国国家科学基金会(NSF)投入巨资设立了相关的研究项目。由此催发了一系列的关于计算思维的理论研究及其在教学中的渗透。在这种背景下,教育部高等学校计算机基础课程教学指导委员会经过多次组织会议研究讨论,提出了大学计算机基础课程新一轮改革的思路和内容,这就是以计算思维培养为导向的大学计算机课程改革,这是计算机基础课程教育的第三次重大改革。
  以计算思维培养为导向的大学计算机课程改革,其主要内容表现为[2]:
  (1)从理论层面研究计算思维的内涵、表达形式以及对大学计算机教学的影响;
  (2)从系统层面科学规划大学计算机课程的知识结构和课程体系;
  (3)从操作层面将大学计算机课程建设成为培养学生多元化思维之一的计算思维能力的有效途径,并建设一批适用的教学资源;
  (4)从实践层面推动一批高校按照不同层次培养目标、不同专业应用需求开展大学计算机课程的改革探索。
  这样的内容设计是基于计算思维在人才培养和大学生素质教育中的重要作用和意义而确定的,试图通过全方位的改革举措,实现大学计算机课程一次新的跨越和提升。其要点表现为[2]:明确大学计算机课程对培养学生信息素养的重要地位;科学设计大学计算机课程的教学内容,形成反映计算思维特征的科学的知识体系、合理的知识结构;创新教学方法和教学模式;在大学计算机课程中探索计算思维能力培养,深入体现两化(专业化与信息化)融合、注重多学科渗透等,使大学计算机课程成为大学课程体系中最重要的基础课程之一。
  为什么在这个时候提出对于大学计算机课程的改革?为什么这次改革的“切入点”是计算思维?大体上有这么几个方面的原因:
  一是中国学生在计算和计算机理解方面的不足。当前计算机的应用已经遍及全社会,现代社会对于计算机应用水平的要求已经不仅仅限于计算机专业的学生,而是全社会成员都必须具有的基本素质,所有的大学生都必须具有对于计算机技术深度运用的能力。而恰恰在这一方面,中国与发达国家之间存在较大的差距。在这样的背景下,作为对于计算机应用能力的培养,仅仅掌握几项具体的应用技能是远远不够的,必须对于计算以及计算机科学的思维形式有较为深刻的理解,接受对于计算思维的严格培养,才能使得学生走向社会以后,具有很好的应用计算机解决问题的思维习惯,成为当下这个信息社会、大数据社会的合格公民。
  二是大学计算机课程的教学要反映前沿性和时代性。当前社会的发展,已经越来越多地依赖计算机作为分析和解决问题的工具,在这个过程中,最重要的不是如何解决问题的具体技巧,而是如何把问题转化成能够用计算机解决的形式,这正好是计算思维培养所强调的内容。学会使用计算思维的基本方法解决问题比起学会具体解决问题的技术,显然前者更加重要和基础。
  三是本世纪以来,信息科学继续在迅猛发展,在人文社会科学、自然科学的许多领域取得一系列革命性的突破,极大地改变了人们对于计算和计算机的认识。计算机已经不仅仅是一门工具,它的深刻知识内涵正在被当今社会的发展进一步揭示。学生接受计算机课程的培养已经不仅为了学会应用计算机,而是由此学会一种思维方式,这种思维方式对于学生从事任何事业都是终身受益的。因此作为一门课程的改革必须跟上时代的步伐,超前设计,科学谋划,缩短与发达国家在这方面的差距,这是时代赋予我们的改革任务。
  对于我国非计算机专业的学生计算思维素质方面的调查显示,从一般意义上讲,当前非计算机专业的计算机课程教学,技术方面的培养问题不是很大,学生在掌握具体的计算机技术方面有着很好的表现。但是对于影响计算机技术发展背后的思想和理论的了解相对比较匮乏。这造成当前在计算机应用方面的创新不足,在很多领域跟着国外的技术发展路线走,缺少原创性成果,更加缺乏引领技术发展潮流的能力。其原因还是在于计算思维方面的培养滞后,使得学生在面临具体问题需要解决时,擅长于用现成的技术手段而不是科学的思维方式来寻求解决问题的方案,这导致在解决问题的思路上习惯于沿用已有方法,缺乏具有革命性的突破。而以思维意识、思维方法培养为目标的改革,则是着眼于培养学生从实质上和全局上来建立对于问题的解决思路,从而达到计算机应用水平提高的目的。这样的例子并不鲜见,一些表面上看来不大可能用计算机来解决的问题,通过深刻的剖析,仍然可以实现通过计算机解决问题的途径,而且所取得的成果都是突破性和开创性的,这更加说明了计算无处不在这样一个社会真理。至于这种思维的名称是否叫做计算思维倒不重要,现在类似的观点也提出了其他的一些名称,例如构造思维、算法思维、程序思维、演化思维、网络思维等等,这些名词的内涵大同小异,区别不是很大。关键是这些思维培养的具体内容是什么。另一方面计算思维这个名称已经在国内外被广泛认同,其内涵也已经有了相对清晰的陈述,是表达这种体现计算机科学基本思维形式的被研究的最深入的概念。因此如无其他原因,计算思维这个名称应该是概括当前大学计算机课程改革恰当的名称。   二、改革的基础
  计算思维(Computational Thinking)概念的提出是计算机学科发展的自然产物。第一次明确使用这一概念的是美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授。她认为,计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为;计算思维最根本的内容,即其本质(Essence)是抽象(Abstraction)和自动化(Automation)。
  计算思维是人类科学思维活动固有的组成部分。人类在认识世界、改造世界过程中表现出了三种基本的思维特征:以实验和验证为特征的实证思维(以物理学科为代表)、以推理和演绎为特征的逻辑思维(以数学学科为代表)、以设计和构造为特征的计算思维(以计算机学科为代表)。随着计算机技术的发展及其广泛应用,更进一步强化了计算思维的意义和作用。
  计算思维概念的提出不仅反映了计算以及计算机科学在当前社会中重要作用的新认识,也反映了计算机学科最本质的特征和最核心的方法。是对于计算机学科的三个不同领域(理论、设计、实现)的概括和提炼。
  计算思维从基本层面探讨计算与计算机科学的一些核心的概念与内容,这在当前计算机技术快速发展的今天尤为重要。对于一门科学,如果要保持对于技术的指导和引领作用,不至于被技术绑架而失去方向,那么在概念上和理论上的创新是必须的。在我们广泛应用计算机解决问题,并且享受计算机科学给人类社会带来的进步与便利时,也需要经常的返本开新,不断关注计算机科学的原始宗旨和发展的方向,而计算思维正是这样一种理性思维的产物。例如下面一些问题就是计算思维的关注点:什么是计算?计算的本质是什么?什么样的抽象能够正确反映客观对象的本质?如何揭示一些看起来不同的对象背后共同的计算性质?如何实现计算全过程的自动化?如何评价计算产品的质量和安全性?
  这些问题既是计算机科学中带有本质意义的核心概念,又是计算机科学发展中的根本性问题。只有经常地来探索和推进这些问题的答案,才能使计算机技术沿着健康的路线发展。因此在大学计算机课程中讲授这些内容,对于培养未来计算机应用人才具有战略性的重要意义。
  2005年6月美国总统信息技术咨询委员会(PITAC)给美国总统提交了一份报告,即《计算科学:确保美国的竞争力》。2007年,CISE启动了旨在振兴美国计算教育的国家计划——CPATH(CISE Pathways to Revitalized Undergraduate Computing Education)。CPATH在于通过“计算思维”从根本上改变本科计算教育的内容。2008年美国国家科学基金会(NSF)启动了总经费为7500万美元的重大基金资助计划CDI(Cyber-Enable Discovery and Innovation)。CDI旨在使用计算思维(特别是在该领域产生的新思想、新方法)促进美国自然科学和工程技术领域产生革命性的成果。NSF认为“计算思维”正在复杂科学、工程研究以及教育等众多领域深刻地影响着美国国家的创新能力。NSF希望通过CDI计划使人们在科学与工程领域以及社会经济技术等领域的思维范式产生根本性的改变。
  2011年,NSF又启动了CE21(The Computing Education for the 21st Century)计划,该计划建立在CPATH成功的基础上,其目的是提高K-14(中小学和大学一、二年级)老师与学生的计算思维能力。NSF希望通过CDI等研究计划,使人们在科学与工程领域以及社会经济技术等领域的思维范式产生根本性的改变。基金会确信,这种思维范式的改变将会为美国产生更多的新的财富,并最终提高美国人民的生活质量。
  与此同时,国内几乎与国外同步地关注到计算思维的研究进展以及对于大学计算机教育带来的潜在影响。
  2007年11月,中国科学院自动化所副所长王飞跃教授撰写了《从计算思维到计算文化》等相关论文[3],对“计算思维”进行了分析。他呼吁给予“计算思维”相关研究经费的支持。
  2008年6月29日至7月14日,国家自然科学基金委员会组织了计算机科学代表团访问美国。回国后,基金委副主任孙家广院士等人分别撰写了文章,强调了计算思维的重要性。孙家广院士在《计算机科学的变革》一文中认为,计算思维是美国计算机科学界的一个最具基础性和长期性的思想[4]。
  教育部高等学校计算机基础课程教学指导委员会在陈国良院士的带领下,从2008年开始,组织了将近20场各种类型的专题研讨,以期提高国内计算思维领域的科学研究和计算机教育的水平。这些研讨从计算思维的基本概念出发,就哲学层面、科学层面以至于教学层面的表达形式进行了深入的讨论,逐步实现计算思维从一个哲学的表达体系,向教学表达体系的过渡。
  2010年,北京大学、清华大学、西安交通大学等9所“985工程”高校在西安召开了首届“九校联盟(C9)计算机基础课程研讨会”。会后发表了《九校联盟(C9)计算机基础教学发展战略联合声明》(以下简称《联合声明》)[5],达成4点共识:(1)计算机基础教学是培养大学生综合素质和创新能力不可或缺的重要环节,是培养复合型创新人才的重要组成部分;(2)旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务;(3)进一步确立计算机基础教学的基础地位,加强队伍和机制建设;(4)加强以计算思维能力培养为核心的计算机基础教学课程体系和教学内容的研究。
  在此基础上,进一步推进了教育部高教司设立以计算思维为切入点的大学计算机课程改革项目。该项目通过若干理论研究和19项教材建设,进一步丰富计算思维在大学计算机基础课程教学中的实践经验和教学理论。
  三、改革的内容
  当我们考虑以计算思维培养为导向的课程改革应该有什么内容时,需要放在一个历史、现状和未来发展的三维空间。我们生活在一个信息爆炸的社会,各种信息对于我们的生活已经产生越来越重要的影响,这一点在A.L.Barabasi所著的Bursts, The hidden pattern behind everything we do中有精辟的表述[6]。   生活在这样的时代,随着云计算、社会网络、物联网、普适计算、移动通讯这些新技术的迅速发展,使得人们去编制一个程序的任务将会被寻找一个程序的任务所替代。对于大多数人所从事的工作而言,理解问题,并在云平台上找到解决问题的工具,其现实意义可能会远远大于自己动手制作解决问题的工具。因此对于未来非计算机专业的人才来说,编写程序是否还是第一位的,知道计算机CPU的工作原理是否还是那么重要?在这样的时代背景下,究竟给学生讲什么,怎么讲,成为一个尖锐的问题再一次摆在了我们面前。这种情形在第二次计算机基础课程改革时也类似碰到过。21世纪初,也是由于计算机的广泛普及,社会对于计算机应用水平的要求,已经远远不是简单的技能方面的培养就可以满足了,从简单的会编写程序变成了对于计算机应用能力的提升。在这种背景下,通过计算机基础课程教学思想、教学目标以及教学模式的大范围改革,实现了由狭义的技能教育到能力培养教育的跨越。现在也是由于计算机技术发展的进一步飞跃以及进入以大数据和云计算为特征的信息社会,我们再一次面临由能力培养到思维培养的新的改革任务。这项改革的一个重要特征是:在非计算机专业的人才培养目标中,如何更好地实现专业化和信息化相融合的模式,提升未来社会对于计算机的理解和应用的整体水平。
  从以上的认识,我们可以对于这次改革的内容和目标做一些展望。从计算思维培养的角度,下面的一些内容无疑是首当其冲的:
  (1)正确理解计算与计算机;
  (2)通过建立模型揭示表象背后的核心问题,揭示不同现象之间的共同本质;
  (3)通过算法化的问题描述,把问题转化为计算机处理的形式;
  (4)通过问题计算化的处理方式,细化和深化问题的研究,提出可量化、可评测以及可验证的解决方案。
  这些问题促使我们对于现有的计算机课程的开设进行深刻的反省。我们将接受严峻的挑战:也许在新的教学过程中,理解一门技术比学会一门技术更重要;让学生学会从演化的角度,而不是静止的角度来看待问题和分析问题;引导学生面向问题时,养成建立模型的习惯,从本质和规律上把握问题的关键,而不是就事论事的寻求表面解决问题的方案;在使用计算机解决问题时,要习惯于资源(能源、时间、空间、带宽、体积、用户等)受约束条件下的解决方案,而不是一般的统而化之、不讲成本、不顾环境、不考虑用户体验地解决问题方式。这些无疑对于当前的教学观念和教学体系提出了新的要求,这就是这次改革需要重点关注的内容。以当下学生的一般水平而论,学会怎样做基本不是问题,问题出在解决问题的总体思路和方法体系上,也就是说,我们要加强对于学生使用计算机解决问题的基本思维和方法论方面培养,这才是当前教育所缺乏的内容。而具体怎么做,甚至可以作为学生的课外练习来训练。特别是当课堂教学时数有限时,讲什么和练什么更成为一门课程体系设计要考虑的内容。
  计算思维从理论与方法论的角度阐述有关计算和计算机最基本的特征和问题,学生如果能够从基本层面掌握这些内容,自然会对他们将来正确应用计算机解决问题产生本质上的影响。因此这次把大学计算机课程的改革概括为以计算思维培养为导向,正好反映了这次改革的基本内容和核心目标。
  四、教学体系的建设
  尽管我们对于计算思维培养说了很多,但是作为一项教学改革,光有理论的描述和概念的堆砌是远远不够的。关键是要建立起一个以计算思维培养为导向的教学体系,这才是这次改革的任务。
  关于计算思维是什么或者不是什么,关于计算思维在人类思维中的意义和作用,关于计算思维与计算机科学是什么关系,所有这些都是在哲学层面上的讨论,这些研究是基础的和重要的,在我们讨论计算思维教学体系时,首先要从哲学层面把这些概念弄清楚。但是这些内容不能自然成为教学体系的部分。作为一项教学改革,我们必须构建计算思维的教学体系。这项工作与在哲学层面上讨论计算思维是完全不同的。
  比如说,在计算思维的教学体系中,需要解决计算思维的基本内容如何表达,相关知识内容及其之间的关系。这些知识通过一堂一堂的课程给学生进行讲授,使得学生在持续的学习过程中,逐步理解和掌握计算思维的一些基本内容和方法。这个知识体系的建设十分重要,它是这次改革最重要、最基本,同时也是最复杂的任务。通过知识体系的建设,把有关计算思维的相关思维特征和方法分解到每一个具体的讲授内容。相对于具体的内容,讲什么、怎么讲、如何检查学习效果都是需要考虑的问题。比如说,我们经常说到,计算思维是:
  (1)一种选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;
  (2)按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法;
  (3)利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法;
  (4)利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折中的思维方法[7]。
  那么就需要设计出不同的讲授内容来阐述有关计算思维的特征。这些特征里面,有的适合于在算法课程讲,有些适合于在软件工程课程里讲,有的却适合于在人工智能课程或者数据库课程里讲。这些问题在一般讨论计算思维的理论时是不会碰到的,但是在具体设计计算思维培养教学体系时就是一个无法回避的问题。
  编写以计算思维能力培养为目标的教材,首先就是计算思维的表达体系与实现内容。那么在过去的计算机基础课程教材中,是否就没有体现计算思维的内容呢?实际上,计算思维是渗透在所有计算机教学内容中的,以前的教材没有从计算思维的角度来写,因此相关的内容没有明确提出来,计算思维的一些重要特征被分散到不同的部分。一些优秀的教师可以从这些内容的讲授中提炼出关于计算思维的精华部分,一些优秀的学生也可以在课程的学习中“悟”到属于计算思维的内容。一本普通的教材可以讲得很出彩,一门平凡的课程可以学得很精深,这些有赖于教师或者学生的状况。而从计算思维角度讲授的教材,则要把这些发生在优秀学生身上的现象,进一步普及化,成为大多数学生可以达到的境界。现代教育的一个任务就要把原本发生在少数精英身上的培养过程变成普通人能够成功的故事。所以说,计算思维的培养需要新的教材,但不是完全依赖教材,好的教师与好的教材同等重要。教材好,未必能够讲好;教材不好,也未必就讲不好。因此,对于计算思维的培养,不是说过去一点没有,一些学生通过“授之于鱼,得之于渔”的方式学到了计算思维的一些要领;而现在通过编写专门体现计算思维的教材,达到“借之于鱼,授之于渔”的教学目的。这是此次改革在教学方法上提出的新课题,也是此次改革在教材问题上的切入点、质疑点、创新点和难点。下面三本教材已经在国内很多学校使用:   Programming Language Pragmatics. M. Scott;
  Networks, Crowds, and Markets. D. Easley, J. Kleinberg,李晓明译;
  Algorithmics, The Spirit of Computing. D. Harel, Y. Feldman。
  它们的共同特点是,从整体角度对于所讲授的内容进行阐述、概括和比较,具有体现该领域基本思想和基本方法论的讲授特点。学生不仅可以学到相应的理论和技术,也能够较好地掌握推动这些技术发展背后的原因和动力,对于学生把握好本领域的计算机应用具有很好的启发作用。这样的教材值得我们借鉴。
  计算思维的培养并不排斥对于技巧和能力的培养,相反,它与技巧和能力培养呈现递进的关系,计算思维的培养是通过能力培养来实现的。根据浙江大学何钦铭教授的意见,将来对于计算思维的培养,在教材方面会出现三种模式:第一种是教材不变,讲授方式变化;第二种是教材进行修改和充实,形成新的突出计算思维内容的教材;第三种是编写全新的教材。
  在未来可能出现的新教材中,有一种编写方式值得探索,这就是颠覆现有的按照计算机学科的知识框架讲授计算机课程的模式,而是参照专业学科的知识框架来讲授计算机课程,通过精心编排的属于本专业的应用案例,来讲授这些应用中所反映的计算机科学的内容,这是一种全新的编写教材的思路。在这样的教材里,甚至不用插电就可以学习到计算思维中的主要内容。这在当前网络发达的学习型社会中,不仅不是天方夜谭,而是确确实实可以实现的新的学习方式。在上面推荐的三本教材中,第二本就是以这种方式讲授有关社会科学和经济学相关内容的,在这本教材里,完全脱离了一般的计算机教科书里面计算机组成原理、体系结构、程序语言、CPU工作原理、数据库与数据结构、网络与通讯等这些传统的讲授路线,而是以社会科学和经济学中的问题为案例,讲解这些问题是如何转变为计算机可以解决的形式。内容经过精选,都是一些经典问题,讲解是新颖的,只是重点讲授如何建立模型,提取算法,转化为计算机处理的形式,这种模式对于非计算机专业的学生提高计算机应用水平具有革命性的意义,十分需要在这次改革中进行尝试。目前国内已有北京大学和南京大学等若干所大学开设了类似的课程。
  大数据和云计算时代正在给人类社会带来一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程[8]。 这将为计算机更加广泛的应用和发挥更加重要的作用铺垫着新的基石。以计算思维培养为导向的计算机基础课程改革正是响应这场革命在教学领域中的召唤。我们的学生能够理解这些e-时代的新特征以及对于计算机科学新的应用模式的特点吗?编写教材是诠释这次改革的最好方式。我们期待着通过大胆而积极的探索,出现一批充满改革气息的全新的教材。推进我国计算机基础课程教学进入一个新的历史阶段。
  参考文献:
  [1] 冯博琴. 对于计算思维能力培养“落地”问题的探讨[J]. 中国大学教学,2012(9).
  [2] 教育部高等学校计算机基础课程教学指导委员会. 关于申报大学计算机课程改革项目的通知[Z]. 2012.
  [3] 王飞跃. 从计算思维到计算文化[N]. 科学时报,2007-10-11.
  [4] 孙家广. 计算机科学的变革[J]. 中国计算机学会通讯,2009,5(2).
  [5] 九校联盟(C9)计算机基础教学发展战略联合声明[J]. 中国大学教学,2010(9).
  [6] A. L. Barabasi. Bursts,the hidden pattern behind everything we do[M]. Publisher Penguin,2010.
  [7] [美]周以真. 计算思维[J]. 徐韵文,王飞跃译. 中国计算机学会通讯,2007(11).
  [8] 大数据时代来临[N]. 北京晚报,2012-06-15.
  [9] 陈国良,冯博琴,张龙. 抓住实施质量工程机遇,提高高校计算机基础教育水平[J]. 中国大学教学,2008(4).
  [10] 龚沛曾,杨志强. 大学计算机基础教学中的计算思维培养[J]. 中国大学教学,2012(5).
  [责任编辑:余大品]
转载注明来源:https://www.xzbu.com/9/view-4151276.htm