计算思维驱动下的大学计算机基础教育探究
2014-01-26杨松涛杨旭华王斌
杨松涛+杨旭华+王斌
摘 要:当前在计算机基础教育中忽视了计算机学科的重要方面——计算思维,导致出现“计算机只是工具”的错误观点,淡化了计算机科学的意义。从计算思维的本质出发,分析了计算思维的培养策略,并提出了计算思维驱动下的大学计算机基础教育课程改革的路径及需要进一步解决的问题。
关键词:计算思维;计算机基础教育;大学
中图分类号:G642.3 文献标识码:A 文章编号:1002-4107(2014)03-0039-03
先秦著名思想家孔子最早提出了学思结合的观点“学而不思则罔,思而不学则殆”。一般意义上讲,教育一直主张“学思结合”,追求两极之间的平衡。然而,在实践中,学习与思考又存在张力,存在各种各样的矛盾、冲突和纠葛。创新是大学教育的宗旨,也是大学发展的灵魂,创新和实践是社会发展的原动力,创新才有发展,实践才能出真知。创新教育需要科学思维方式的指导,复合型的知识结构、科学的思维方式以及勇于探索的精神是高素质创新人才的基本素质。
从古代的算盘到近代的计算机,甚至目前的互联网和云计算,计算思维无处不在。2010年的首届“九校联盟计算机基础课程研讨会”将培养学生的“计算思维”能力作为计算机基础教学中的关键内容[1]。《计算机科学的变革》中提出了计算思维是计算机科学中具有基础性和长期性的思想[2]。2011年,陈国良院士分析了教学中存在的问题,指出了“狭义工具论”的危害[3]。《论计算思维》一文指出学科交叉创新的一条根本路径是计算思维创新[4]。因此,大学生的计算思维素养有利于培养其发明和创新能力及其思维方法、表达形式和行为习惯,同时大学生学会用计算思维去思考问题和解决问题,对提升计算机教育水平、提高科研能力和培养卓越人才具有重要的意义。
根据高德纳(Knuth)在《The Art of Computer Programming》文中的观点,算法和计算机程序概念的产生为我们提供了一块试金石,用以考察对每一门学科理解的深度。算法思想就是指按照一定的步骤,一步一步去解决某个问题的程序化思想。然而,过分强调算法思想导致了“简单、机械工具论”的错误观点,许多人认为教授计算机基础知识的主要动机是提高人们使用计算机设备的技能,甚至有些人质疑计算机科学是否能够称之为真正的科学,计算机教育及就业面临前所未有的危机。面对质疑,教育工作者有必要重新思考教学模式的改革,进而引发了以下问题的探索:计算机教育的核心价值是什么?如何培养科学的思维能力?如何运用科学思维分析和解决问题?
一、计算思维的本质
1936年图灵(Alan Turing)的经典文章《On Comput-
able Numbers,with an application to the Entscheidungspro-
blem》界定了可计算函数。图灵的分析为理解古代计算技术提供了一种独到而深刻的见解,计算的概念远不止于算数和代数计算,其更多的是可以指一种处理事物的规则。计算机的出现催生了智能化的思维方式,借助判断和推理反映客观现实的理性认识过程的逻辑思维、具备抽象化和自动化特征的计算思维和以观察和归纳自然规律为特征的实证思维一起构成了人类的三大科学思维方式。目前,计算思维是什么?它有什么作用?对大学教育有多大的影响?研究者对这些问题的看法存在分歧,有些问题还需要进一步商榷。
(一) 计算思维概念的内涵
计算思维是一种新颖的思维方式,有助于培养人们的抽象思维和逻辑思维以及解决问题的能力。Jeannette Wing认为计算思维贯穿于所有学科并被广泛应用,并且在计算机权威杂志《Communication of the ACM》上发表文章定义了计算思维(Computational Thinking)[5]。李廉教授认为计算思维具有形式化、程序化和机械化特征,有限性、确定性和机械性标志使计算思维区别于实证思维和逻辑思维[6]。理查德·卡普(Richard M. Karp)教授提出的“计算透镜”(Computational Lens)理念,将计算作为一种通用的思维方式,通过这种广义的计算来描述各类自然过程和社会过程,从而解决各个学科的问题[7]。
计算思维的概念在细节方面还存在着不同的见解,许多研究者对计算思维进行深入分析,得出大量新的认识。丹宁(Denning)指出计算思维不是一个新事物,它一直蕴涵在许多学科中。但是,我们可以从全新的角度审视计算思维的概念[8]。计算思维纠正了计算机科学等同于计算机编程,但是,我们不能狭义地认为计算思维等于计算机科学。许多人特别关注计算思维驱动下能否深层次地解决问题,特别在数学基础不强的领域。
(二)计算思维的特征
1.概念化而不是程序化。面对大的、难以解决的问题,应用计算思维简化、分解的方法将其变成小的、容易的问题去解决。它意味着计算机编程不代表全部的计算机科学,需要分层次、多角度思考。
2.根本的、能够灵活运用的技能。计算思维不是刻板的或简单的机械重复,它允许问题可以通过计算机来解决。计算思维是每个知识领域的学生必须掌握的基本技能。
3.人的思维而不是计算机的思维。通过计算思维解决问题包含规则的方法描述问题,以便于计算机处理。因此,计算思维不是问题的简单约简,也不是简单地模拟计算机处理进程。计算思维有助于问题的求解,同时不需要人类像计算机一样去思考。
4.数学和工程思维的互补与融合。计算科学贯穿于自然科学、工程学和数学的发展历程,计算机启发式软件及模型的设计和开发明显属于工程学范畴,同时基于数学的符号化表示是算法复杂度和数字分析的基础。
5.人类的思想而不是人造物。计算思维不是开发软件和生产硬件的途径,它是日常生活中解决问题的基础性概念。
6.面向所有的人和物。计算思维是普遍存在的,能够被任何人在任何场合使用。endprint
二、大学生计算思维能力的培养策略
计算思维的培养是培养学生面向学科的思维能力,使学生领会学科的力量和从事本学科的价值所在,能够以类似于数学的严谨方式将学生引入计算科学各个富有挑战性的领域之中。计算思维意识、方法和能力三个方面构成其基本内容。计算思维的培养是潜意识思维到有意识思维的转换过程。
(一)计算思维意识的形成
计算思维意识是内在的,而不是外在的,是每个人都具备的基本技能,不仅仅属于计算机科学家。计算思维的正确使用能够潜移默化地促进无意识的计算思维向有意识的计算思维发展,逐渐培养出计算思维的能力,并能够主动应用到具体问题中。计算思维意识是思维过程的计算模拟,其核心是让计算具有思维特征。计算思维意识的形成是通过对人脑思维规律的认识和分析,建立与人脑思维模式相近的计算方法。计算方法在实践中的应用促进我们对思维规律的重新认识。对人脑思维规律认识得越深刻,计算方法也越有效。如我们能够清楚地识别自己的家人和朋友的过程是潜意识完成的,我们很难解释是如何做到的,没有意识到我们所具备的这种技能。但是,研究表明通过提取某个人脸部图像的多个采样,计算机程序可以计算出一些个人特有的模式,这些特征方便了图像的识别和区分。无论人还是计算机完成这项工作都经历计算的过程,只不过人们没有认识到而已。
(二)计算思维方法的训练
由于计算机的发展极大地促进了构造思维的研究和应用,所以在计算机科学的研究和工程应用中计算思维近似等同于构造思维。构造性思维体现了数学中发现、类比、化归的思想,构造法渗透着猜想、试验、概括等数学方法,是富有创造性的一种方法。根据Jeannette Wing等人的定义,计算思维通常采用化归思想,即当我们面对一个新问题时,通过分析、不断地转化和转换,得到本质相同且抽象的、简单的一个问题,将初始复杂的问题化归为理想化的简单模型予以解决。
计算思维方法符合奥卡姆剃刀(Occams Razor)定律“如无必要,勿增实体”,奥卡姆剃刀以结果为导向,始终追寻高效简洁的方法。许多科学家都表示自然规律是简单的,科学寻找的就是对自然界的经济和吝啬的表示。牛顿提出的一个原则:如果某一原因既真又足以解释自然事物的特性,则我们不应当接受比这更多的原因。爱因斯坦的一句著名的格言:万事万物应该都应尽可能简洁,但不能过于简单。这些理论启示我们在处理事情时,要把握事情的本质,解决最根本的问题。尤其要顺应自然,不要把事情人为地复杂化,这样才能把事情处理好。如果将这些理念与中国儒家的《中庸》思想结合起来,那么会使我们的行为更趋于完美。
(三)计算思维能力的提升
计算思维能力是逻辑分析能力、抽象思维能力和形式化描述能力,其核心是如何让思维具有计算特征。计算机基础教学应该培养学生三种基于计算思维的能力:认知能力、学习能力和决策能力。认知能力是对计算环境的感知能力。认知是一组活动,包括感觉、知觉、记忆、思维、判断、学习、决策、行动等等。认知是以感知为基础对外部环境和自身状态进行记忆、推理、学习的一个反馈过程。计算机的认知能力是具有判断和选择计算工具与方法的能力。大学计算机基础、计算机导论等基础课程应该从培养学生科学认知能力出发,强调思维的训练而不是具体实现。
学习能力指熟练掌握与运用计算机理论,有效地获取、分析、评价和吸收知识的能力。计算机教学培养目标的实现不能仅仅依靠课堂上的学习,而是需要不断开展教学方法和手段的改革,鼓励自主学习、探索式学习和强化团队合作、实践教学。
决策能力是在有意识的科学思维指导下,合理、正确地求解问题的能力。基于计算思维决策能力体现在以下方面:给定一个问题,能够理解其哪些方面是可以计算的;能够对需要解决的问题选择合适的表述方式,或者是建立合适的数学模型,使问题变得易于处理;能够对计算工具或技术与需要解决的问题之间的匹配程度进行评估,能够理解解决这个问题有多么困难,怎样才是最佳的解决方法,能够在任何领域应用诸如分而治之等计算策略。
三、大学计算机基础课程结构改革的路径
大学计算机基础课程是根据教育部高等学校计算机基础课程教学指导委员会提出的“1+X”课程设置方案开设的第一门计算机基础课程。由于缺乏先进的思维理念的指导,许多学校的第一门计算机基础课程的设计和教学出现了问题:(1)大量教材的内容是计算机专业课
程的简介内容,缺乏计算机基础知识阐述的系统性和连贯性,违背了培养学生科学认知能力的基本规律。(2)传统的教学模式,对课程中的很多概念、命令、人机交互的内容,在课堂上教师很难讲解,讲授知识局限在讲、写,表达形式单一,学生感到抽象、枯燥无味,得不到感性的认识,不能有效地调动学生的积极性,严重影响教学质量。(3)过分地强调在实践中创新,致使学生参加课外科技活动的人数呈逐年上升趋势,但是活动多是以各类竞赛为中心,片面追求成绩。多数学生创新的产品是在短期内突击完成的,研究浮于表面,无法深入开展,对项目研究和能力的培养都是不利的。
本文探讨的基于计算思维的大学计算机基础教学,大学计算机基础课程内容可分为科学思维、计算理论和计算机基础理论三个部分。
(一) 科学思维
计算思维是一种科学思维,与逻辑思维和实证思维一起构成了人类的三大思维方式。理论分析可以形式化待解决的问题,实验验证具体解决了问题,问题解决过程中一直伴随着计算。计算机模拟起到了理论与实验相结合的纽带作用。计算思维既不是纯粹数学式的抽象思维,也不是计算机式的机械思维,计算思维是可实现的思维,思维的每一环节需要理论思维的指导,基础理论贯穿于整个思维过程,而且思维结果是可以实验验证的。本部分的核心思想是从培养学生的科学认知能力出发,让学生了解学科发展,让学生理解计算科学和计算机科学的内涵;认知计算思维的主要研究内容、主要特征对其他学科的影响。endprint
(二)计算理论
计算理论的内容主要包括两个方面:第一个方面是研究可计算性(computability)理论,即研究哪些问题是可以计算的,哪些问题是不可以计算的;另一方面是研究计算复杂性(computational complexity),计算复杂性理论的学习有利于学生正确认识计算机本身固有的计算能力和计算范围的局限性,有助于培养学生对科学的认知态度,消除一些错误的观念。本部分对冯·诺依曼结构和图灵机模型进行简明扼要地阐述,展示计算之美。让学生了解以“合理抽象、高效实现”为特征的构造过程。
(三)计算机基础理论
本部分采用问题驱动式的教学方法,从计算思维的角度来讲解计算机基础概念和原理知识,从而培养计算思维意识,锻炼计算思维能力。例如:网络编程类问题作为问题求解的实例,如图1所示。初学者不需要融会贯通地理解深奥的原理和记忆复杂的符号。他们仅需要学会如何分析问题求解的逻辑关系、准确清晰地描述问题。具体的实现由后续课程来完成。
四、展望
信息时代中,计算思维普遍存在于人们的职业生涯和日常生活中。计算思维是指导计算机技术发展的科学思维,但是,合理地将其引入大学计算机基础课程中是挑战性问题。对于计算机专业的学生,主要问题不在于思考如何计算,而是通晓课程的本质,如何形式化描述这些计算,这样的描述如何在冯·诺伊曼结构机器上执行。对非计算机专业的学生,计算思维的培养有利于他们充分了解计算机的用途和局限性。本文从计算思维的本质、培养两个方面进行了阐述,并且结合大学计算机基础教学的现状提出了新的课程建设方案。将“计算思维”引入计算机基础教学中,是教学改革的新挑战,更是新机遇。我们应当加强计算思维意识的培养,增强运用计算思维的能力,使计算思维成为当代大学生的基本技能。
计算思维的研究方兴未艾,还有许多方面值得进一步探讨:(1)多学科交叉的研究中,如何提炼共性问题,使用计算思维思想加以解决;(2)分析创新思维和计算思维的辩证关系,探讨如何利用计算思维加速科学技术的创新;(3)计算思维不能仅限于理论概念的阐述,而是真正应用到实践中,衍生出新技术和新方法。
参考文献:
[1]何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是
计算思维能力的培养——《九校联盟(C9)计算机基础教
学发展战略联合声明》解读[J].中国大学教学,2010,
(9).
[2]孙家广.计算机科学的变革[J].中国计算机学会通讯,
2009,(2).
[3]陈国良,董荣胜.计算思维与大学计算机基础教育[J].
中国大学教学,2011,(1).
[4]朱亚宗.论计算思维——计算思维的科学定位、基本原
理及创新路径[J].计算机科学,2009,(4).
[5]Wing J.M.Computational Thinking [J].Communica-
tion of the ACM,2006,(3).
[6]李廉.计算思维——概念与挑战[J].中国大学教学,
2012,(1).
[7]Richard M.Karp.Understanding science through
the computational lens[J].Journal of Computer
Science & Technology,2011,(4).
[8]Denning P.J.The profession of IT:Beyond compu-
tational thinking[J].Communications of the ACM,
2009,(6).endprint
(二)计算理论
计算理论的内容主要包括两个方面:第一个方面是研究可计算性(computability)理论,即研究哪些问题是可以计算的,哪些问题是不可以计算的;另一方面是研究计算复杂性(computational complexity),计算复杂性理论的学习有利于学生正确认识计算机本身固有的计算能力和计算范围的局限性,有助于培养学生对科学的认知态度,消除一些错误的观念。本部分对冯·诺依曼结构和图灵机模型进行简明扼要地阐述,展示计算之美。让学生了解以“合理抽象、高效实现”为特征的构造过程。
(三)计算机基础理论
本部分采用问题驱动式的教学方法,从计算思维的角度来讲解计算机基础概念和原理知识,从而培养计算思维意识,锻炼计算思维能力。例如:网络编程类问题作为问题求解的实例,如图1所示。初学者不需要融会贯通地理解深奥的原理和记忆复杂的符号。他们仅需要学会如何分析问题求解的逻辑关系、准确清晰地描述问题。具体的实现由后续课程来完成。
四、展望
信息时代中,计算思维普遍存在于人们的职业生涯和日常生活中。计算思维是指导计算机技术发展的科学思维,但是,合理地将其引入大学计算机基础课程中是挑战性问题。对于计算机专业的学生,主要问题不在于思考如何计算,而是通晓课程的本质,如何形式化描述这些计算,这样的描述如何在冯·诺伊曼结构机器上执行。对非计算机专业的学生,计算思维的培养有利于他们充分了解计算机的用途和局限性。本文从计算思维的本质、培养两个方面进行了阐述,并且结合大学计算机基础教学的现状提出了新的课程建设方案。将“计算思维”引入计算机基础教学中,是教学改革的新挑战,更是新机遇。我们应当加强计算思维意识的培养,增强运用计算思维的能力,使计算思维成为当代大学生的基本技能。
计算思维的研究方兴未艾,还有许多方面值得进一步探讨:(1)多学科交叉的研究中,如何提炼共性问题,使用计算思维思想加以解决;(2)分析创新思维和计算思维的辩证关系,探讨如何利用计算思维加速科学技术的创新;(3)计算思维不能仅限于理论概念的阐述,而是真正应用到实践中,衍生出新技术和新方法。
参考文献:
[1]何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是
计算思维能力的培养——《九校联盟(C9)计算机基础教
学发展战略联合声明》解读[J].中国大学教学,2010,
(9).
[2]孙家广.计算机科学的变革[J].中国计算机学会通讯,
2009,(2).
[3]陈国良,董荣胜.计算思维与大学计算机基础教育[J].
中国大学教学,2011,(1).
[4]朱亚宗.论计算思维——计算思维的科学定位、基本原
理及创新路径[J].计算机科学,2009,(4).
[5]Wing J.M.Computational Thinking [J].Communica-
tion of the ACM,2006,(3).
[6]李廉.计算思维——概念与挑战[J].中国大学教学,
2012,(1).
[7]Richard M.Karp.Understanding science through
the computational lens[J].Journal of Computer
Science & Technology,2011,(4).
[8]Denning P.J.The profession of IT:Beyond compu-
tational thinking[J].Communications of the ACM,
2009,(6).endprint
(二)计算理论
计算理论的内容主要包括两个方面:第一个方面是研究可计算性(computability)理论,即研究哪些问题是可以计算的,哪些问题是不可以计算的;另一方面是研究计算复杂性(computational complexity),计算复杂性理论的学习有利于学生正确认识计算机本身固有的计算能力和计算范围的局限性,有助于培养学生对科学的认知态度,消除一些错误的观念。本部分对冯·诺依曼结构和图灵机模型进行简明扼要地阐述,展示计算之美。让学生了解以“合理抽象、高效实现”为特征的构造过程。
(三)计算机基础理论
本部分采用问题驱动式的教学方法,从计算思维的角度来讲解计算机基础概念和原理知识,从而培养计算思维意识,锻炼计算思维能力。例如:网络编程类问题作为问题求解的实例,如图1所示。初学者不需要融会贯通地理解深奥的原理和记忆复杂的符号。他们仅需要学会如何分析问题求解的逻辑关系、准确清晰地描述问题。具体的实现由后续课程来完成。
四、展望
信息时代中,计算思维普遍存在于人们的职业生涯和日常生活中。计算思维是指导计算机技术发展的科学思维,但是,合理地将其引入大学计算机基础课程中是挑战性问题。对于计算机专业的学生,主要问题不在于思考如何计算,而是通晓课程的本质,如何形式化描述这些计算,这样的描述如何在冯·诺伊曼结构机器上执行。对非计算机专业的学生,计算思维的培养有利于他们充分了解计算机的用途和局限性。本文从计算思维的本质、培养两个方面进行了阐述,并且结合大学计算机基础教学的现状提出了新的课程建设方案。将“计算思维”引入计算机基础教学中,是教学改革的新挑战,更是新机遇。我们应当加强计算思维意识的培养,增强运用计算思维的能力,使计算思维成为当代大学生的基本技能。
计算思维的研究方兴未艾,还有许多方面值得进一步探讨:(1)多学科交叉的研究中,如何提炼共性问题,使用计算思维思想加以解决;(2)分析创新思维和计算思维的辩证关系,探讨如何利用计算思维加速科学技术的创新;(3)计算思维不能仅限于理论概念的阐述,而是真正应用到实践中,衍生出新技术和新方法。
参考文献:
[1]何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是
计算思维能力的培养——《九校联盟(C9)计算机基础教
学发展战略联合声明》解读[J].中国大学教学,2010,
(9).
[2]孙家广.计算机科学的变革[J].中国计算机学会通讯,
2009,(2).
[3]陈国良,董荣胜.计算思维与大学计算机基础教育[J].
中国大学教学,2011,(1).
[4]朱亚宗.论计算思维——计算思维的科学定位、基本原
理及创新路径[J].计算机科学,2009,(4).
[5]Wing J.M.Computational Thinking [J].Communica-
tion of the ACM,2006,(3).
[6]李廉.计算思维——概念与挑战[J].中国大学教学,
2012,(1).
[7]Richard M.Karp.Understanding science through
the computational lens[J].Journal of Computer
Science & Technology,2011,(4).
[8]Denning P.J.The profession of IT:Beyond compu-
tational thinking[J].Communications of the ACM,
2009,(6).endprint