基于计算思维的程序设计课程教学探讨
2017-02-06贺清碧
贺清碧
摘要: 培养学生计算思维能力是计算机基础课程教学中的核心任务之一,而计算机程序设计课程在计算机能力培养方面发挥着极其重要的作用。本文就针对于如何培养学生计算思维能力的问题,在计算机程序设计课程的教学中,从转变教学观念、因类施教、任务驱动教学模式和实践环节等方面提出了具体的策略。
Abstract: The cultivation of students' computational thinking ability is one of the core tasks of the teaching of basic computer courses, and computer programming courses in computer skills training play an extremely important role. In this paper for how to cultivate the students' computational thinking ability in the teaching of computer program design course, put forward the concrete strategies from the transformation of teaching idea, class teaching, task driven teaching mode and practice etc.
关键词: 计算思维;创新思维;任务驱动
Key words: computational thinking;creative thinking;task driven
中图分类号:TP311.1;G642.3 文献标识码:A 文章编号:1006-4311(2017)02-0249-02
0 引言
计算思维实质上就是一种人们对于一个问题的描述、建立模型以及问题的最后求解这一过程的科学思维能力[1],它已经成为人们本质的、必须具备的一种最基础、最普遍、最适用和不可缺少的基础思维方式和能力,就如同人们阅读、写字、做算术一样,它将是现代社会中每个公民必需的生存技能和工具。计算机思维是一种现代科学思维能力,该思维强调的是计算过程的具体实现以及如何利用程序语言控制机器来解决实际问题[2]。周以真教授提出的观点是:“计算思维是人类实现问题求解的一种途径,但决非要使人类像计算机那样思考。与计算机相比,人类富于创造力和想象力,使用计算设备,人们可以运用自己的智慧去解决那些在计算时代之前不敢尝试的问题”[3]。
因此,可以认为计算思维具有抽象和自动化的本质,是人们必须具备的一种最基础、最基本的思维方式和能力,在现代信息化社会中起到重大作用。所以在计算机程序设计课程体系中,如何引入计算思维理念,如何培养计算思维,有助于提高教育教学水平,同时促进计算思维在国内的进一步研究与传播,为计算机基础课程教学改革提供新的思路与视角。
1 计算思维
计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[4]。早在2006年3月,在美国计算机权威杂志ACM上,卡内基·梅隆大学计算机科学系周以真(Jeannette M.Wing)教授就率先提出了这一概念,随后在国内外掀起了有关计算思维的广泛研究与探讨。比如,在2007年3月,“微软-卡内基梅隆计算思维中心”成立,是由微软公司和卡内基·梅隆大学联合组建。同时,美国计算机协会(ACM)也随后提出在“计算机导论”课程中融入“计算思维”的理念[5]。
计算思维常用抽象与分解的方法来处理复杂的问题或系统,通过对问题进行合适的表达以及对问题建模来使问题变得容易解决,其本质是抽象和自动化,如同每个人都应该具备“读、写、算”能力一样,它是人类改造世界的最基本的思维模式[6]。然而计算思维的抽象是用符号来代替现实问题中的各种变量,它的自动化体现在程序的机械式执行方面。
2 程序设计课程中培养计算思维能力的策略
2.1 转变教师的教学观念
当今科学技术和社会的加速发展,给教育不断提出了很多新的需求,迫使教育工作者们教育观念必须与时俱进。遵照计算机学科的“构造性”和“能行性”特征,就需要强化基于计算思维能力的计算机基础课理论教育。在计算机程序设计课程的教学中,在学时压缩和社会高需求下,培养学生抽象的归纳力和理解力等计算思维能力,比如,如何唤醒学生潜在的力量,提起他们的兴趣、鼓励其积极性,训练其自我性和主动性,成为我们教学研究的重点。所以我们必须在教学观念上研究如何做到以人为本,针对在较大程度上又是以思维方式的数学化为支撑的计算思维能力,如何在教学的每一个环节去思考计算思维能力的培养。比如,在计算机程序设计课程的教学过程中强化计算思维训练的时候,计算思维就其严谨[7]性的特点,要求在描述问题时,必须采用确定的、形式化的、不能有二义性的语言,当学生在编写程序时使用了错误的符号或者语法,这个时候就要耐心引导学生一起帮助他们去分析发现问题存在的错误,找出原因并加以修正,这样可以培养学生良好的编程习惯和严谨的科学态度,强化计算思维的严谨性。计算思维有一个非常明确的目标即解决问题。所以在计算机程序设计课程的教学过程中,引导学生在现有的知识体系上,大胆地提出问题,用抽象化和程序化的形式将问题描述出来,然后用计算机程序语言来解决,通过这种方式可以培养学生自己提出问题和解决问题的能力。同时计算思维又是机械化的[8],在训练学生所用计算思维的算法来描述问题、解决问题时,要充分利用现代计算机,从而培养学生掌握使用机械化思维进行信息处理的能力。
2.2 因类施教
大类教学现在是我国各个高校课程体系改革的发展方向,根据各个大类(例如,理学类、艺体类、工程类和文史类)中学生的特点和各个专业的需要,在计算机程序设计教学中,首先在教学内容的选取上加以区别对待,在各个学科大类中,都利用计算机语言编写程序,用计算机这个先进的智力工具来解决各种问题,突出各个专业特色和各个学科与计算机通用理论体系的交叉性。
其次,对计算机程序设计的实验教学内容,结合各个学科特点,设计一些跨学科的综合性实验。在师资队伍方面,组成一个跨专业背景的教学团队。为了使学生熟悉理解计算机学科的普适思维方式[9],课堂上采用本学科的案例教学来培养学生计算思维的方式,包括对问题进行逻辑和科学的分析,基本概念、基本方法、问题解决的方法(抽象到数学层次上去解决)以及编程的思路等。这样让学生感知计算机在本学科领域的强大应用,加深对本专业领域中计算机应用的感性认识和理解,同时掌握问题解决是所用到的计算方法与思想。
2.3 任务驱动教学模式
在计算机程序设计教学中,采用任务驱动教学模式培养学生计算思维,就是在提出任务、实施任务、完成任务等各个环节中,注重培养学生如何用计算思维的方法去分析问题、解决问题。其中精心设计提出任务是实施任务驱动教学模式的关键。设计任务时注意选择贴近生活和能让学生感兴趣的内容,给学生提供计算思维的创新空间。注意任务的典型性,同时兼顾知识的覆盖面,学生利用现有的能力能够实现,同时要具有一定的代表性,对解决其它相似问题具有指导意义。在任务的实施过程中,为提高学生的计算思维能力,教师要起好引导作用,引导学生利用所学知识,一步步分析任务,提出问题,充分调动学生的好奇心和求知欲,发挥个人潜能去分析并寻找解决问题的方法,提高自主思维的能力,引导学生用计算机编程在计算机上加以调试实现。学生完成一项任务后,要分组交流、讨论一下任务的情况,作好总结,指导教师及时对完成情况做出正确评价。通过这种任务驱动教学一方面使学生进一步巩固和提高了所掌握的知识与技能,同时又给学生创造了一个集思广益、开拓思路的宽松的学习氛围。通过这种基于计算思维的任务驱动教学模式,可培养学生发现问题并解决问题的计算思维能力。
2.4 强化实践环节
计算思维突出的特点是借用计算机这一强大优势的计算工具来解决问题。因此,面对要求解的问题,人们常常将分析后的问题最后抽象成一个数学模型,即抽象到数学层次上,想出该问题的计算步骤,用计算机语言编程,最后在机器上验证其可行与否,正确与否。计算机程序设计课程中的编程能力又综合体现出学生所具有的计算思维和技能化知识,其计算思维的正确性还要通过反复的上机实践加以证明,所以在计算机程序设计课程中必须大力强化实践环节。
在实践环节中,为了培养学生个体思维和操作能力,实验内容分为三种,即验证性实验,设计性实验和调试性实验,另外在配有课后强化计算思维训练的实验思考。在每次实验中,教师引导学生养成良好的计算思维和编程的好习惯,有意识地训练学生仔细阅读题目,找出问题的关键并抽象为数学模型,思考数学模型求解的步骤,用所学的计算机编程语言将算法编写一个源程序在计算机上调试运行,并能对每个程序的结果加以分析,引导学生对已有算法的优缺点进行思考和分析,并如何进行简化和优化,最好能给出一些能优化改进的算法。鼓励学生要有发散性思维,提倡算法的多样化。通过以上方法强化实践教学环节,从而培养学生在问题求解和机器实现方面的计算思维能力。
3 结束语
在计算机程序设计课程教学中融入计算思维的理念,在教学过程中将教学重心从计算机语言、语法和规则等的讲解转移到培养计算思维的各个学科案例和实践任务中;以培养计算思维能力为核心,从思维方法的高度培养学生,培养学生在考虑问题时,能主动地、自主地、习惯地采用计算思维来解决各个领域的实际问题,以满足国家对培养创新型人才的需要。
参考文献:
[1]牟琴,谭良.计算思维的研究及其进展[J].计算机科学,2011(3):10-15.
[2]Wing J M,谭良.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[3]王移芝,鲁凌云,周围.以计算思维为航标,拓展计算机基础课程改革的新思路[J].中国大学教学,2012(6):39-41.
[4]Jeannette M W. Computational Thinking[J]. Communications of ACM. 2006,49(3):33-35.
[5]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):9.
[6]牟琴,谭良.计算思维的研究及其进展[J].计算机科学,2011(3):10-15.
[7]董荣胜.计算机科学导论:思想与方法[M].北京:高等教育出版社,2007:101-102.
[8]陈杰华.程序设计课程中强化计算思维训练的实践探索[J]. 电化教育研究,2009(10):84-85.
[9]朱鸣华,赵铭伟,赵晶,等.计算机基础教学中计算思维能力培养的探讨[J].中国大学教学,2012(3):33-35.