对计算思维能力养成与大学计算机基础课程改革的思考
期次:第1913期
计算思维,这个颇具时代特征的名词,正在被越来越多的人们所熟悉与关注。可以说,它已经成为当代大学生一种必备的能力。今秋开学初,校教学督导委员会对此专门组织了一个研讨会,就计算思维能力的培养和大学计算机基础课程改革等问题进行了研究与讨论,进一步明确了计算思维能力的培养途径,分析了大学计算机基础课程在能力培养中的重要作用及存在的问题。
一、“计算思维”的出笼
随着计算机技术的飞速发展与IT时代的到来,计算机已经溶入了人们的生活与工作之中。当今社会如果离开了计算机,很难想象会变成什么样子。计算机不仅成了人们有用的工具,得力的助手,亲密的朋友,而且在影响着人们的思维方式,心理及行为。它的作用在计算思维这个名词出现之前就突显出来了。
2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真教授著文给出并定义了计算思维(Computational Thinking)。她认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。这个定义包含了以下三个含义:
(一)计算思维是一种人类的思维活动,是人类应具有的一种能力。
(二)它是基于计算机科学的一种思维活动。它以计算机为工具,但又不只限于计算机本身而是涵盖整个计算机科学领域的。
(三)它的应用范围广泛,包括问题的求解,系统的设计和人类行为的理解等。
个人认为:计算思维是人类所拥有的运用计算机科学理论、方式方法和以计算机作为工具来解决科学研究、工程实践及社会生活中的各类问题的思维能力(或技能)。计算思维首先是计算机科学家的思维,同时也是全人类的思维。
二、计算思维的特点
计算思维概括起来有以下三个特点,通过对其特点的介绍,有助于我们对其含义的进一步理解。
(一)计算思维吸取了问题求解所用的一般数学思维方式,颠覆了现实世界中巨大复杂系统设计与评估的一般工程思维方法和复杂性、心理、人类行为的理解等一般科学思维方法。可见,它不是凭空产生的,而是对先行思维方法的继承与发展。同时,它又不同于前者。计算思维还能回答能解决什么和不能解决什么的问题(即可计算性与计算复杂性),以及对计算资源的选择与调度等问题。
(二)计算思维建立在计算过程的能力和限制之上,由人和机器执行。计算方法和模型使我们敢于处理那些原本无法由个人独立完成的问题求解和系统设计。可见,计算思维能力使人们具备应对复杂问题挑战的本领。它的有力武器便是计算方法与模型。
(三)计算思维最根本的内容是抽象和自动化。计算思维中的抽象完全超越物理的时空观,以致完全用符号来表示(01代码)。它与数学的与物理的抽象相比,计算思维的抽象更为丰富,也更为复杂。
数学抽象的最大特点是抛开现实事物的物理化学特性和生物学特征,而仅保留某量的关系和空间的形式。而计算思维中的抽象却不仅仅如此,它给出了系统层次关系的描述;它给出了系统复杂度的分析与描述;它还给出了解决该问题的资源需求与约束的分析。可见,计算思维的抽象能力有助于复杂大系统的问题求解。
三、计算思维的应用
当今社会要求人们具备四大基本解析能力:阅读能力、写作能力、算求计算能力和计算思维能力。计算思维能力已经成为当今社会每个人的基本技能,它不再仅仅是计算机科学家们的专利。那么,怎样运用计算思维来解决问题呢?
(一)解决该问题有多难
首先应该思考的问题是所拥有的计算机能否解决这个问题,即你的计算资源够用否?要进行时间复杂度及空间复杂度的分析、计算资源的选择与调度等,即首先解决资源问题。
(二)最佳方法的选择
针对具体要解决的问题,选择合适的模型、方法、软件工具与资源调度策略等。
(三)计算精度的确定
解决问题的方法选定后,还要决定的是精度。一个近似的解是否就足够了?这就要给出选代深度的控制,人们总要在精度选代次数与计算成本之间找出一个平衡点。
此外,在解决问题的过程中,还需要回答另外的一些问题,例如,你所设计的系统允许误报、漏报、带病工作吗?我们不是要求所有的系统都是高可靠的、一尘不染的。采用三容技术(容侵、容笑、容错)的系统更现实、更实用、更经济。当然,具体问题还是要具体分析。
运用计算思维到底能带来什么好处呢?简单地说,它可以通过约简、嵌入、转化和仿真等方法,将一个看来困难的问题重新阐释成一个我们知道怎样解决的问题,并交给相应的计算机系统去完成。于是,人们解决问题的能力就增强了。
四、需要澄清的几个问题
通过上面的介绍,我们基本上了解了计算思维的含义、特点及运用计算思维的过程和带来的好处。在这里仍然需要澄清几个问题,以期对其有更加深入的理解。
(一)概念化而不是程序化
计算思维是能够在抽象的多个层次上的思维,而不仅仅是计算机编程。编程实现的是计算思维中的一个内容,但它还包含有抽象与建模、算法选择、资源选择与调度、优化与评估、模拟与仿真等诸多的内容。只会编制程序并不能代表你已具有计算思维能力了。
(二)计算思维是人类的思维,而不是机械的重复
计算思维是人类求解问题的一条途径,是每个人为了在现代化社会中发挥职能所必须掌握的技能。计算机归根结底只是支持它的一种工具而已。
(三)计算思维是数学和工程思维的互补与融合
我们知道,计算机在本质上源自数学思维,其形式化的基础是数学,同时,它又从本质上源自工程思维。因为基本计算设备的限制迫使计算机科学家必须计算性地思考,而非只是数学性思考。
(四)计算思维是一种“思想”,而不是人造物
计算思维指的是人们解决实际问题的一种全新思维方式和能力,是用以接近和求解问题、管理生活、与人交流和互动的计算概念,而不是指计算机本身或是人们设计的另外的什么系统。
(五)计算思维面向所有的人、所有的地方
计算思维能力的培养要面对所有的人,它的应用也是无处不在的。本文讨论的主要对象是针对在读的大学生,决不意味着只是面向这个群体。
五、对大学计算机基础课程的思考
目前,培养计算思维能力的主要途径是开设“大学计算机基础”课程,该课已列入2009版培养方案,面向全校各类学科的本科生。问题是该课程的教学内容是否能够完成这一重任?从前面的讨论可以看出,计算思维能力的养成,起码要使人们具备6个方面的知识,分别是:计算机的组成、系统的抽象与建模、算法与数据结构、系统的仿真与评估、高级语言编程、就是资源的配置与调度。
我们欣喜地发现,新版教科书已经不再仅仅教授编程,也加入了算法与数据结构等内容。但所涵盖的知识点还是远远不够,现有教材与培养目标之间仍存在一定差距。
当然,要全面培养学生的计算思维能力,单靠一两门课是不行的,它是一个复杂的、系统的教育过程,需要一个完整的课程体系来支撑。然而,大学本科阶段又不可能拿出更多的课时完成这样的培训。因此,如何建设更加完备的计算机基础课程体系和教学内容的任务就历史地落在了计算机科学家和相关专业教师的肩上。
为了担负起这个重任,作为从事计算机基础教育的教师,首先要加深对计算机思维的认识,树立将培养学生的“计算机思维”能力作为计算机基础教学核心任务的观念。从这一高度出发来审视现行教材和教法,指导对课程的建设和改革。既要保证教好大学计算机基础课,又要继续开展研究工作,归纳课程的知识点、课程内容,对合用教材的编写、相关实验的设计及教学方法等进行深入探索。
目前,国内有的高校已经着手编写“计算思维导论”等相关教材,新版的“大学计算机基础”也将陆续面世,本课程教学的许多新的研究成果也将不断推出。