计算思维

2015-09-10 07:22马秀麟邬彤刘立超
中国教育信息化·基础教育 2015年1期
关键词:思维能力培养计算思维

马秀麟 邬彤 刘立超

摘 要:随着计算机科学的普及,计算思维成为科学思维的重要形式之一,对计算机思维能力培养的探索也日益受到教育者的重视。本文从计算思维的要素和内涵入手,利用文献分析和行动研究的方法对信息技术基础课中所蕴含的计算思维规律进行了归纳,从计算思维的视角对信息技术基础课教学中应该重点培养的思维能力展开分析,明确了6个维度的培养内容。最后,结合北师大信息技术基础课的教学实践,探讨了计算思维能力培养的有效模式。

关键词: 计算思维;思维能力培养;信息技术基础课

中图分类号:G434 文献标志码:A 文章编号:1673-8454(2015)02-0022-04

随着计算机和网络应用的普及,计算机科学对许多学科都产生了重要影响,基于计算机科学的思维方式以其独特的视角和特殊的操作方式,开拓了学科视野,为学科发展提供了新的研究方法,促进了学科的快速发展,甚至通过与其他学科的交叉,催生了多门新生学科。[1]正是在这一历史条件下,计算思维作为一个独立的概念被提出来。自从2010 年8 月中国9 所高校发表了《九校联盟(C9)计算机基础教学发展战略联合声明》以来,[2]在我国高校掀起了新一轮信息技术基础课教学改革热潮,多所研究型大学围绕着计算思维启动了对大学计算机课程的教学改革。目前,如何培养学生的计算思维能力,促进学生从计算思维的视角去思考问题和解决专业问题,已经成为大学计算机教学的重要研究课题。

一、计算思维的概念及其对人才培养的价值

1.计算思维概念的提出

计算机科学是一个新兴的学科,从理论上的图灵机到现在的计算机还不足百年,但其对各个学科的普遍方法论意义绝不低于其自身的工具性意义。计算机科学对人类最大的贡献就在于它能够在生产、工作、学习和生活中,影响人们的行动、思想和方法。实现这种意愿的思想基础绝不是狭隘的工具论,也不是单纯的技术主义,而是从思维模式的层次影响着人们的解题方法。计算机科学的方法论价值,促使人们重新思考计算机在科研、教育、生活和娱乐领域的作用,促成了“计算思维”概念的提出。国际上广泛认同的计算思维定义来自美国卡内基·梅隆大学的周以真(Jeannette Wing)教授。她认为:计算思维是运用计算机科学的基础概念和方式进行“问题求解、系统设计,以及人类行为理解”的一系列思维活动。计算思维的本质是抽象和自动化,它包括了涵盖计算机科学之广度的一系列思维活动。[3]

2.计算思维的方法论价值及其对人才培养的意义

计算机科学与其他学科最大的不同就是突破了学科范式的限制,渗透到了各个学科乃至于推向其前沿,形成了一套有效的思维模式——计算思维,促使学科走向范式多元化,因此,没有哪个学科有如此广泛的研究领域和实践范畴。衷克定教授指出:①计算思维拓展了其他学科的研究方法体系;②计算思维丰富和深化了其他学科的研究范畴;③计算思维改变了各个学科的发展模式。[4]总之,计算思维改变了很多学科的发展模式,促使学科向更高的抽象化、更强的計算化方向发展。学生的计算思维能力水平将对他们从事科研的能力、适应社会的能力具有重要影响。

二、从人才培养的视角探讨计算思维能力培养的关键内容

陈国良教授认为,当计算思维真正融入人类活动的整体时,它作为一个问题解决的有效工具,人人都应当掌握,处处都会被使用。[5]计算机科学的方法论属性和计算思维概念的提出,使人们重新反思当前信息技术教育的教学目标、策略和方法,如何把计算思维的理念融合到当前的信息技术教育活动中,已经成为计算机基础课和信息技术教育的重要内容。

然而,计算思维的概念和内容博大精深,在当前信息技术基础课教学中,应该把哪些内容列入思维能力培养的教学计划呢?分析计算思维的概念及其内涵,结合北京师范大学信息技术基础课教学的实践,笔者认为:大学阶段的信息技术基础课教学应着重在以下6个方面培养学生的计算思维意识和计算思维能力。

1.培养学生的逻辑思维能力,形成严谨的逻辑思维习惯

计算机科学中的程序设计、算法以逻辑结构严谨而著称,对于培养学生严谨的逻辑思维能力、养成良好的思维习惯都具有重要意义。对于计算机程序语言类课程的教学,从技能培养的角度,只是教会学生编写程序即可。然而,从能力培养的角度,则不仅要教会学生编写程序,更要教会学生学会评价程序、优化程序;而从计算思维的角度,则更要求学生学会根据所要解决的问题,确定解题算法;然后再选择一个适当的程序语言作为描述工具,并以现成的语言解决现实问题。在这个过程中,学生选择哪个程序语言并不重要,其关键在于学生所选用的算法及解题思路,它反映了其逻辑思维能力的水平。

2.突破传统教育形成的思维定势,鼓励朴素的、发散的思维模式

计算思维对很多问题的解决都提出了不同于以往的新模式。许多在传统观念中认为低效、不可行的策略,在计算思维体系中都重新焕发了其生命力。这就要求人们在组织教学活动时,允许学生突破在传统教育中形成的思维定势,鼓励学生以朴素的、发散的思维模式去解决实际问题。同时,也要求教育工作者重新审视在传统教育中已经被否定的一些理念和方法,以一种新的思维视角来重新考量思维习惯和思维模式。

事实上,计算科学为一些传统的无解问题提供了很好的解决方法。这些问题的解决,都是借助计算机工具,以计算思维的相关理论为指导,另辟蹊径,从一个新的视角展开求证,最后取得了满意的成果。

3.培养学生的迭代法思维模式,鼓励学生借助迭代法解决实际问题

迭代是数值分析中从一个初始的估计值出发,通过寻找一系列近似解来逐步逼近问题真正解的过程,为实现这一过程所使用的方法统称为迭代法。迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令时,都能从变量的前一值推出它的一个新值。通过新值的逐级收敛,达到逼近问题真正解的最终目的。

4.培养学生掌握递归的思维模式,鼓励学生以递归的思路解决现实问题

在计算机中,递归算法是一种直接或者间接地调用自身算法的过程,其目标是“先把问题转化为规模缩小了的同类问题(子问题),构造出解决此子问题的通用函数,然后通过递归调用通用函数来表示问题的解”。在计算机系统中,递归算法对很大一部分问题的解决都是十分有效的,它往往使算法的描述简洁而且易于理解。

在计算机科学中,基于递归算法的思维方式是计算思维的重要构成部分。在当前的信息技术基础课教学中,应该把递归思维能力的培养作为计算思维能力培养的重要内容。

5.形成“从个案抽象出模板”,再“从模板派生个案”的思维习惯

从“个别抽象出一般规律”,然后再“利用一般规律设计个案”,是社会生活中普遍存在的现象,也是计算机科学中的重要理念。从“面向对象的程序设计”中的“类”与“对象”,到Flash制作中的“元件”和“实例”,以致文字处理过程中的“样式”与“格式”、“模板”与“文档”,无不渗透着这一理念。

6.以计算机及其现有算法为工具,提升学生的科研能力,促进计算思维发展

肯定计算思维和计算机科学的方法论价值,并不意味着否定计算机的工具性价值。正是计算机“工具性”属性使计算机科学显示出其对科研活动的强大影响力。因此,计算机科学的“工具性”属性也是计算思维能力培养的一个重要方面。

首先,充分肯定计算机的“工具性”价值,形成良好的信息素养和信息技术能力。当前,计算机和网络已经成为最重要的数据获取工具、数据处理工具。每天都有数不清的报表、邮件、咨询和网页在Internet中川流不息,实现着信息的传递与分享。这一习惯已经深入人心,上升到了思维模式与方法论的高度,成为多数人科研、学习和生活中解决问题的基本策略。

其次,计算机科学为各类实证性研究提供了大量数据分析工具,为人们从事科研活动助力。在人文科学的研究中,传统的研究以质性研究法为主。而基于数据开展的量化研究则需要以统计学、数据分析的理论为基础,通过大量的数据分析来完成,对于出身文科的研究者具有一定的难度。然而,计算机科学的发展,数据分析算法日益普及,促成了数据统计分析软件的出现。目前,很多定量分析算法已经被集成到了常规的办公软件中,使定量研究中所需的数据分析算法不再神秘,成为了人文科学研究中的基本方法。

三、基于信息技术基础课平台培养计算思维能力的有效策略

国家把培养学生的创新能力作为教育的战略目标,而创新能力的培养离不开良好思维习惯的培养。计算思维能力培养的前提是进一步提高师生对于计算机课程的认识,并把计算思维能力的培养融合到计算机课程教学的具体过程之中。

1.强化计算机的工具性与方法论属性的统整

对于能否通过教学培养一种思维,这一点一直是存在争议的。对于人类的计算思维能力培养,能否通过分解计算思维的知识点、讲授思维方法而得到?笔者认为,答案是否定的。计算思维是建构在计算机科学基础上的一种思维模式和一类方法,应该是比操作、技能更高层次的能力。对计算思维能力的培养,应密切结合計算机基础教学的具体过程,把培养计算思维能力密切结合到信息技术课的教学过程之内,在知识培养和技能获得的基础上,渗透计算思维的方法和习惯。为此,应该解决好以下两个方面的统整[6]:①操作与思维的统整;②技与能的统整。

大学计算机作为公共必修课程为各个学科培养掌握计算机基本技能的人才,仅仅注重操作技术无疑是不够的,应当将计算机科学中方法论层面的原理与思维规律添加到教学的内容、方法及其各个活动的环节之中。事实上,大学计算机课程教学中关于“技”的知识点是显性的,而关于“能”的知识点则是隐含的,其核心是对计算思维模式的把握,把计算思维能力培养融合到技与能的成长过程之中。

2.通过图示化编程,对学生实施算法训练,培养其逻辑思维能力

计算机科学中的程序设计以逻辑结构严谨而著称,对于锻炼学生严谨的逻辑思维能力、培养学生严谨的思维习惯都具有重要意义,大学对程序设计类课程的培养目标也是培养学生的逻辑思维能力。然而,在具体的教学活动中,不论传统的C语言、Basic语言,还是Java语言,其繁琐的语法结构、灵活多变的输入输出格式规范,都曾经成为很多学生的噩梦。

因此,应提供一种编程环境,使学生可以避开琐细的语法规则,把程序设计的重点聚焦到程序的逻辑结构方面。为此,可借助图示化编程软件对学生的基本逻辑思维能力实施训练。通过图示化的编程软件(例如Scratch),为学生提供一个回避繁琐语法结构的编程环境,有利于学生快速地建构起规范的逻辑结构,从而促进其逻辑思维能力的提高。

3.借助案例教学,使学生逐步掌握迭代和递归的思维方式

迭代与递归,是计算思维中的重要内容,也是初学者难以理解的概念。笔者认为,从具体案例入手,案例教学法是促使学生全面理解递归与迭代思想的有效方法。

4.把计算思维训练融合于信息技术作品制作过程之中

计算思维的理念并不仅仅存在于程序设计类课程之中,在文字处理、多媒体作品制作中,无一不凝聚着计算思维的核心思想。教学实践已经证明,在信息技术基础课教学中,如果把设计方法和设计理念放在教学的核心环节,则更有利于学生制作出高质量的作品来。

首先,在制作复杂作品时,应以分析作品的整体结构和强调设计方法为主,传授操作技能为辅,从而促使学生形成清晰的设计思路。为此,在组织教学活动时,笔者都采用了“先强调解题方案和思维模式、再讲授具体步骤”的教学理念,从而使学生对这些软件的应用不再停留在界面操作层次,而是提升到了综合应用与反思的层次,从思维模式、方法论的层面提升了学生的综合水平。

其次,在软件应用和作品设计过程中,强化逻辑模型、知识体系的建构,促进计算思维模式的建构。尽管信息技术基础课中的高深内容不多,但基础课所讲授的各个模块之中无一不渗透着计算思维的基本理念。教师应该首先从思维训练和方法论的层面探究各个模块的设计精髓,挖掘各个模块的设计思路,探究其中隐藏的思维规律,并以此为基础,通过构造高效的逻辑模型,帮助学生形成解题思路,从而在思维发展层面对学生产生影响。[7]

5.借助有效、实用的信息技术工具,促进学生思维方式的进化,逐渐形成稳定的计算思维模式

要促进文科专业学生计算思维能力的发展,直接向文科学生开设关于计算思维类的课程是行不通的。因此,应密切联系文科学生学习、科研的实际需求,多向他们传授一些有效的、实用的信息技术工具,特别是要向他们傳授数据分析工具、数据获取技术、数据挖掘工具,为他们从事科研活动提供新手段,为其胜任定量化的实证性研究助力。从北师大信息技术基础课的教学实践看,当学生们对这些工具的应用达到了一定水平,他们的思维方式和解题方法就一定会发生变化,计算思维的观念和方法也就能慢慢地渗透到他们的思维习惯之中。

四、对计算思维能力培养实践的思考与总结

对于如何培养学生的计算思维能力,已经引起了很多学者的关注。对学生计算思维能力的培养,不仅仅是对计算机专业学生的基本要求,也是对非计算机专业学生的要求。从笔者开展计算思维能力培养的经验来看,计算思维是建立在计算机应用和计算机操作层面之上方法论层次的概念,如果脱离计算机课程的具体内容,单纯地讨论计算思维能力的培养是很困难的。因此,应该把对计算思维能力的培养整合到信息技术课程教学的具体教学活动之中,并要求教师在信息技术教学中主动地向学生渗透计算思维的理念和方法。

参考文献:

[1]A.L.Barabasi.Bursts,the hidden pattern behind everything we do[M].Publisher Penguin,2010.

[2]九校联盟(C9).计算机基础教学发展战略联合声明[J].中国大学教学,2010(9).

[3]Jeannette M. Wing. Computational Thinking[J]. Communicationsof the ACM, 2006, 49(3): 33-35.

[4][6]衷克定.试论《大学计算机》课程的方法论取向[J].中国大学教学,2012(10).

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

[7]马秀麟,赵国庆,朱艳涛. 知识可视化与学习进度可视化在LMS中的技术实现[J].中国电化教育,2013(1).

(编辑:郭桂真)

猜你喜欢
思维能力培养计算思维
浅析在历史课堂教学中发展学生思维能力的心得
改进实验教学 促进学生思维
基于计算思维的软件类研究生高级算法课程教学研究
基于计算思维程序设计的军事案例研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
IYPT(国际青年物理学家锦标赛)对高中生创新能力培养的作用