中外非计算机专业计算机基础教育调研与思考
2009-02-04张莉张林
张 莉 张 林
摘要:本文回顾了中国和美国在计算机基础教育的发展历史,通过调研国外高校在计算机基础教育方面的理念和方法,对比分析了中外高校在计算机基础教育课程设置方面的差异,对我国高校计算机基础教育现存的问题提出了建议和对策。
关键词:计算机基础教育;非计算机专业;教学改革
中图分类号:G642 文献标识码:B
非计算机专业占全体大学生的95%以上,对这部分学生进行计算机教育是提高高等学校教学质量的重要组成部分。由于我国计算机基础教育的发展只有短短的二十年,而且覆盖的专业众多,涉及的学校类型各异,因此,对计算机基础教育中的一些问题,目前在认识上还存在着差异。
笔者前期查阅了国外特别是美国的一些计算机基础教育文章和资料,国外的同行们在计算机基础教育教学理念、教学内容、教学方法等方面做了很多很好的探索,很多经验值得我们国内高等学校学习、借鉴和推广,本文就此阐述一些体会和感想。
1中外计算机基础教育历史回顾
研究计算机基础教育的现状和问题,需要首先研究计算机基础教育的历史。在历史背景下重新审视中外计算机基础教育的发展历程,总结经验,寻找借鉴之处。
1.1我国计算机基础教育发展历程
我国高校的计算机基础教育主要经历了5个阶段:萌芽阶段、起初阶段、形成阶段、发展阶段和提高阶段。
萌芽阶段始于上个世纪七十年代末,该阶段的计算机基础教育以介绍一些计算机发展史和硬件基础知识为主,并开设了一些算法语言课。
八十年代初,随着PC机、操作系统以及BASIC语言软件的出现,计算机基础教育得到了一定程度的普及,进入了初始阶段。国内理工科院校纷纷为非计算机专业的大学生开设计算机课程,目的是解决科学计算和数据管理问题。在此期间,谭浩强教授等出版了《BASIC语言》,全国高等院校计算机基础教育研究会成立,并在1985年提出了计算机基础教育要分成4个教学层次,即计算机基础知识与微型机系统的操作与使用;高级语言程序设计;软硬件基本知识;结合各专业的计算机应用课程。
九十年代,随着工科计算机基础课程指导委员会和文科计算机教育指导小组的相继成立,国家教育委员会开始面向全体大学生开展计算机基础教育,这时计算机基础教育进入了形成阶段。1997年教育部发布的155号文件,全面提出了对大学生进行计算机基础教育的目标、要求和内容,并提出了计算机基础教育要分成3个层次,即计算机文化基础、计算机技术基础、计算机应用基础。
计算机基础教育的发展阶段是从二十世纪末到二十一世纪初,非计算机专业的计算机基础教育逐步开始规范,许多学校成立了计算机基础教学部或教学研究机构,非计算机专业的计算机基础教育内容也开始变得丰富多彩,除了计算机发展史、程序设计语言的学习外,增加了Word、Excel、PPT、网络知识、网页制作、电子邮件、多媒体技术等内容,有些专业开设了“C++”、“Java”、“数据库技术”、“数据结构”等课程,形成了现在的计算机文化基础的教育模式,即包括计算机基本知识、计算机操作技能、计算机程序设计和计算机应用基础等内容。
二十一世纪以来,计算机基础教育取得了长足的发展,进入到提高阶段。教育部2004年正式颁发了“关于进一步加强高校计算机基础教学的几点意见”的《计算机基础教育白皮书》,使得计算机基础教育在高校的地位得到了明显的提高,教学条件也有了较大的改善,教学质量有了很大的提高,同时形成了稳定的师资队伍和有力的研究团队,教材建设也有了很大的发展。
1.2美国计算机基础教育发展历程
国外大学计算机基础教学几乎经历了和我们一样的历程,但是它们起步较早,发展速度快,其中美国是世界上开展计算机教育、网络教育、信息技术教育最早的国家。这与其科技、经济、军事、教育等方面的领先发展密切相关。
上世纪七十年代初,美国开始大范围非计算机专业的计算机教育,并且持续到八十年代,主要课程有“程序设计”或“计算机文化基础”以及各种工具软件的使用。据1985年的一个调研表明:60%的大学新生有半年以上的计算机学习经历。其主要源于美国的中学计算机教育发展迅速。到了八十年代中后期,美国的计算机普及教育发生了思路上的转变。其一是1989年发表在ACM的一篇文章提出,新一代的计算机文化基础应该是一个面向原理的课程(“A principles-oriented course”),即建议计算机基础教育应当讲计算机的原理课程和代表计算灵魂的算法课程。另有思路认为,高校的计算机基础应该讲述“信息素养”(“information literacy”)和“信息技术通晓”(“information fluency”)课程,其目的是让学生具有获取和维护各种数字信息的能力。
八十年代中后期,许多大学开始为非计算机专业开设“计算机导论”课,该课程开设的总体目的是介绍计算机的工作原理和几十年来取得的成绩,最大限度理解计算机的能力和局限。其主要内容包括程序设计、软硬件等基础,也包括如程序时间复杂性、并行体系结构、不可计算性和人工智能等一些提高内容。学生的实践活动主要包括编程练习、电路设计问题、汇编语言程序设计、手工仿真编译程序、研究程序的执行时间、并行机的程序设计、不可计算性证明和一些人工智能系统的手工仿真。
由于美国教育行政实行地主分权,各地都有教育自主权,教育的目标、内容、课程、教科书等因地区而异,信息技术教育也呈现多元化格局。为此,美国十分重视国家统一标准的研制工作。在信息技术教育方面,1985年,美国科学促进协会(AAAS)发起了有关教育改革长期规划的研制工作,聘请了400位国内外著名的科学家、教授、教师、管理人员,用了近4年的时间于1989年完成并公布了题为《2061计划:面向全体美国人的科学》。该计划对美国信息技术教育发展的意义在于:(1)将信息科学、计算机技术、人工智能纳入到科学教育体系中。(2)把提高全民的“科学素养”作为科学教育的首要目标和解决教育问题的主要办法。这为“信息素养”概念的拓展奠定了基础。(3)对实行地方分权制的美国教育体制而言,建立了一个学校教育改革的统一规划和标准。
1998年,美国全国图书馆协会和教育传播与技术协会制定了学生学习的九大信息素养标准:能有效地、高效地获取信息;能熟练地、批判性地评价信息;能精确地、创造性地使用信息;能探求与个人兴趣有关的信息;能欣赏作品和其他对信息创造性表达的内容;能力争在信息查询和知识创新中做得最好;能认识信息对民主化社会的重要性;能实施与信息和信息技术相关的符合伦理道德的行为;能积极参与小组的活动来探求和创建信息。
作为信息素养理论和标准的一种发展,1999年,美国国家研究委员会(NRC)推出了题为《信息技术通晓(Being Fluent with Information Technology)》的报告。该报告所提出的“信息技术通晓”超出了计算机基本能力的传统概念,它要求人们能够广泛地理解信息技术,能够在工作和日常生活中富有成效地运用信息技术。该报告将“信息技术通晓”分为暂时性技能(Contemporary Skills)、基础性概念(Foundational Concepts)和智力性能力(Inellectual Capabilities)3个方面。
此外,2000年美国国际教育技术协会(ISTE)联合有关团体制定了《国家教育技术标准》(National Educational Technology Standards)。其中的“全体教师的教育技术标准”和“全体学生的教育技术标准”,详细规范了师生信息技术知识与能力的基本构成和要求,对美国信息技术教育和教育技术的发展具有重要的一体化促进作用。
无论信息素养还是到信息技术通晓,它们的本质都非常关注问题解决,将信息技术作为问题解决和决策的工具,不是简单的学习,而强调其工具论,把信息技术作为处理信息的工具、问题解决的工具和交流协作的工具。
2中外高校计算机基础教育课程设置比较
2.1国内计算机基础教育课程设置存在的问题
基于自身的教学实践,以及对几所不同类型大学的调查研究,我们认识到国内高校计算机基础教育还存在以下几个方面的问题:
(1) 公共基础教育内容较偏重操作技能
国内的计算机基础教育课程“大学计算机文化基础”,是非计算机专业本科生的第一门计算机课程,较为全面地讲述计算机科学与技术学科中的一些基础性知识和重要概念。但是,更多地是强调操作技能的掌握,没有在更高的层次上利用计算机解决问题。
(2) 公共基础教育课程设置存在“一刀切”现象
从一些大学的调查问卷中可以看出,大部分来自城市的大学新生在中学已经接受过一些计算机基础教育。但是,大学里计算机基础课程的设置是从零起点开始。因此,很多学生兴趣不大,感到“流于形式,收效甚微”,而来自农村的学生又需要从零学起计算机基础知识。因此,目前的计算机基础课程内容还较为单一,没有层次性,还不能完全适用。
(3) 计算机基础教育和学生专业脱节
国内的计算机技术基础和应用基础课,普遍存在着统一由计算机学院负责安排教学计划、教学大纲以及教学进度的情况。也就是由计算机学院的专家决定非计算机专业的学生学什么是有益的,并且据此制定相应的课程规划。作为计算机学院的专家是无法了解各个专业能够应用到什么样的计算机知识,也无法针对学生的专业来安排课堂内容。所以,对于学生来讲,就好像一个想学开车的人却在学习如何造汽车和修汽车,并没有学习到他所需要的计算机知识。
2.2国外计算机基础教育课程设置情况
相比之下,国外的计算机基础教育在课程设置上更侧重培养信息素养的教学理念,同时更面向应用,具有很强的专业针对性;对于同样的课程,其教授内容也更为深入。
(1) 计算机基础教育课程
国外与“大学计算机文化基础”相类似的基础课程是“计算机导论”或“信息技术”。该类课程设置的目的在于让不同专业的学生懂得计算机科学的基本原理,教给学生计算机科学中一些伟大的思想与发明,通过这些预备知识,让学生能够最大限度地为将来理解计算机的能力和局限性打好基础,使之能在所从事的行业中学以致用。与此同时,教给学生很多计算机方面的实用知识,培养一些实用性技巧(如软件包的操作及其在实际情况下的应用)。
例如:华盛顿大学开设的导论课程就有“信息技术通晓(Fluency in Information Technology)”,“计算机程序设计(Computer Programming I,Computer Programming II)”3门之多;美国卡内基梅隆大学的计算机导论课讲述的内容包括计算机科学的发展史、如何用算法表达计算程序、数据的组织、算法设计的技巧、优化、计算的极限、并发性、公钥密码学、人工智能以及计算的未来等。MIT的公开计算机基础课程是“信息技术(information Technology)”,其主要讲授计算机硬件、操作系统及软件基础、数据库、网络与通讯、分布式计算与Web技术、电子商务应用。这些课程的目的是教给学生计算机科学的原理而非编程,着重强调的是从计算角度看计算机科学中的主要贡献,学生着重对计算能力的理解以及在计算机科学中会遇到的可能影响其他学科的问题。
(2) 计算机应用基础教育
国外的计算机应用类课程在设置上往往更有针对性,通常是围绕计算机科学中最让人感兴趣的应用领域或者结合学生的专业进行讲授。
例如:美国哈佛大学Leitner等人就提倡应该讲授计算机应用课程,目标在于让学生学会用计算机系统刻画和解决实际问题,以加强对相应计算机概念的理解与认识。他的课程内容包括光线跟踪、动画粒子系统、交互优化、图像增强、人脸识别以及万维网上的信息检索等学生最感兴趣的话题。波兰的Portland Community College大学开设学生感兴趣的计算机游戏导论以及y游戏程序设计。
(3) 计算机编程课程
国外的计算机编程课程设置超越了计算机语言的语法讲授,这些课程重点是介绍计算机学科的整体情况,让学生明白计算机编程只是整个计算机学科的一部分。课程所要达成的目标在于向学生传递一种计算机“感觉”,注重培养学生清晰思考的能力,培养学生通过编程解决实际问题的能力,以及感知计算机可以解决哪类问题的直觉能力。教学中的案例都是经过认真、仔细地挑选,向学生展示这些例子与所学知识的内在关联,教给他们将来从事科学工作的技巧。
例如:美国马可雷斯特大学的Matlab程序设计课程中,一半用来介绍Matlab编程,包括数据类型、函数的参数传递、索引、读取标准文件的操作(如文本文件、电子表格)、构造函数、条件和函数;一半用来介绍理工科的实例,如声音(音乐合成、降噪音、速度变化等)、图像(颜色调整、图像分片、边缘检测等)与数学的联系(公式的运用)、计算机科学(Fibonacci函数、汉诺塔、最优匹配、生物信息等)以及图形用户界面(识别图像上的点)等。
(4) 课程体系
国外大学在课程体系的安排上显得更加灵活和有弹性,因此更具有科学性。例如:剑桥大学的计算机学位课程划分为3个部分(Part IA,Part IB和Part II),不同体系体现了不同的特色。前两个部分强调在计算机科学领域的扎实基础,而后一个部分是专门深入的学习。其第一、二年的基础课程涵盖了计算机科学基础理论和实践课程,包括:面向对象语言Java、操作系统、离散数学、密码学分析、算法、数字电子学、有限自动机、软件设计和专业实践等,其中数字电子学包括数字组件和电路基础。第二年的课程主要是计算机专业核心技术与理论课程,例如,实践课程包括计算机设计、数字通讯、编译器构造和图形学等;理论课程包括语义学、逻辑与证明和计算复杂性等。第三年的课程主要是专业性很强的课程,学生根据兴趣和需求,选择偏向工程、理论或者应用方面的。
3借鉴
通过上述调研,我们发现国外的计算机课程设置上有如下几个特点值得我们借鉴。
(1) 计算机基础教育的教育理念。国外对于非计算机专业的基础教育定位较为准确:计算机基础教育是以培养信息素养为核心的一种普及教育,要求学生能够广泛地理解信息技术,能够在工作和日常生活中富有成效地运用信息技术。计算机基础教育不是仅要求学生掌握某种信息技能,而是让学生能够最大限度地为将来理解计算机的能力和局限性打好基础,使之能在所从事的行业中学以致用,以及能和计算机专业人才良好沟通。
(2) 计算机基础教育和学生的专业结合紧密,根据不同专业特色,进行课程设置以及课程内容、作业的安排。这样,计算机就不再是一些抽象的概念,而是其熟悉领域内一个可以解决问题的工具。
(3) 计算机基础教育体系结构设置更具有科学性。内容上丰富,灵活,具有层次性,既强调基础理论,又重视实践,学生可以根据自己的兴趣和需求,安排自己的学习。
4对策
我们要改变传统的计算机教育观念,根据我国现有国情,借鉴国外先进经验,为此,我们针对我国计算机基础教育提出一些相应的对策:
(1) 采用分层次教学。我国新入学的大学生计算机水平参差不齐。据有关资料显示,大学生入学时真正已掌握大学第一门计算机课要求的占14%;已学过一些,但达不到大学第一门课要求的占36%;根本未接触过计算机的占41%。一般大城市的高等院校中,未接触过计算机的学生比例约在5%~30%之间;边远少数民族地区约占到70%。有的学生能够熟练的使用Windows操作系统和进行文字编辑、上网以及收发邮件,而有的学生甚至没有见过计算机,因此,高校的计算机基础教育需要分层次进行,才能适应我国现有的国情。
(2) 充分面向专业。不同专业对计算机应用的要求和特点是不同的,应该针对不同专业的需求和特点,构建不同的课程体系,设置不同的课程,选择不同的内容和教材,使学生在自己熟悉的领域为解决问题而学习使用计算机,而不是单纯仅仅为了学习计算机。同时也可以采用多种方式(如竞赛的形式)促进计算机专业学生和非计算机专业学生的各种合作。
(3) 改革评价体系。目前高校对计算机基础教育的考核往往只注重关注知识点,而不注意学生的实践能力。由于评价体系的局限,很难在教学中贯穿能力培养的理念,也很难让不同专业的学生自主决定教学内容。
(4) 注重培养学生的信息素养。在课堂上采用体现“以学生为本”的教学方法,让学生能够在老师的指导下,采用诸如基于解决问题的学习,基于证据的学习和质询式的学习等方法主动进行思考,这样比只通过讲课和课本知识能够获得更深层次的思考技巧,从而更有效地提高信息素养。有了信息素养学生就会有更多自主学习的机会,因为他们可以利用多样的信息资源来扩充知识,提出好的问题,增强判断思维以应付进一步的自主学习。在学生的本科和研究生阶段,他们必须多次地查询,评估和管理从不同来源和运用不同学科性的研究方法所收集到的信息,而这正是信息素养的一种体现。
致谢:感谢教育部理工计算机基础课程教指委的同仁们,本文得到了他们的很多帮助,也参阅了他们提供的共享资料,尤其感谢陈立潮教授对国内计算机基础教育发展历史的相关调研。
参考文献:
[1] 中国高等院校计算机基础教育改革课题研究组. 中国高等院校计算机基础教育课程体系CFC2006[M]. 北京:清华大学出版社,2006-7.
[2] 彭绍东. 美国信息技术教育的发展述评[EB/OL]. http://218.22.0.27/lwk/dianziban%5C200204%5C20.htm.
[3] Myers Jr J P. The new generation of computer literacy[C]. Proceedings of the twentieth SIGCSE technical symposium on Computer science education,1989. ACM New York,NY,USA,1989.
[4] 徐万胥,刘向永. 美国当代信息技术教育思潮评介[J]. 中国电化教育,2002(11):72-74.
[5] 王利,刘祖照. 计算机基础教育调研报告[J]. 计算机教育,2004(1):48-51.
[6] T. Cortina. An Introduction to Computer Science for Non-majors Using Principles of Cmputation[J]. In Proc. of the SIGCSE 2007,Kentucky,USA,2007:218-222.
[7] MIT斯隆管理学院[DB/OL]. 《信息技术》课程的URL:http://www. myoops.org/ cocw/mit/Sloan-School-of-Management/15- 564Spring2003/LectureNotes/index.html.
[8]L. Marks,W. Freeman,and H. Leitner. Teaching Applied Computing Without Programming: A Case-Based Introductory Course for General Education[J]. In Proc. of the SIGCSE 2001,NC,USA,2001:80-84.
[9]D. Kaplan. Teaching Computation to Undergraduate Scientists[J]. In Proc. of the SIGCSE 2004,Virginia,USA, 2004:358-362.
[10] 姬秀荔,汪婷婷. 对高等学校计算机基础教育改革的基点思考[J]. 安阳工学学报,2005(4):135-137.
[11] 冯铃. 海外高校非计算机专业计算机课程设置的研究与实践经验[J]. 计算机教育,2007(11):41-45.
[12] 中国计算机科学与技术学科教程2002研究组. 中国计算机科学与技术学科教程2002(China Computing Curricula,简称CCC2002)[M]. 北京:清华大学出版社,2002.
[13] IEEE CS and ACM. Computing Curricula 2001 Computer Science Final Report(简称CC2001)[S]. 2001.
[14] 教育部高等学校计算机科学与技术教学指导委员会非计算机专业计算机基础课程较学指导分委员会. 关于进一步加强高校计算机基础教学的意见(或“计算机基础教学白皮书”)[Z]. 2003.