基于计算思维的计算机导论课程教学改革
2016-09-28卢桂馥
卢桂馥
(1.安徽工程大学 计算机与信息学院,安徽 芜湖 241000; 2.东南大学 信息科学与工程学院,江苏 南京 210096)
基于计算思维的计算机导论课程教学改革
卢桂馥1,2
(1.安徽工程大学 计算机与信息学院,安徽 芜湖241000;2.东南大学 信息科学与工程学院,江苏 南京210096)
计算思维的概念在当前国内外计算机学界受到广泛的关注,同时计算思维能力也已成为现代高素质人才所必须的一种基本能力。为了培养学生的计算思维能力,对计算机导论课程进行了全面改革,设计了一种切实可行的培养学生计算思维能力的计算机导论课程的改革方案。
计算思维;计算机导论;教学改革
在很多高校,计算机导论这门课都是计算机科学与技术相关专业学生进入大学后的第一门专业基础课,[1-3]笔者所在学校——安徽工程大学——也不例外。计算机导论这门课程内容极其丰富,涉及了计算机科学与技术一级学科几乎所有的内容,且有一定的深度。另外,由于计算机导论是学生进入大学后所学习的第一门专业基础课,而学生又几乎没有计算机科学与技术专业的相关专业知识背景。因此,虽然这只是一门导论性质的课程,学生在学习的过程中还是会感到有一定的难度。学生对于许多知识的掌握还不够透彻,往往只是停留在表面。
另外,虽然很多高校的计算机科学与技术专业的相关学生都会开设计算机导论这门专业基础课,但是这门课到底要讲授些什么内容,还一直存在着争议。总的来说,国内不同高校的计算机导论课程的教学内容可以分为两大类:一类是主要介绍计算机基础知识以及办公软件的使用,如Windows,Word字处理软件,Excel的操作等;另一类则从方法论的角度出发,力图通过对计算机这个学科进行科学化的描述,从而让学生了解整个计算机学科的发展历史,思维模式以及根本问题。[4]
经过多年的教学实践,笔者认为,计算机导论这门课程的主要作用应体现在:使学生认知计算机学科的核心知识和基本原理,了解计算机学科的本质和思维方式,在授课的过程中,应以训练学生的计算思维为主,从而为学生搭建起计算机学科的整体框架,为学生后续的计算机专业课程的学习打下坚实的基础。
一 计算思维
计算思维的概念最早由美国卡内基梅隆大学的周以真教授提出,[5]此概念一经提出就在国内外计算机界引起了重大的反响,从而使得如何培养学生的计算思维能力成为当前计算机教育的一个重要研究内容。梅以真教授把计算思维定义为:运用计算机科学的基础概念去求解问题、设计系统和理解人类行为。[5]此外,梅以真教授认为:除阅读、写作和算术能力以外,计算思维能力也是每个孩子所应必须掌握的能力。[6]计算思维中包含了许多在计算机学科中被广泛使用的思维方法:即通过抽象分层,构造,约简,形式化等方法,把一个复杂的问题分解为可以求解的简单问题的思维方法。
具体而言,计算思维包含6种思维方式:1.计算思维是这样一种思维,即通过约简,嵌入,变换或模拟等方法,把一个复杂的问题变换为一个我们可以解决的问题;2.计算思维是一种并行处理和递归思维,且是一种能把代码解释为数据或把数据解释为代码的思维;3.计算思维是一种利用抽象和分解来处理一个庞大复杂的任务或设计一个复杂的系统的思维;4.计算思维是一种通过预防、保护和在最坏情况下通过冗余、容错、纠错来进行系统恢复的一种思维方法;5.计算思维是一种利用启发式推理来寻找解决方案的思维方法;6.计算思维是一种利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行权衡的思维方式。
二 基于计算思维的计算机导论教学内容的改革
在2008年美国计算机协会(ACM)公布的CC2001(CS2001)中期检查报告(草案)中,明确指出需将“计算思维”和“计算机导论”课程联系在一起,且指出计算机导论课程应主要向学生讲授计算思维的本质。因此,在计算机导论的教学中,应以计算思维的培养为根本目的,让学生在学习的过程中逐渐习惯以计算机科学家的方式进行思维。
1.基于计算思维的计算机导论的课程内容。
近年来,笔者逐步完善了计算机导论课程的结构、内容和形式,将教学重点放在培养学生的计算思维能力上,并在教学实践的过程中逐步完善了场景问题教学法,同时笔者从应用的角度出发来讲授计算机学科的各个不同领域,通过实际问题和应用需求来引起学生的听课兴趣,从而将学生引入计算机学科的各个领域之中。本课程的知识体系结构如图1所示。
图1 基于计算思维的计算机导论的课程体系结构
从图1可以看出,本课程的内容可以分为3个模块。第一个模块的主要内容是认知和导学,首先带领学生从计算机科学与技术专业的角度来认识计算机,然后了解计算机系统的工作原理,再进一步正确认识计算机学科,并能够理解计算机学科的根本问题和计算机学科的科学问题,最后介绍应如何来学习计算机学科;第二个模块的主要内容是领域的基本知识和核心思想,即通过讲授计算机学科各个领域的应用需求,基本技术和发展历史,从而使学生了解计算机学科的核心思想,为将来学习各门专业(基础)课打下坚实的基础;第三个模块的主要内容是计算机学科相关的职业和职业道德,即通过一些典型案例以及法律法规等使学生了解计算机学科的行为规范,为学生将来走向工作岗位作准备。
2.计算思维驱动的计算机导论课程的教学方法。
在授课的过程中,为了达到培养学生计算思维能力的目的,并使学生在学完计算机导论这门课程后能够热爱和尊重计算机科学与技术专业,并进一步地明确大学四年的学习目标和方向,笔者采取了如下的方法来对计算机导论这门课程进行授课。
(1)理清计算机导论这门课程的教学主线,并依此来设计相应的课程结构。
俗话说,纲举才能目张,只有牢牢把握教学主线,才能设计出合理的课程结构。具体而言,计算机导论这门课程包括一根明线,这根明线指的是计算机导论这门课程的内容章节,这也是这门课程的“骨架”所在,并且反映了本课程内容之间的逻辑关系;还包括多条暗线,这里暗线指的是计算机导论这门课程的各个章节之间的内在联系,这反映了授课内容之间的隐含关系;也还包括纵横虚线,纵横虚线指的是计算机导论这门课程所涉及到的各类相关学科知识,这体现了计算机导论这门课程的深度和广度。
(2)注重教学组织和教学设计。
计算机导论这门课程是计算机科学与技术相关专业学生在大学期间接触的第一门专业基础课,在整个计算机科学与技术相关专业的课程体系结构中处于入门引导地位。虽然对课程中出现的大部分专业术语和概念对学生的要求只是定位在“了解”层次,但在授课时不能只是简单地堆砌计算机学科的基础知识。具体而言,笔者在教学过程中采用如下教学方法。
①情景问题教学法 。
从生活中学生比较熟悉的计算机技术的应用案例出发,采用情景问题教学法,激发学生从计算机科学与技术专业的角度来思考技术问题。此外,在介绍具体的计算机知识时不做详细的展开和介绍,从而避免引入过多的学生不太容易理解的专业术语。例如:在介绍计算机硬件系统时,从学生实际购买计算机系统开讲,然后从专业的角度来介绍计算机硬件系统;在介绍计算机操作系统时,通过介绍计算机病毒的相关知识,来引起学生对操作系统存在的漏洞的思考。
②图解教学法 。
为了让学生加深对计算机学科一些核心问题的理解,笔者在教学的时候根据教学内容,设计了许多对比式图片,让学生能够比较容易地掌计算机学科根本问题的本质所在。例如:在介绍旅行商(TSP)问题、汉诺塔问题、哲学家共餐问题时,通过引入对比式图片,深入浅出地讲解了计算机学科的内在科学规律和本质。
③抽象分层教学法 。
抽象思维是计算思维的主要特征之一,也是计算机技术的典型特征之一。笔者在介绍每个计算机学科的专题知识时,往往从顶层或底层开始介绍,然后逐层介绍相关技术的原理和基本思想。例如,在介绍计算机编程语言时,从最底层的机器语言第一代程序设计语言——机器语言开始介绍,然后介绍第二代程序设计语言——汇编语言和第三代程序设计语言——高级语言,最后介绍第四代程序设计语言——非过程式语言和第五代程序设计语言——知识型语言;在介绍计算机的硬件系统时,从最底层的逻辑电路开始介绍,然后介绍集成电路和存储器,最后介绍处理器(CPU)和I/O设备(输入/输出设备);在介绍程序设计时,则从最顶层的问题开始介绍,到求解问题的思路和想法,然后介绍相关的数据结构和算法,最后介绍如何用编程语言来具体实现。
④讲座与讨论 。
在授课的过程中,也邀请本学院不同研究方向的教师开展讲座,让学生能够了解计算机学科的前沿发展方向,例如,邀请大数据和机器学习研究方向的教师介绍机器学习在当今大数据时代的应用;此外,也邀请高年级优秀的学生来介绍学习心得和体会,比如,邀请在各类竞赛中获奖的学生介绍比赛的经验和体会,从而激发学生的学习兴趣以及树立起今后的学习目标。
(3)强调系统观念和整体概念。
在教学实践中向学生灌输计算机系统是一个整体这样的概念,同时也强调不同专业(基础)课程存在着密切的联系。让学生明白,在大学学习阶段和高中学习阶段存在的差异,在大学的课堂上,不仅要学习专业知识,更重要的是要掌握学习的方法;让学生知道对于计算机科学与技术专业而言,不仅要把理论知识吃透,更重要的是要在“做中学”(Learning By Doing)。
3.改革考核方式,对整个教学过程进行监控。
计算思维能力的培养不会是一蹴而就的,而是一个长期的过程。学习和思维两者之间并不是独立的,而是密切地联系在一起的。因此,为了强化学生计算思维能力的培养,必须对整个教学过程进行有效的监督,对每个学生在教学过程中的表现进行正确评价,这样才能最大限度地培养学生的计算思维能力。
具体的,在讲解新的知识点时,笔者要求学生事先收集相关资料并加以了解,然后在课堂上通过提问的方式来掌握学生课前的准备情况,并给出相应的分数;在布置作业时,不是布置一些常识性的题目,而是布置一些开放性的题目,从而不仅可以有效地避免学生作业相互抄袭的问题,也能让学生主动思考,培养学生的计算思维能力,此外,教师在批改作业的过程中可以及时了解学生思维能力的变化,从而合理调整后续的授课内容;在学期结束时,不是采用常见的闭卷考试来考核学生的成绩,而是给学生布置一些具有挑战性和合作性的题目,让学生根据自己的兴趣来组成多个研究小组,最终通过学生提交的论文(或研究报告)以及PPT答辩的形式给出学生这门课程的成绩。
结束语
计算机技术不仅为人类所面临的各种问题提供了有效的解决方法和手段,更重要的是提供了一种全新的思维方式。因此,在计算机导论课程的教学过程中,笔者始终把培养学生的计算思维能力放在第一位,采用多种教学方式,激发学生学习的兴趣和主动性,为学生后续专业(基础)课程的学习打下扎实的基础。当然,计算思维能力的培养是一个长期的过程,也将是一个“活到老学到老”的过程。每位教师在教学的过程中应“授人以渔”而不是“授人以鱼”。
[1]赵霞, 李凤霞, 蔡强, 李海生, 张珣.计算机导论课程的教学改革探索 [J].计算机教育,2015 (17):13-16.
[2]谭红叶, 王文剑, 李茹.计算思维和MOOC理念下的计算机导论课程 [J].计算机教育,2015 (13):46-49.
[3]毛嘉莉, 李明东, 赖晓风, 董文.基于计算思维的《计算机导论》课程改革实践 [J]. 西华师范大学学报(自然科学版),2014,35 (1) :87-90.
[4]胡明, 王红梅.计算机学科概论[M].2版. 北京:清华大学出版社, 2011.
[5]Wing, J.M., Computational thinking [J]. Communications of the ACM, 2006,49 (3) :33-35.
[6]牟琴, 谭良.计算思维的研究及其进展[J].计算机科学, 2011,38 (3):10-16.
Class No.:G642.0Document Mark:A
(责任编辑:宋瑞斌)
Teaching Reform of Introduction to Computer Science Based on Computational Thinking
Lu Guifu1,2
(1.School of Computer and Information, AnHui Polytechnic University, Wuhu, Anhui 241000, China;2.School of Information Science and Engineering, Southeast University, Nanjing 210096,China)
The concept of computational thinking has received wide attention in the field of computer science at home and abroad, which has become a basic ability for high quality talents. In order to develop students' ability of computational thinking, an overall teaching reform of introduction to computer science has been conducted. The reform scheme cultivated the ability of students' computational thinking, has been designed.
computational thinking; introduction to computer science; teaching reform
卢桂馥,博士,副教授,安徽工程大学计算机与信息学院;博士后,东南大学信息科学与工程学院。研究方向:计算机视觉、模式识别。
国家自然科学基金(No. 61572033 , 71371012);安徽省教育厅高等学校省级质量工程项目(No:2015jxtd018);安徽工程大学本科教学质量提升计划项目(No:2014xquz02)。
1672-6758(2016)09-0022-3
G642.0
A