计算机基础教学中计算思维的运用
2014-07-25李斌
[摘要]文章阐述在大学开设计算机基础课程的必要性,针对目前教学现状描述的问题,提出在计算机基础教学中如何灵活运用计算思维,围绕计算思维的抽象特性和关注点分离特性,培养学生的计算思维能力,以达到改革计算机基础教学内容及教学方法的目的。
[关键词]计算机基础计算思维信息技术程序设计关注点分离
[中图分类号]G642[文献标识码]A[文章编号]2095-3437(2014)02-0082-02
一、计算机基础课程开设的必要性
随着社会信息化不断地发展,计算机技术更多地融入其它学科和专业课的教学中,以计算机技术为核心的信息技术已成为很多专业课教学内容的有机组成部分,各专业对学生的计算机应用能力也有了更加明确和具体的要求。
2006年,由教育部高教司委托、教指委主持编制的《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》文件明确提出了进一步加强计算机基础教学的若干建议,确立了“4领域×3层次”计算机基础教学内容知识结构的总体构架,构建了“1+X”的课程设置方案,并将“大学计算机基础”作为第一门课程。
二、教学现状
大学非计算机专业的计算机基础理论课涵盖了很多计算机专业知识,比如:计算机组成原理、操作系统、网络等。这些知识点本身比较抽象,难以理解,也不易听懂,学生普遍认为它们与本专业无关,再加上部分教师自身知识量储备不够从而影响了教学效果。所以很多学生学习兴趣不高并反映到学校,导致大学计算机基础课的教学得不到学校的足够重视,学时被压缩甚至被取消。在这样严峻的形势下,计算机基础教学面临着巨大的挑战,计算机基础教学内容和教学方法的改革也就势在必行。
三、计算思维
计算思维一词由美国卡内基·梅隆大学周以真教授于2006年提出,周教授认为计算思维应该是21世纪每个人必须具备的基本技能。计算思维是一种新的思维方法,它的本质就是抽象和自动化,即如何按照计算机求解问题的基本方法去考虑问题的求解,进行系统设计并理解人类行为,以便构建出相应的算法和基本程序。依据周教授的观点,它包含了简约、转化、嵌入、仿真、关注点分解、递归思维、并行处理等思维方法,具体内容在此就不赘述了。
2010年7月,在由西安交通大学主办的“九校联盟(C9)计算机基础课程研讨会”上,第一次明确地把“计算思维能力的培养”作为计算机基础教学的核心任务,并进一步确立了计算机基础教学在大学教育中的基础地位。
四、信息技术基础课程中计算思维的运用
南京工业大学现在将南京大学出版社出版的大学计算机信息技术教程作为大一新生计算机的入门课程,该教材包含计算机信息技术概述、计算机组成原理、计算机软件、计算机网络、数字媒体及数据库等知识点。开设这门课程的目的是拓展学生的视野,为后续课程的学习做好必要的知识准备,使他们在各自的专业中能够有意识地借鉴、引入计算机科学中的一些理念、技术和方法,期望他们能在一个较高的层次上利用计算机、认识并处理计算机应用中可能出现的问题。那么,在教学过程中有意识地运用计算思维的理念,就可以帮助学生理解计算机中一些比较抽象的概念。
比如,我们可能最常问到的问题是:数据是怎么保存到计算机中的?音频、视频和图片为什么可以在计算机中展现出来?计算机和以前的磁带、胶片有什么区别?这些都不得不涉及到二进制,所以二进制实际上贯穿了大部分知识点。那么,我们在授课中不能只是为讲二进制而讲二进制,还需要让学生了解到为什么用二进制?原来大多数电子器件都只需要两种状态,这一点决定了使用二进制更加方便也容易计算。这正说明了使用计算机思维和人脑思维的区别,试想如果使用从学数学开始就知道的十进制,那计算机实现起来该是多么的复杂!二进制正好体现了计算思维中的简约。
再比如,计算机软件章节中会讲到“文件系统”这个概念。教师可以先提出“文件以什么组织形式保存在计算机里”、“文件内的数据是不是连续存放在计算机里”、“文件怎么存放更安全”等一系列问题,其目的是培养学生计算思维的能力。然后教师介绍NTFS文件系统与FAT32文件系统的区别,让学生明白NTFS文件系统更加安全以及文件内容非连续存放的好处,同时让学生理解计算思维就是“按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法”。
还比如,数字媒体章节中,先让学生计算一分钟的非压缩视频文件大小,接着提问这些非压缩视频在网络带宽受限情况下传输会发生什么问题?如何解决该问题?这很自然就引出了数字媒体压缩的概念,也让学生明白了计算机处理能力与存储容量之间的矛盾,从而体现了计算思维也是“在时间和空间之间,在处理能力和存储容量之间进行折中的思维方法”。
五、程序设计基础课程中计算思维的运用
在前述信息技术基础课程中计算思维能力的培养,会为后续程序设计基础课程的学习打下良好的基础,这两门课程本身就是一脉相承的。例如:二进制会体现在程序设计的逻辑条件中,文件数据非连续存放会体现在程序设计的数据结构中,数字媒体压缩会体现在相关有损或无损压缩算法中。然而程序设计课程中计算思维的培养会更加困难些,因为每门编程语言都有自己固定的语法,也比较抽象,而抽象正是计算思维的本质之一,如果不经过适当的思维训练,学生很可能最后出现“只会背程序不会写程序”的尴尬境地。
计算机编程语言知识点繁多,分散但是又相互关联,如果教师的教学方法不当的话,很容易让学生迷失方向导致学生产生厌学心理。教学中常出现的问题是:填鸭式教学、照本宣科、不注重知识点间的内在联系。鉴于此,笔者在C++程序设计教学中尝试采用了如下解决办法:
1.要求学生预习下次上课(理论课)内容,不强求深入研究,只需了解主要知识点,并布置简单的预习作业。
2.强调上机实验课的重要性。实验课是语言课非常重要的环节,它用来巩固和帮助学生理解编程语言抽象的语法和语句,是计算思维的实践。在上实验课前,我们会准备一些与本次实验相关的习题或辅助的阅读材料,这些习题和材料有助于引导学生将人脑里的编程算法转换成计算机能实现的算法,即培养学生的计算思维能力。上机前学生必须完成代码的草稿版本并在上机课时给任课教师检查,上实验课时学生只能调试程序,同时教师要教授学生调试程序的方法。调试方法往往是教师容易忽视的环节,如果学生知道怎么调试程序,也就知道程序的运行过程和计算机的思维方式,更容易发现程序中的错误。
3.实验课结束时要求学生上交实验报告,实验报告上的程序代码应该是正确的代码,并且要总结本次实验心得。实验心得通常是代码出错的原因,也是重新理清编程思路并锻炼逻辑思维能力的过程。
4.上理论课时注意章节之间知识点的衔接,可以采用与日常生活比较贴近的项目(案例)驱动的形式将C++大部分的知识点贯穿起来,比如:飞机票售票系统。在第一节理论课时,就告诉学生本学期要完成的最终案例的详细功能需求,然后在每次上课时都围绕这个案例提出一些问题,同时需要学生配合积极开动脑筋寻找问题的解决办法,接着由这些问题很自然地引出新的知识点,这样可以一点一点完善进而完成案例的一个一个功能,从而慢慢培养学生如何采用抽象和分解来控制庞杂的任务,也就是计算思维的关注点分离。
关于“关注点分离”,笔者认为这是计算思维非常重要的一个特性,而在C++程序设计课中也处处体现了这一特性。例如:“类的派生”章节中,学生也许理解派生类的概念,但是未必理解派生类究竟可以用在什么地方。学生毕竟没有项目工程经验,也很少有条件学以致用,所以往往知其然但不知其用。这就要求教师在授课中介绍一些项目的架构和设计模式,比如:三层架构、简单工厂设计模式等等,它们完美地应用了“关注点分离”,也完美地解释了什么是“类的派生”。有意识地给学生加强外延知识学习,是培养计算思维的一种较好的方式。
六、结语
计算思维的培养是一个系统工程,不仅要培养学生的计算思维能力,更重要的是首先要培养教师的计算思维能力。以前的教学方法包括使用的教材都不太适合计算思维能力的养成,所以教学内容和教学方法的改革刻不容缓。但是计算思维能力培养落实到计算机基础教学,难度很大,这需要我们共同探讨,还需要教育界各部门的足够重视。
[参考文献]
[1]周以真.计算思维[J].中国计算机学会通讯,2007,(11):83-85.
[2]何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010,(9).
[3]何明昕.关注点分离在计算思维和软件工程中的方法论意义[J].计算机科学,2009,36(4):60-63.
[4]赵璐,吕俊,李斌.VisualC++程序设计教程[M].南京:南京大学出版社,2009.
[责任编辑:左芸]