研究计算思维_坚持面向应用
第 21 期2012 年 11 月 10 日
计算机教育
Computer Education
45
新视点
文章编号:1672-5913(2012)21-0045-05
中图分类号:G642
研究计算思维,坚持面向应用
谭浩强
摘 要: 研究计算思维对深化计算机基础教育具有积极意义,提出在计算机基础教育领域应当注意的问题。
关键词: 计算机基础教育;计算思维;面向应用;计算机应用能力
1 计算机基础教育的发展与存在问题
在高校非计算机专业中开展计算机基础教育,经历了几个历史阶段:20世纪80年代是从无到有、开创摸索阶段;20世纪90年代进入全面铺开、蓬勃发展时期;21世纪前10年则致力规范与提高。当前高校非计算机专业的计算机基础教育还存在以下问题:
1)大学生的计算机应用能力明显不足,不能满足工作需要;
2)教学内容相对陈旧,反映新技术和新思想滞后;
3)面对诸多需要学习的新技术,因课时有限而无法容纳;
4)未能很好地与专业紧密结合,为专业服务。从现象看,一方面许多单位招不到所需要的人才,另一方面许多大学毕业生找不到合适的工作 (反映学用的脱节) ;一方面许多人觉得计算机基本应用技能简单易用,中学已学过,大学不必再学了,还认为大学计算机课程理论水平不够,另一方面用人单位认为大学生的计算机基本技能水平没有达到应用要求。
问题出在哪里?通常有以下几种看法: 1)对新技术的发展跟踪研究不够;2)内容太浅,与中学重复;
3)学校与社会脱节,对社会需求研究不够;4)对面向应用研究和落实不够,没有建立起面向应用的课程体系;
5)没有以计算思维为导向改造计算机基础教育。
不同的人从不同的角度观察问题,得到的结论不同。我们应当从实际出发,全面综合考虑。
笔者着重从最近讨论的热点——计算思维和计算机应用的问题发表一些看法。
2 提出和研究计算思维具有积极意义
2006年,美国卡内基•梅隆大学的周以真(Jeannette M. Wing)教授发表了《计算思维》(Computational Thinking)一文,引起国内学者的广泛关注,并在一些学术会议上进行了热烈讨论。在计算机基础教育领域怎样开展对计算思维的研究并用于教学实践,是广大计算机基础教育工作者关心的问题。
有专家提出,人类认识世界和改造世界有三种思维:理论思维(以数学学科为代表) 、实证思维(以物理学科为代表) 和计算思维(以计算机学科为代表) 。 美国总统信息技术咨询委员会(PITAC) 在《计算科学:确保美国竞争力》一文中提出:“虽然计算本身也是一门学科,但是其
计算机教育
46
Computer Education2012
具有促进其他学科发展的作用。21世纪科学上最重要、经济上最有前途的研究前沿都有可能通过熟练掌握先进的计算技术和运用计算科技而得到解决”。
1972年图灵奖得主Edsger Dijkstra说 :“我们所使用的工具影响着我们的思维方式和思维习惯,从而也将深刻地影响着我们的思维能力[1]”。 这就是著名的“工具影响思维”论。劳动工具在从猿到人的过程中起了关键作用,人类在使用原始的劳动工具过程中开始学会思维,之后,冶炼技术的出现、纸张和印刷技术的发明、现代交通工具和航天技术的发展,无一不对人类的生活方式和思维方式产生深刻的影响。计算机的出现催生了并将进一步发展智能化思维。
我们不仅要注重研究和运用工具,还要注重研究工具对思维的影响,自觉运用日益丰富的科学思维,推动科学技术的发展和社会进步。通过学习和应用计算机,人们改变了旧的思维方式和工作方式,逐步培养了现代的科学思维方式和工作方式,懂得现代社会处理问题的科学方法。这个意义是更为深远的。
计算机不仅为不同专业领域提供了解决专业问题的有效方法和手段,而且提供了一种独特的处理问题的思维方式。它对各个学科的发展产生深远的影响。近年来涌现了许多将计算思维和计算技术用于各学科领域的成功尝试,出现了一些跨学科的新学科,如计算生物学(生物信息学) 、计算力学、计量经济学等,它们的出现改变了有关专业的科学工作者的思维方式。计算思维是信息时代中的每个人都应当具备的一种思维方式,“让思维具有计算特征”。要有意识地在教学中培养学生的计算思维。
在计算机基础教育领域开展对计算思维的研究,对我们至少有以下一些启示: 进一步认识到计算机不仅是工具,而且是可以启发人们思考问题的科学方法;把计算机处理问题的思维方式用于其他领域,有助于提升各个领域的科学水平,开辟新局面;积极在计算机的教学中引入跨学科
元素,启迪跨学科计算思维(如用网络的思路分析社会科学中的社会关系) ;引导学生站在计算思维的高度观察和处理问题,有意识培养计算思维;有利于提升课程的广度与深度。
3 需要研究和正确处理的几个问题
当前,全国许多高校的教师积极参与了对计算思维的研讨,在研讨中各抒己见,提出了不少有见地的建议,也反映出一些不同的看法。例如,对计算思维有不同的认识——思维应如何分类?计算思维的内涵是什么?计算思维应当提到什么高度?对怎样在教学中培养计算思维也有不同的意见:有人认为应当通过各种途径逐步培养全民的计算思维,有人认为要专门设立计算思维课程来培养计算思维;有人认为对所有专业的大学生要有统一要求,有人认为对不同专业的学生应有不同要求;有人认为解决计算机基础教育当前的主要方向是抓计算思维;有人认为应着重解决大学生的计算机应用能力问题;有人认为在课程建设中应当在原有课程基础上加强计算思维的引导;有人认为要根本改变原有课程体系,建立以计算思维为核心的新的课程体系和课程;等等。
应当注意到,不同的人站在不同的位置上思考问题,从不同的角度提出问题,结论往往是不相同的。有人侧重从理论上提问题,有人侧重从实际中提问题。有人注重理论水平的提高,有人注重国民经济发展中的实际问题。无论古今中外,都有学院派和行动(应用) 派。他们各有道理,需要我们综合考虑。
为了使计算机基础教育健康发展,笔者认为应当注意以下几个问题:
1)应当全面分析计算机基础教育的任务、作用和问题。
计算思维很重要,但它是一个宏观的概念,是一种处理问题的思维方式;而各类计算机教育有其自己的任务和特点,有全面的思路。例如,面向高校非计算机专业学生的计算机基础教育的
第 21 期
新视点
47
主要任务是计么?当前主要问题是什么?应当采用哪些办法来解决?
解决问题不能只想到一个方面,要解决计算机基础教育的问题只讲计算思维是不够的,应当作全面的分析,除了计算思维以外还要注意什么问题。例如,学生毕业时需要具备什么能力?当前大学生最缺少的是什么?社会对大学生的意见是什么?信息技术的迅猛发展对教学的要求是什么?等等。
2)要弄清楚计算思维的含义以及对不同人群的要求。
思维属于哲学范畴。计算思维是一种科学思维方法,显然所有人都应学习和培养。但是学习的内容和要求是相对的,对不同的人群应该有不同的要求。
计算思维不是悬空的、不可捉摸的抽象概念,是体现在各个环节中的。 不要把计算思维想象得高不可攀,难以捉摸。其实,计算思维并非现在才有,自古已有萌芽,随着计算工具的发展而发展。如算盘就是一种没有存储设备的计算机(人脑作为存储设备) ,提供了一种用计算方法来解决问题的思想和能力;图灵机是现代数字计算机的数学模型,是有存储设备和控制器的;现代计算机的出现强化了计算思维的意义和作用。
事实上,人们在学习和应用计算机过程中不断地培养着计算思维。正如学习数学的过程就是培养理论思维的过程,学物理的过程就是培养实证验思维的过程。学生学习程序设计,其中的算法思维就是计算思维。
培养和推进计算思维包含两个方面: 一是深入掌握计算机解决问题的思路,总结规律,更好更自觉地应用信息技术。 二是把计算机处理问题的方法用于各个领域,推动在各个领域中运用计算思维,使各学科更好地与信息技术相结合。
计算思维不是孤立的,它是科学思维的一部分,其他如形象思维、抽象思维、系统思维、设计思维、创造性思维、批判性思维等都很重要,不要脱离其他科学思维孤立地提计算思维。在学
习和应用计算机的过程中,在培养计算思维的同时,也培养了其他的科学思维(如逻辑思维、实证思维) 。 在研究教学时,不必把课程生硬地戴上“计算思维”的帽子,以表示改革。只要是有利于培养学生的科学思维,都应当提倡。毕竟是计算机课程,而不是计算思维课程。
笔者很赞成中国工程院副院长潘云鹤院士的意见:“学校应努力提高计算机专业学生的多种思维的能力,特别要重视创造性思维的训练及创造性思维方法的掌握,提高学生发现问题、提出问题和解决问题的能力。培养以知识、能力、素。 质融合为核心的学习创造力[2]”
有的专家归纳提出了有关计算思维的一些要素,如绑定、大问题的复杂性、概念和形式模型、一致性和完备性、效率、演化、抽象层次、按空间排序、按时间排序、重用、安全性、折衷和结论;还有些专家认为计算、通信、协调、记忆、自动化、评价、设计、约简、 嵌入、 转化、仿真、递归、 并行、抽象、分解、保护、 冗余、容错、纠错、系统恢复、 启发式、规划 、学习、调度、折衷等是计算思维的基本概念,要求大家掌握并运用它们。应当说,这是专家和专业层次研究的问题,不能要求非计算机专业的学生都掌握。专家的研究与教学的要求是两回事。现在有许多分析是从计算机专业专家的角度出发的,不应作为对非计算机专业学生的普遍要求。
应当区分不同层次群体的任务。研究计算思维和学习计算思维的有以下的不同群体:哲学家、计算机科学家、一流大学计算机专业的专家、一流大学计算机专业的研究生和大学生、一般大学计算机专业的教师、一般大学计算机专业的学生、一般大学非计算机专业的教师、一般大学非计算机专业的学生、高职高专计算机系的教师和学生、高职高专非计算机专业的教师和学生、社会上广大计算机的应用人员和初学者,等等。不同的人群承担不同的任务,不同的学校进行不同的教学,不同的学生学习不同的内容。要实事求是,区别对待,分类指导,切忌离开具体
计算机教育
48
Computer Education2012
培养目标抽象地提出问题,无的放矢。
有些问题从理论上说是很重要的,但是对各种不同的人来说,要求是相对的。要考虑专业领域、学生基础、课程性质、课时多少、工作要求等因素。例如,在程序设计课程中,算法是程序的灵魂,它无疑是重要的,但是在教学中对不同对象的要求是有很大差别的。有的要求全面深入学习和掌握各种算法,要求学生能独立设计算法;有的只要求掌握基本的算法和设计算法的思路;有的则是使学生初步了解算法的思路,为以后进一步学习和应用打下初步的基础。对不同的人要求不同。凡事总有个“度”,就是必要性与可能性的结合,并非愈多愈深愈好,要综合考虑。对计算思维的要求也是如此。我国高等学校有三种不同的模式:
① 研究型大学,培养研究型人才,注重培养学生的学术研究能力。教学以学科知识为基础,以专业智能为核心,注意培养科学思维能力。
② 应用型大学,培养工程技术和管理服务人才。教学以相关理论知识和基本技能为基础,以专业行动能力为核心,注意培养科学行动能力。
③ 高职学校,培养职业技能型人才。教学以基本技能和相关知识为基础,以基本技能的综合运用为核心,注意培养工作任务能力。
应当看到,社会需要是多方面的,思想方案也是多元化的,应当有不同的角度、不同的思路、不同的方案和不同的实践。
3)正确处理培养计算思维与面向应用的关系。计算思维和面向应用是不矛盾的,是从不同角度提出问题。
培养计算思维不是目的,正如学习哲学不是目的一样。学哲学的目的是认识世界改造世界,培养计算思维的目的是更好地应用计算技术推动社会各领域的发展与提高。计算思维主要不是靠讲课得来的,而是在学习和应用计算机过程中培养的。 学生对计算机应用愈深入,对计算思维的认识就愈深刻。
怎样看待计算机是工具?谁也不能否认计算
机是一种现代化的工具,计算机是人类历史上最伟大的工具,几乎所有的人、所有的领域都离不开这个工具。正是由于把计算机作为大众工具,才促成了计算机的大普及,促进了社会的飞速发展。人们因为迫切需要用计算机这个现代工具才积极学习计算机,正如同为了快捷方便而学开汽车一样。我们应当深入掌握计算机的特点,充分发挥其工具属性,大力推广计算机应用。
计算机是现代化智能型的工具,使用这种工具需要具备一定的科学文化基础,通过使用这种工具可以培养人们的信息素养和计算思维。重视工具、用好工具是计算机普及最基本的要求,对使用计算机工具的人,决不能贬之为“狭。獈工具论”
工具有简单与复杂之分,计算机工具也有简单与复杂之分,不同人使用程度深浅不同,使用程度层次不同,如用计算机写文章和熟练编程就属于不同的层次。对一部分人的要求应当更高一些,如对计算机专业人员,他们不仅应熟练地、综合地、有效地使用计算机工具,还应当研究计算机系统本身(包括原理、体系、结构和方法) ,在更高的层次上发挥计算技术的作用,运用计算思维,推动计算机的更深入的应用,包括跨学科的高层次的应用(从观念到方法,从系统到工具) 。
计算机应用不是指简单地使用工具,而是指计算机科学技术在各个领域中的广泛和综合的应用。计算机应用技术包括在应用中所涉及的基本原理、共性技术和方法。计算机应用并非没有理论,有人主张计算机应用就是简单操作工具,这是错误的。我们一贯主张:面向应用,提高水平,掌握规律,培养素质。
应当重视和发展计算机应用技术。计算机科学技术经过不断发展,逐步形成了系统(硬件与系统软件) 和应用两个分支。各有侧重,相对独立。计算机应用技术已成为计算机科学技术中的一个二级学科,国外称计算机应用方法学。
我国已进入第四次计算机普及高潮,这是一
第 21 期
新视点
49
次全民性的应用高潮。普及的重点从学习者数量的扩大转变为质量的提高,从知识普及转变为深入推广应用。国家的发展迫切要求我们在各个领域大力推动计算机应用,促进国民经济信息化。计算机教育工作者要十分重视社会的需求,要大声疾呼重视计算机应用,研究计算机应用,为计算机应用培养人才。不应当认为计算机应用的问题已解决,要转向计算思维了。 二者应当是相辅相成,即培养计算思维为了推动计算机更深入地应用,而计算机应用又能培养计算思维。
要旗帜鲜明地坚持面向应用的方向。计算机离开了应用就没有了生命力。国内多数高校属于应用型大学,大多数学生将来是从事计算机应用的。应用型大学非计算机专业的教育本质是计算机应用的教育。要以能力为导向,使学生具备在各个领域应用计算机的能力,推动各个领域的信息化,这是计算机基础教育工作者义不容辞的责任,何时候都不应当忘记这个根本任务。
应当说,面向应用的研究和落实做得还很不够,我们需要花大力气去做。千万不要动摇这个方向。在大力提高大学生计算机应用能力的同时,要注意培养计算思维,提高科学素养。
4)培养计算思维的途径。
大多数人认为应当通过各种途径培养全民的计算思维(从中小学就应开始) 。对多数人来说,学计算机显然是从应用入手,而不是从学习计算思维入手。不要孤立抽象地学习计算思维,而要在学习和应用计算机的过程中培养计算思维。
首先需要弄清楚计算机基础课程的性质。计算机课程是思维方法课还是应用技术课? 课程首要的目的是培养思维还是掌握应用技术?如果是思维课,就应以计算思维为纲来组织教学体系;如果是应用技术课,就应按计算机应用来规划教学体系。对比物理课,学生学习的是牛顿定律等自然科学的基本知识,而不是系统地学习实证思维,但是学生通过学习物理,培养了实证思维。计算思维不是某一门课的任务。如果开设计算思维讲座,提高学生对计算思维的认识,无疑是有
好处的。但是如果把“计算思维”作为一门非计算机专业学生的正式课程,可能不容易实现和推广。
计算机应当和数学、物理课一样作为大学生的基础课程,这有利于确立计算机教育在大学中的地位。但是还应当具体分析计算机课程和数学、物理课程的性质有哪些异同?完全采用讲数学、物理一样的方法讲计算机课程行不行?计算机课程不是纯理论课程,有很强的应用性,应当强调学以致用,围绕应用进行学习。
5)思想要重视,考虑要全面,措施要稳妥。计算思维目前在国内外的讨论只是很初步的,并不成熟,应当作为学术问题展开讨论,充分发表各种意见,逐步取得共识,想明白了再干。不要在不求甚解的情况下,急于贯彻。最好先在不同类型、不同层次的学校进行试验,在试验过程中发现矛盾,解决问题,取得经验,然后逐步推开。
推进计算机基础教育应当提倡多种思路,实现多元化的方案。例如,有的学校(主要是一流学校的计算机专业) 可以多研究计算思维问题,有的学校(主要是应用型学校的非计算机专业) 可以多研究面向应用、大力提高计算机应用能力问题。并非只有一种标准答案。在当今社会,人们应当习惯多元化,不要过于追求统一。应当提倡各校从实际出发,多方面思考,承认区别,因地制宜,百花齐放,互为补充,各取所需。实践是检验一切工作的唯一标准。
要在计算机基础教育的领域中形成优良的思想作风和工作作风,一切从实际出发。不唯上、不唯书、不唯外、只唯实,坚持实事求是的科学态度。
6)脚踏实地,大力提高课程水平
计算机基础教育改革的指导思想应当是:坚持面向应用,切实提高学生应用能力,同时在教学中融入计算思维,注意培养学生科学思维能力。要肯定已有成果,珍惜多年改革的成果和经验,在现有基础上提高,稳中求进。
努力建设面向应用的课程体系。课程建设有
(下转第56页)
计算机教育
56
Computer Education
资源平台。
2012
习解决沟通交流及时间地理位置限制等问题。
为此,我们下一步的工作重点将放在:1)建立实用的移动学习资源平台。一个实用且用户体验较好的学习平台对于学习者来说至关重要。目前根据手机软硬件情况来看,以基于主流移动操作系统的应用及具备跨平台特性的移动学习网站比较实用。但不管是移动学习应用软件还是移动学习网站都可以结合现有的数字化学习网站进行开发,进而形成一个完整的移动学习
参考文献:
2)加强对于移动学习的引导和宣传。在高职类院校的教学体系中,移动学习是一种较为新颖的辅助教学模式,今后也将成为一种重要的师生学习交流模式。教师作为教学环节中起着引导作用的重要环节,学院要加大对于移动学习的宣传,在平时课堂教学中逐渐渗透移动学习的相关管理策略和自主学习策略,从而保证移动学习的顺利进行。
[1] 纪福菲. 电大课程的移动学习资源建设研究[J]. 科技信息, 2011(11): 445-446
[2] Aleksande Dye. Mobile education: a glance at the future [EB/OL]. http://www.nettskolen.com/forskning/mobile_education.pdf.[3] 吴燕琴. 基于手机的移动学习资源设计研究[D]. 武汉: 华中师范大学, 2011: 3.
(编辑:彭远红)
(上接第49页)
两种思路:一种是学科型的思路,从计算机学科中选择一些基础性、理论性的课程,作为非计算机专业学生的计算机基础课; 另一种是应用型的思路,着眼于社会需要,以社会需求为导向。根据计算机应用的需要来组织课程体系。计算机技术发展快,应用领域广泛,要根据专业特点设计课程群,改革课程体系,尤其开设计算机与专业结合的课程,十分必要。
改革教学内容和教学方法。既讲知识,又讲方法。二者都应作为教学要求。学生不仅要学到知识,也要学会分析问题的方法。教师不能只讲操作,而要引导学生举一反三,研究规律,掌握方法。学生不能只知道结论,还要知道结论怎么来的。
大力提倡创新精神,培养综合能力。不能认为只有研究型大学和科研工作需要创新精神,任
参考文献:
何学校、所有学生都应当具有创新意识,培养创造思维。要把对创新思维的培养渗透到教学的各个环节中。
重视培养综合能力。现在的问题是学习的过程是分散的,获得的是若干分散的知识点,往往缺乏综合,不能形成系统完整的能力。所谓综合包括:一门课程各章节内容的综合;理论与实践的综合;不同计算机课程的综合;计算机知识与专业知识的综合。各门课都应提倡设综合作业或综合训练,许多单位举办了各种竞赛,突出创意和综合能力,效果很好,符合人才培养的方向。
以上是笔者根据了解到的情况以及与同行们多次讨论后形成的粗浅意见,为了有助于计算机基础教育的健康蓬勃发展,愿抛砖引玉,望同行不吝指正。
[1] 王飞跃. 从计算思维到计算文化[EB/OL]. [2012-09-15]. http://www.docin.com/p-71046882.html.
[2] 奚春雁, 赵廓. 百年“图灵”创新 人才教育先行: 中国工程院常务副院长潘云鹤专访[J]. 计算机教育, 2012(11): 1-4.
(编辑:彭远红)