三、计算思维能力的培养、创新与策略
1、重视计算思维能力的培养
当前,对学生进行计算思维能力的培养已经越来越受到重视,并在教育领域逐渐展开。国外很多国家的教育主管部门或教育机构也将更多的精力投入到对学生计算思维教育、训练以及计算思维能力的培养,并高度重视计算思维能力的培养,将它纳入学校课程的考核体系之中。但就目前而言,我国对计算思维能力训练和有意识的培养还远远不够,其设计与整体规划欠完善,至今还没有形成一套完整的方法体系,尽管高校在教学过程中已经有意识地进行学生计算思维训练及能力培养,但这些都是探索性的、小规模的和碎片化的,缺乏大规模的、系统化的和自觉的意识。我国在计算机科学研究方面的专著如《计算机科学导论―思想与方法》和《计算机科学与技术方法论》等,已经列为完整成熟的计算机方法论的研究成果,[5]但对刚刚起步的计算思维培养研究而言,要走的路还很远,还有很多工作需要开展。以笔者所在学校为例,尝试在医科学生中开设了“医用计算机基础”这门课程,从学生学习和反馈的情况看,很受学生欢迎且反响较好。因此我们认为可以在高校非计算机专业学生中进一步尝试开设计算思维能力的课程,达到学生培养的目的。
2、创新计算机思维能力方式和手段
21世纪是知识经济的时代,更是知识创新的时代。国家的兴旺和国力的强大离不开创新,而创新的核心问题取决于人,只有在教育教学中主动融入创新理念,充分调动学生的创新意识和创新主观能动性,才能在未来社会发展和竞争中
抢占新世纪新型人才的培养的制高点,不负时代向教育和人才培养提出的严峻课题。因此,高校在计算机思维能力培养方面,要有意识地创新教学方式和教学手段,使计算机思维能力的培养成为学生喜闻乐见的教学课程,以培养出具有创新意识和创新能力的创造型人才,使我们在日益激烈的国际竞争中昂首阔步、充满信心地迎接各种挑战,才能并保证我们在未来竞争中立于不败之地,从而达到目的双赢。
3、加强计算思维能力培养教学策略
【参考文献】
[1]牟琴,谭良.计算思维的研究及其进展[J].计算机科学,2011.03.25-28.
[2]阳小华,刘杰,刘志明,徐卓然.融入计算思维训练的程序设计教学方法探讨[J].高教学刊,2015.19.106-109.
[3]黄玲玲,杨剀,王颖,黄欣阳,阳小华.计算思维特征探析[J].计算机教育,2014.17.12-15
[4]刘杰,阳小华,陈星,刘志明,张慧仁.提升计算思维能力的编程游戏设计[J].电脑知识与技术,2014.21.55-57.
[4]万亚平,阳小华,刘志明,黄欣阳,马淑萍.计算思维系统化特征探析[J].中国科教创新导刊,2014.11.99+101.
[5]丁琳,王颖,马淑萍.MOOC支撑下的以计算思维为导向的大学计算机课程教学模式研究[J].计算机教育,2014.09.30-33.
[6]龚向坚,邹腊梅,胡义香.以培养学生计算思维能力为目标的计算机专业主干课程教学改革探讨[J].高等教育研究(成都),2014.01.26-28+34.
关键词:计算思维;项目贯穿;循序渐进;计算机程序设计
在《中国高等院校计算机基础教育课程体系(CFC)2008》中,提出对大学生计算机应用能力的三大要求:操作使用能力、应用开发能力和研究创新能力[1]。操作使用能力主要在第一门课程大学计算机基础中实现,后两种能力则主要体现在第二门课程计算机程序设计上。CFC2008将学习目标确定成:1)学习问题求解的思路和方法,即算法。2)理解计算机是如何具体实现算法的,即如何才能有效地利用计算机编程。
在大部分高校中,C语言程序设计是非计算机专业理工科学生的一门必修课程。根据CFC2008精神,其目标首先是使学生掌握程序设计的基本思想,能够用C语言编写程序并具备一定的程序调试能力;第二是为学生今后利用计算机解决本专业问题奠定基础,培养学生利用计算机作为一种工具,乃至作为一种思维方式去思考问题、解决问题的能力。
在2010年“第六届大学计算机课程报告论坛”中,陈国良院士指出,计算思维能力是大学计算机基础课程教育过程中一个重要的培养目标[2]。陈国良院士同时还指出,人类科学发展的三大支柱是理论科学、实验科学和计算科学,与之相对应的是人们认识世界、改造世界的三种思维方式,即理论思维、实验思维和计算思维[2]。
那么,如何在计算机基础教学过程中,训练和培养学生的计算思维能力,使学生学会用计算机的思维去思考问题和解决问题,是一个非常值得探讨的问题。
1计算思维
2010年,李国杰院士进一步指出,今天的信息世界已经是一个物理世界、信息世界、人类社会组成的三元世界,是一种新的信息世界观,与以往一人一机组成的、分工明确的人机共生系统完全不同。这种改变,使信息科学应当成为研究人机物社会中的信息处理过程[5]。
这种变化,对人们利用计算机分析、解决问题的能力提出了更高的要求,也对高等学校非计算机专业的计算机基础教学提出了更高要求。计算机基础教学需要培养学生的计算思维能力,并提高其信息素养,使学生在处理问题时,能够更好地利用计算机作为一种不可或缺的工具进行思维、表达,从而对各种信息进行深层次的加工处理,以便把其掌握的专业知识更好地应用到科学研究和生产中,促进科技进步和社会生产力的发展。
2C语言程序设计课程面临的问题
李未院士讲到程序设计是计算机学科的核心课程,吴文虎教授也谈到程序设计课程的教学经验,凡是讲授这门课程的教师都知道,这门课程比较难于教授,尤其是为非计算机专业讲授这门课程。在基础教学中,这门课程难于讲授的主要原因可能有以下几方面:
1)教师用“专业”眼光去看待非专业的学生。
2)教学中重理论轻实践,实践课时不足,对程序设计能力的培养不够。
3)例题多而散,学习后,学生不能得到一个比较综合的训练。
5)课程特有的属性决定的。各种程序设计语言的语法结构一般都是零散的,学生难于相互关联、总结,采用的案例也是比较零散、短小的、关联不大。学生经常是学会了全部的语法知识,但仍然不知道这门语言能做什么,能解决什么实际的问题,甚至不知道如何解决问题。
6)学生精力投入不足或学习方法不当,大部分学生认为自己毕业又不从事计算机软件开发工作,没有必要学习程序设计课程。
针对这些问题,结合CFC2008精神,我们在C语言程序设计课程讲授过程中,以学生计算思维能力培养为目标,提出了“项目贯穿、循序渐进、思维训练”的指导思想,以改变传统计算机程序设计课程中侧重向学生介绍语法结构的做法。
3教学方法改革及计算思维能力培养
3.1项目驱动教学
在理论教学环节上,本着一个项目贯穿整个课程教学的思想。我们用“猜数游戏”为主、常见问题为辅进行各个章节的讲授。具体做法如表1所示。
3.2循序渐进教学
心理学家认为,模仿是孩子学习的第一步。通过模仿,孩子不仅能够复制行为,而且也能对模仿的行为进行加工,有所创新。人们经常把模仿描述成“学习的捷径”。在程序设计课程的学习过程中同样如此。让学生通过模仿现有示例,逐步掌握C语言中的各种语法要求、控制结构,不断加强学生对于课程的学习兴趣。
在实践教学环节上,我们将实验内容按照“验证―调试―设计”的顺序进行设计。
1)验证:安排学生对学习过的内容利用现有的简单程序进行验证。
2)调试示例:编写简单的程序作为调试示例,在其中设置学生经常遇到的各种小错误(包括语法错误、逻辑错误),让学生按照实验指导中的讲解,逐步找到各个错误。
3)调试练习:让学生根据前面的调试示例,修改类似程序的错误,并进行总结。
4)编程示例:针对常见问题进行分析、讲解、编程,让学生学习问题分析方法和程序设计方法。
5)编程练习:根据编程示例,将题目进行略微调整或与前面的知识相结合,让学生进行编程解决。
通过上述实践步骤,学生可以逐渐掌握编写程序的语法规范及思维技巧。
在理论教学环节,同样按照循序渐进的原则进行问题讲解。例如,在讲授九九表输出问题时,按照如下的顺序设计问题并编程,逐步实现九九表的输出。
1)输出1到9这几个数字。
2)输出9行1到9。
3)修改九九表中各行数值的个数,将输出的9行数字转化成九九表格式。
4)最后研究数字的变化规律,实现真正九九表的输出。
3.3多角度思维训练
在C语言程序设计课程中,计算思维的能力要求主要体现在学生对于问题的分析、解决能力培养上。如何在课程讲述过程中,训练、提高学生分析问题、解决问题的能力,是讲授这门课程的全体教师的责任。我校除了在课程内容设置上按照“一个项目贯穿课程”的指导思想进行授课、在实践环节上按照“验证―调试―设计”的顺序进行设计,还在教学过程中注重以下几个方面。
1)上机实验流程规范化。要求学生对于实验内容,要按照“课前预习―分析问题―设计算法―编写程序―上机调试”的顺序依次进行,使他们养成一个好的学习和思维习惯,逐步训练、提高他们分析问题、解决问题的能力。
2)答疑指导引导化。在学生有疑问时,不直接为学生指出其问题,而是用提问的方式引导学生逐步自己找到问题所在。例如,学生的程序代码为:
学生提出要输出两个数的乘积,怎么输出结果不对呢?可以依次提出问题:应该输出什么信息呢?计算机屏幕上的显示和预期有什么不同?有哪些情况可以造成这种不同呢?printf函数的一般格式是什么,每部分什么含义?你所写的printf函数与一般格式一致吗?这样,通过依次设置问题,既引导学生自己发现了程序中的错误所在,又训练并逐步提高了学生发现问题、改正问题的能力。
3)问题趣味化。常规的、一成不变的问题很难激起学生的学习兴趣,趣味性是激起学习兴趣的一个可行手段。那么,如何利用趣味化的问题讲解程序设计中的各种控制结构?这需要从案例设计入手。例如:用出租车的计费方式和if结构结合、用所得税的计算方式和switch结构结合、让学生把一天的行程用基本控制结构进行描述等。
4)提倡算法的多样性。程序设计课程的价值之一在于训练、提高学生的计算思维能力,如果学生都按照教师的逻辑思维习惯进行分析问题、解决问题,这不能不说是一种失败。所以,在让学生学习教师分析问题、解决问题的同时,要倡导算法的多样性,培养、激励学生的创新意识、探索精神和问题求解能力。例如,有些同学数学基础很好,有一些问题,他们总会用数学的方式先进行初步解决,再结合计算机进行编程。对于这些同学,一定要进行及时的鼓励,并介绍他们的做法,使之感到编程的成就感。
5)注重算法的简化和优化[6]。我们不能只提倡算法多样化,还要引导学生对算法进行研究,逐步达到简化并优化算法的目标。例如我们常用的“百鸡百钱”问题,很多学生按照公鸡、母鸡、小鸡的顺序用三重循环进行实现。我们就提出“是否可以用二重循环实现呢”,学生仔细一想,确实可以改成二重循环进行实现。再比较两次的实现方法,发现循环次数由100*100*100=1000000降到了100*100=10000,降幅达到了99%。一个简单的改进,让学生看到了算法改进的魅力。这也让部分同学想到“这个问题是否可以进一步简化呢”,再进行分析,发现公鸡的数量不可能大于32,从而可以将算法中公鸡数量上限从100改到32,母鸡数量上限也改成98,循环次数降到了32*98=3136,比二重循环又减少了近70%。这一系列的简化,充分调动了学生的学习兴趣。
4结语
在计算机程序设计课程的讲授中,通过采用项目贯穿、循序渐进及多角度的思维训练方法,学生分析问题和解决问题的能力得到了明显提高,也有部分同学因无法保证前后知识的连贯性,造成后期难以跟上正常教学进度,出现掉队现象。如何将计算机程序设计课程中的分散语法结构相互关联起来,利用好的案例提高学生学习积极性,培养、提高学生的计算思维能力,仍是值得探索的问题。
参考文献:
[1]中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2008[M].北京:清华大学出版社,2008.
[2]陈国良.计算思维与大学计算机基础教育[R].济南:第六届大学计算机课程报告论坛,2010.
[3]J.M.Wing.ComputationalThinking[J].CommunicationsoftheACM,2006(49):33-35.
[4]董荣胜,古天龙.计算思维与计算机方法论[J].计算机科学,2009(1):1-4.
[5]李国杰.信息科学技术的长期发展趋势和我国的战略取向[J].中国科学,2010(40):128-138.
[6]陈杰华.程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009(20):84-85.
CultivationofCapacityforComputationalThinkingthroughComputerProgramming
YUXiaoqiang,ZHAOXiuyan,YANPitao
(SchoolofInformationScienceandEngineering,DalianPolytechnicUniversity,Dalian116034,China)
[关键词]计算机基础教学计算思维能力培养教学方法
在计算机基础教学中,计算思维的作用与地位日益突出。有针对性地培养学生计算思维能力成为计算机基础教学的重要目标,为此,需要彻底转变传统的计算机基础教学方式,向以培养学生计算思维能力为主的教学方向转变。
一、正确认识计算思维
计算思维指的是通过运用科学的计算机概念设计系统,求解问题,理解人类行为的综合性思维活动。计算思维具有概念化特性,并不具备程序化特性。计算思维并不是科学家才有的思维方式,而是每个人都应该具备的一种思维。
计算机基础教学旨在培养学生的抽象思维、逻辑思维以及一定的编程能力。因此,如何更好地培养学生的计算思维能力,成为教学中的重要问题。
二、计算机基础教学的现状分析
(一)计算机基础教学内容比较单一
现阶段文科生的计算机基础教学,还是停留在计算机基本操作知识的讲解以及办公软件的基本应用层面。理科生的计算机基础教学是在此基础上加入了部分C语言程序设计内容。基础教学内容无法与信息化发展水平相适应,这也会导致学生对信息技术以及计算机理论的忽略。从整体上来看,教学知识体系不完善、内容比较单一,导致学生们无法深入、全面了解计算机科学,更谈不上计算思维能力的培养。
(二)教学模式滞后
现阶段,计算机基础教学中存在着很多弊端。受到传统应试教育的影响,教学方法比较死板、机械化,学生处在被动接受知识的局面。课堂教授结合上机练习的操作方式,在信息高度化发展的今天显得非常单调,导致学生缺乏计算机学习的兴趣,不愿意进行深入探究。这种滞后的教学模式,是我国计算机基础教学中普遍存在的重要问题。无法调动学生计算机基础学习的主动性与积极性,就无法对学生进行归纳抽象能力、逻辑思维能力的培养,大大限制了学生们计算思维能力的培养与发展。与此同时,受到课时计划的限制,部分重要内容无法深入讲解,本末倒置,无法更好地提高学生的综合素质与创新能力。
(三)计算思维能力培养的教材缺失
现阶段的计算机基础教学中,理论性知识仍旧是考试的重点,而且教材教学内容非常枯燥、单一,缺乏不同课程之间的交汇贯通,缺乏交叉、边缘知识的拓展延伸。日常教材教学中,无法调动学生学习、研究的积极性,更无法启迪学生打开思维,站在更深刻、更抽象的层面认识、理解、学习、掌握计算机科学。这样就会导致学生仅学到皮毛知识,无法做到举一反三、融会贯通。
三、计算机基础教学中培养学生计算思维的具体策略
(一)回归式教学策略
(二)积极转变教学观念,构建“计算思维导向”的教学模式
(三)发散式教学模式
计算机基础教学的使命,一方面是让学生们掌握全面的计算机操作技能,一方面还担负着培养学生计算思维的重要使命。因此,在计算机基础教学中,教师应彻底摒弃传统“照本宣科”的教学方式,加强知识的整合,不局限于课本,不仅讲解知识的内涵,还需要扩大其外延,进一步扩大学生的知识面。比如说,在计算机基础教学中,经常会涉及图论、计算几何、离散数学等工具,教师可鼓励学生自学,也可以进行适当讲解,这样就避免了因教学内容的局限性所给学生们带来的学习困惑。发散式教学,通过举一反三的过程,站在计算思维的角度去思考问题,真正从传统的物理思维与数学思维中转换过来,进一步养成计算思维的能力与习惯。通过发散式教学模式,一题多解,进一步提升学生思维的创新性与灵活性。与此同时,在完成计算机基础教学课程之后,应该积极鼓励学生完成综合性强、应用性强的习题。在解决应用型问题的过程中,进一步培养学生的计算思维能力。通过应用型问题的设计与解决,将复杂的问题进行深入抽象,并在计算机上自动运行,进一步体现了计算思维其自动化与抽象化的本质,更好地指导学生探究解决问题的具体方法、思路与能力,全面提升学生的计算机综合素养。
(四)加强计算思维与实践的融合
计算机基础课程是计算机专业、非计算机专业、理科类专业、文科类专业都需要开展的重要课程。计算机基础教学的重要目的就是让学生们在计算机知识的学习过程中,积极探究计算机与其他学科之间的密切联系,与此同时,辅助学生们更加游刃有余的学习其他课程。对于专业问题的解决,应在计算机基础技术的指导下进行。针对不同专业开设计算机基础课程过程中,应该积极构建与其专业相对应的案例或者模型,进而促进各个专业学生进行深入学习。对于案例或者模型的应用,能够充分培养学生们的专业思维能力,进而促进学生们养成有效解决问题的思维,将问题的重点、关键剖析得更加深刻,从而加深学生们对专业知识的全面掌握。
综上所述,本文针对计算思维的概念、特点以及计算机基础教学现状入手分析,从四个方面:回归式教学策略,积极转变教学观念构建“计算思维导向”的教学模式,运用发散式教学模式,加强计算思维与实践的融合,详细论述了计算机基础教学中培养学生的计算思维的具体策略,希望为广大计算机教育工作者带来一定帮助。
[参考文献]
[1]教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009(2).
[2]于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2011(13).
[3]朱鸣华.计算机基础教学中计算思维能力培养的探讨[J].中国大学教学,2012(21).
关键词:计算思维;大学计算机;课程体系;教学案例;教学方法
0.引言
当各高校开始提倡素质教育、给学生更大的自学空间、不断压缩学时的时候,大学计算机基础首当其冲受到极大的冲击,学时被大大压缩,少数学校甚至取消了该课程。这不禁让从事计算机基础教育的教师和专家学者感到矛盾和困惑:该课程到底该如何发展?究竟还有没有存在的必要?我们的学生真的不需要学习计算机吗?他们需要学什么?
2006年,美国卡内基梅隆大学:(CMU)计算机科学系主任周以真教授(JeannetteM.Wing)首次明确提出了计算思维(ComputationalThinking,CT)的概念,为计算机教育的改革指明了方向。2010年7月,在首届“九校联盟(C9)计算机基础课程研讨会”上,“985”首批9所高校就大学如何在新形势下提高计算机基础教学的质量、增强大学生计算思维能力的培养形成4点共识,提出要旗帜鲜明地把“计算思维能力的培养”作为计算机基础教学的核心任务。国内一些著名学者和专家率先开始研究计算思维的概念与内涵,思考计算思维对计算机科学研究以及计算机教育的启示,呼吁教育的转型:一些先行者大胆尝试在计算机基础课程中引入计算思维,践行新的教学理念和探索新的教学模式,陆续取得一些卓有成效的研究成果。
然而,思维毕竟是人类特有的一种精神活动,看不见摸不着。要想使学生接受计算思维行不是一件容易的事,问题的关键在于怎样做才能将计算思维的培养落到实处。例如,怎样构建一个包含计算思维典型特征的课程体系?怎样组织教学内容?通过何种教学模式能够更有效地培养学生的计算思维?笔者将就这些问题进行初步探讨并提出建议。
1.机遇与挑战
当今社会已步入数字化、信息化和网络化的新时代,信息技术的发展水平、运用水平和教育水平已成为衡量社会进步程度的重要标志,学习和掌握计算机的基础知识和技能是非计算机专业学生必须达到的基本要求,社会对各领域创新人才的需求对非计算机专业学生的计算能力提出了更高要求。如何针对社会需求重新定位大学计算机课程?怎样才能让学校和学生清晰准确地认识到该课程的重要性和价值?这是急需解决的一个关键问题。
在这种形势下,计算思维概念的提出正好为课程改革提供了一个难得的契机。按照周以真教授的定义,计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解的涵盖计算机科学之广度的一系列思维活动;计算思维的本质是抽象(Abstraction)和自动化(Automation)。陈国良院士指出,理论、实验和计算是推动人类文明进步和科技发展的三大支柱,计算思维是人类科学思维活动的三大组成部分(理论思维、实验思维、计算思维)之一,是数学思维与工程思维的互补与融合,计算思维无处不在。
然而,计算思维的养成和训练是一个长期、循序渐进、潜移默化的过程,不可能一蹴而就,与以往的教学有着不同的要求和目标,这些要求和目标对现有的教育观念和方式提出了新的挑战。对于如何在教学中实现计算思维的培养,还存在分歧和误区。有的教师认为计算思维不过是一些理论和概念,讲了也没有多大用处,还不如教给学生一些必需的计算机知识和技能;有的教师认为以往的教学中已经蕴含了计算思维的思想,没有必要专门讲解这个概念,而且思维是无形的,根本无法在课程或实践中传授,只能通过学生自己感悟;还有些教师则把计算思维的培养等同于理论知识的讲解,或者认为技能培养就是思维训练。
这些对计算思维的错误认识,导致计算思维的概念并没有与计算机基础课程的知识有机融合,知识的传授并没有转变为基于知识的思维传授,因此究竟怎样做才能避免只是简单地给课程贴上计算思维的标签,而是真正将计算思维的培养落到实处,让学生通过课程教学和实践体验到计算思维的魅力和价值,这是必须解决的另一个关键问题。
2.改革思路与措施
针对上述两个关键问题,我们以培养计算思维能力为主线,着重从以下几个方面对大学计算机课程进行改革。
2.1分析社会需求,明确课程定位
在很长一段时期内,大学计算机基础教学普遍注重计算机知识的传授和计算机应用技能的培养,学生学到的是有关计算机的一些概念及通用计算手段的应用,但是当今社会处于急需各种创新人才的高科技时代,学生仅仅具备这些能力是不够的。高速发展的经济社会要求非计算机专业学生未来应具备的计算能力是掌握支持各学科研究创新的新型计算手段并应用计算手段进行各学科的研究与创新,因此,大学计算机应定位于以计算思维为核心,以计算机知识为背景,使学生理解典型的计算思维,掌握基于计算技术/计算机的问题求解思路与方法,提高学生的计算机应用能力,培养学生应用计算思维和计算工具分析和处理专业领域实际问题的能力,为今后的创新活动奠定坚实基础。
2.2构建计算机知识与计算思维有机融合的课程体系
以计算思维能力培养为核心的计算机基础教学改革并不意味着一定要将现有的课程体系和教学内容“推倒重来”,而是在原有课程体系的基础上,以计算思维为主线,重新组织教学内容,适当增加新的能体现计算思维的知识点,删除一些陈旧的知识或技术细节,大幅度调整课程内容的结构,最终构建一个计算机知识与计算思维相融合的课程体系。
1)分析研究计算思维的内涵和特征。
在明确课程定位后,我们应首先仔细分析计算思维的内涵,研究计算思维包含哪些基本组成部分,这些基本组成部分的特征和表现是什么,确定在大学计算机知识体系中涉及计算思维的哪些概念;然后将知识体系分解为知识单元和知识点,研究这些知识点如何与计算思维的典型特征有机融合。
对计算思维内涵的解读有很多。2010年,PeterJ.Denning在ACM关于“什么是计算”的研讨会上指出:计算思维是一种解决问题的思维方法,这种方法将问题表示为关于某个计算模型(该模型必须被发明或发现)的信息处理过程,并寻求一种算法上的解决方案。2012年,李廉教授指出:“计算思维是人类科学思维中,以抽象化和自动化,或者说以形式化、程序化和机械化为特征的思维形式。计算思维的标志是有限性、确定性和机械性。计算思维的结论应该是构造性的、可操作的、能行的”。
战德臣教授提出的“计算之树”很好地描绘出融入计算思维后的大学计算机所面对的知识空间,即“核心”的计算思维,主要有“计算之树”的树根――计算技术与计算系统的奠基性思维:0和1、程序、递归;“计算之树”的树干――通用计算环境的进化思维:冯诺依曼机、个人计算机、并行与分布计算环境、云计算环境;“计算之树”的树枝――计算与(社会/自然)环境的融合思维;“计算之树”的双色枝杈――交替促进与共同进化的问题求解思维:算法与系统…。
2)选取典型的计算思维,构建新的课程体系。
北京航空航天大学于2012年开始参与教育部大学计算机课程改革项目“理工类高校计算思维与计算机课程研究及教材建设”,初步构建大学计算机课程体系,见表1。
由表1可见,课程分为7个教学单元,要求在每个教学单元的教学内容中,描述清楚计算机知识背后蕴含的计算思维是什么,指出哪些知识体现了计算学科的素养。例如,在计算原理教学单元中,计算思维主要涉及0和1的思维(基于电信号的硬件实现、逻辑真/假以及基于逻辑的理论与实现,任何信息都可以表示成0、1串,也就都能被计算,被计算机处理)、计算机语言发展进程蕴含的思维(语言与编译器)、计算机系统的思维(系统由基本动作以及基本动作的各种组合构成,可以按照“程序”控制“基本动作”的执行以实现复杂的功能);在算法描述与程序设计教学单元中,既要培养学生的计算思维,如指令与程序、算法、递归的思维,又要培养学生的计算学科素养,即程序设计方法与典型算法的基本素养。
2.3设计能够体现计算思维显著特征的教学案例
教学案例是教学内容的重要载体,如果采用抽象枯燥的理论讲解方式,学生将难以理解计算思维的抽象概念,更谈不上通过学习培养计算思维能力,因此需要设计能够体现计算思维显著特征的教学案例。我们通过分析计算机解题的思路和方法,着重讲解如何运用知识将实际问题转化成机器语言的思考过程,如提炼问题、转换问题、构建模型、设计算法、用合适的程序语言描述、用计算机解决问题,以促进学生对计算思维抽象和自动化本质特征的理解,掌握计算思维面向典型计算环境的问题求解方法。
2.4改革教学方法,促进学生计算思维能力的养成
恰当的教学方法才能展现计算思维的魅力和基本思想方法。过去以讲授知识点为主线的教学方法必须改变,应以讲授认识和应用计算机的思维过程为主线,使知识随着思维的展开而介绍,思维随着知识的贯通而形成,能力随着思维的理解而提高,这样循序渐进地促进学生计算思维能力的养成。
一方面,在课堂教学中采取基于计算思维的探究教学模式。探究教学就是将科学问题作为探究过程来讲授,让学生像科学家进行科学探究一样在探究过程中发现科学概念和规律,掌握科学方法,培养学生的探究能力和科学精神。在课堂教学中,教师提出基于计算思维的探究性问题,引导学生运用计算思维的一系列方法探索、发现问题的本质,通过简化、转换、递归、抽象、分解、建模等计算思维的基本方法,将一个复杂问题转换成许多简单的子问题并构建求解模型,进而充分利用计算机的运算能力实现问题求解。当学生掌握这种思维方法以后,教师再启发学生运用所学方法自主探究并解决更深层次的问题,从而达到知识巩固、迁移和内化为能力的目的。
另一方面,在实验教学中采取任务驱动的实验教学模式。教师只给出实验任务,要求学生自主完成一个系统或一个解决方案从设计到实现的全过程。学生主动思考,自主梳理知识,构建学习模式,规划解决方案,运用计算思维的方法自主设计和独立完成实验任务。基于计算思维的任务驱动实验教学模式将有利于培养学生自我建构知识、计算思维和创新的能力。
3.结语
关键词:计算机基础教学;计算思维;计算机
作者简介:徐新艳(1980-),女,江苏靖江人,南京工业大学电子与信息工程学院,讲师;孙冰(1977-),女,江苏南京人,南京工业大学电子与信息工程学院,讲师。(江苏南京210009)
但随着计算机硬件的飞速发展,计算机设备的日益更新,计算机对于大学生来说不再新奇与陌生。计算机应用软件的层出不穷也让很多大学生更多地沉迷于使用计算机进行简单轻松的娱乐、社交、网购等活动中无法自拔,从而忽略了真正该去学习和掌握的计算机辅助工作、辅助学习的技能。而计算机基础教学中一些客观存在的问题(如学时少、教学内容广等)长期得不到解决,导致教师教学任务太重,教学设计无法兼顾趣味性和互动性,陷入一种疲劳而无奈的填鸭式教学,学生也对所学内容越来越感到枯燥无趣,难以消化。逐渐地,很多人对高校计算机基础教学产生了信任危机,对其课程的存在产生了质疑。高校计算机基础教学的改革迫在眉睫,而近年来逐步兴起的计算思维的教学理念,为高校计算机基础教学的未来发展亮起了一盏明灯。
一、计算思维概念的提出
2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(JeannetteM.Wing)教授在美国计算机权威期刊《CommunicationsoftheACM》杂志上给出并定义了计算思维(ComputationalThinking)这一概念。[1]2008年6月,ACM(AssociationforComputingMachinery,美国计算机协会)在网上公布的对CS2001(CC2001)进行中期审查的报告(CS2001InterimReview)(草案),开始将周以真教授倡导的“计算思维”与“计算机导论”课程绑定在一起,并明确要求该课程讲授计算思维的本质。[2]2008年10月31日至11月2日,我国高等学校计算机教育研究会在桂林召开了一次关于“计算思维与计算机导论”的专题学术研讨会,探讨了科学思维与科学方法在计算机学科教学创新中的作用。来自全国80多所高校,包括70多位计算机学院院长、主管教学副院长在内的近百名专家出席了会议。[3]自2010年10月中国科学技术大学陈国良院士在“第六届大学计算机课程报告论坛”上倡议将计算思维引入大学计算机基础教学以后,计算思维得到了国内计算机基础教育界的广泛重视。[4]
二、计算思维的内容及理解
其实,计算思维的思想自古至今在人们的工作、学习和生活中处处存在,只是一直没有得到系统的阐述和理论的提升。比如做一道数学题、规划一条旅游线路、设计一次课堂教学等等,每一个例子都涉及了问题的提出、理解、设计及求解等过程,都使用到了计算思维的方法。
计算思维是人本来就有的,不是刻板的技能,是多个层次的抽象。计算思维早在计算机出现之前就已经存在了。计算机出现后,人将自身的计算思维的成果交给计算机去实现自动化。计算机计算能力强大,但却没有主动的思维能力,只能对人安排好的步骤去解决问题。而人的计算思维则具有主动性和创造力,人能借助自身的聪颖和想象力赋予计算机以智能和激情,使得计算机的工作不再机械和枯燥。
周以真教授将计算思维这一思想上升到了理论的高度,不仅提出了计算思维的概念和定义,认为计算思维是运用计算机科学的基础概念进行问题求解、系统设计,以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。同时她还对计算思维作了更详细的表述,将计算思维概括为具体的七大类方法。[1]
计算思维不仅适用于计算机学科,而且适用于所有能用计算机去进行辅助研究的学科。计算机学科具有广泛的社会基础,而计算思维是所有人都具备的潜在思维。计算思维具有规约、嵌入、转化、仿真、递归、并行、抽象、分解、保护、冗余、容错、纠错、系统恢复、启发式、规划、学习、调度、折中,优化等特征点,贯穿了人们解决实际问题的始终,包含了解决各种问题以及解决问题的各个阶段所有可以采用的核心思想。
三、在计算机基础教学中应注重计算思维能力的培养
计算机基础教学主要分为两大类,一是计算机基础理论学习,二是程序设计基础学习。计算机基础理论的每一章都对应了计算机专业的一门主干课程,内容系统而全面。程序设计基础内容从语法到算法,知识点零散且繁多。如果教师不将这些内容进行精心的组织和提炼就一股脑灌输给非计算机专业的学生,那么效果可想而知。进行概念填空式的教学方式已被证明不可行,教师不能再像以往那样专注于知识点的细枝末节。以前教师都是将整个课程作为一个完整的教学活动,平时讲授基本知识点,最后通过期末考试对学生学习效果进行评价。学生在学习每章的知识点时并不知道这些知识点之间有什么联系,也不知道有什么实际用途。学习完后没有及时通过形象的系统案例辅助记忆,所以遗忘也很快。期末考试只能测试出学生的应试能力,并不能测试出学生利用所学知识解决问题的能力。
计算思维的培养恰好能够解决这个问题。教师应根据知识点的分布将整个课程分成若干个小的教学活动,不再照本宣科,而是从为什么学、怎样去学、如何才能学得好、学了有什么用这几个方面去设计每一次的教学活动,启发学生如何去思考,发掘学生潜能,每一次的教学活动都是对学生计算思维的一次锻炼。
1.理论知识的学习
学生理论知识的学习主要以课堂教学为主。传统的课堂教学都是以教师讲为主,偶尔的师生互动也仅限于知识点的问答,学生的主观能动性得不到发挥,计算思维能力得不到培养。教师在课堂教学设计时,应注重资料准备工作,对新知识点的讲授不能仅依赖于课本,而更应该联系实际,特别是联系学生所学专业。比如在对化学专业的学生讲授二进制和八进制时,可将其与化学元素分布规律联系起来,这样不仅激发了学生的兴趣,而且在无形中将枯燥的纯计算机知识变得通俗易学,记忆深刻。教师在课堂上还应该鼓励学生走上讲台,勇敢发表对所学知识的理解。一旦学生主动思考了,那他们就会很自然地去分析问题,收集信息并找到途径解决问题。而教师要做的就是抛出问题,对学生解决问题的方式方法提出切实的建议,帮助学生进步。
2.实践环节的训练
四、总结
[1]董荣胜,古天龙.计算思维与计算机方法论[J].计算机科学,
2009,36(1):1-4.
[2]董荣胜.计算思维与计算机导论[J].计算机科学,2009,36(4):50-52.
[3]牟琴,谭良.计算思维的研究及其发展[J].计算机科学,2011,