计算机学科的根本问题范文

时间:2023-12-06 17:33:14

计算机学科的根本问题

计算机学科的根本问题篇1

关键词:编译原理;教学定位;能力培养;素质提高

中图分类号:G64文献标识码:A

文章编号:1672-5913(2007)01-0028-03

编译原理包含着计算机学科的一些基本知识和典型技术与方法,在计算机科学与技术专业本科教育中占有重要地位。直到1990年,我国只有100来所学校设有计算机专业(2005年已达771所),那个时期,在人们心目中,该课程一直是核心专业课,后来随着计算机学科的发展,它逐渐变成技术基础课,目前在绝大多数计算机科学与技术专业中开设。北京工业大学为本科生开设的“编译原理”是北京市精品课程,在有限的学时内,面向应用型计算机专业人才的培养,根据课程容量和学生特点,选择适当的知识为载体,不仅介绍典型问题求解方法和技术,更注重计算学科问题求解基本思想、方法的探讨,通过研究型教学,培养学生的计算机问题求解能力和创新能力。总体上,希望学生掌握“编译原理”中的基本概念、基本理论、基本方法,在系统级上再认识程序和算法,提升计算机问题求解的水平,增强系统能力,提高计算机学科的基本素质,体验实现自动计算的乐趣。下面根据笔者在不同学校里讲授此课程的经验,并结合近些年的一些相关探索,讨论有关的问题。

1 课程指导思想

课程设置的基本指导思想非常重要,它决定着课程的基本教学定位,从而决定着总体教学计划所规定的人才培养目标的落实。在确定时,既要考虑到人才培养的全局,又要考虑学科和课程内容的基本特点,通过对这些特点的体现,来支撑教学目标的实现。

计算学科问题求解的基本思路是“问题、形式化描述、计算机化”,以抽象、理论、设计为其学科形态。编译原理涉及的是一个适当抽象层面上的数据变换,既有明确的、便于抽象的问题,又有较成熟的理论,而且在限定规模下又容易实现(设计),所以编译原理是计算机专业本科生的重要专业技术基础课程,涉及学科的三个形态。除知识外,含有基本问题求解的典型技术和方法。Alfred V.Aho在《编译原理》的开篇曾写道“编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本书中的原理和技术都会反复用到”。课程属于教学计划中四大系列之软件技术系列,继程序设计、数据结构与算法等课程后,从系统级引导学生再认识程序、算法,同时促进学生系统能力的培养。

2 强调能力培养

根据课程设置的基本指导思想,本课程强调以知识为载体,向学生传授典型问题求解的思想和方法,培养其能力,提高其素质。

* 掌握程序变换基本概念、问题描述和处理方法

这些方法主要有:自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述,算法设计与实现,系统构建、模块化等方法。这些都是本学科最经典、最常用的问题求解与系统设计方法。

* 修养“问题、形式化描述、计算机化”

这一典型的问题求解过程,推进从“实例计算”到“类计算”和“模型计算”的跨越。

计算机学科发展到今天,已经从单一的具体问题求解发展到对一类问题的求解,也就是寻求一类问题的系统求解。完成单一的具体问题求解的计算称为“实例计算”;完成一类问题系统求解的计算称为“类计算”。当然,在“类计算”中,一大部分高层次的计算是“模型计算”。这是区分于其他专业学生的重要方面之一。学生的培养,通常都是从“实例计算”开始,逐渐推进到“类计算”,实现学生“计算”理念的跨越。

* 增强理论结合实际能力,获得更多“顶峰体验”

“编译原理”是理论和实践结合最好的计算机课程之一,不仅含有恰当的理论知识,而且直接涉及到这些理论的实践,让学生亲历理论结合实践的乐趣,使优秀的学生获得更多的“顶峰体验”,培养他们理论结合实际的能力。

* 从宏观到微观、从微观到宏观,培养系统能力

引导学生能够站在系统的全局去看问题、分析问题和解决问题,并实现系统优化。经验表明,这种能力是非常重要的,也是比较难培养的。所以在本科教学计划中,程序设计与算法系列之后安排软件技术系列课程,实现学生的系统认知、分析、设计和应用能力的培养,并使学生进一步在系统级别上认识程序和算法。编译原理就是其中一门课程。编译系统虽然是一个具有相当规模和相当复杂度的系统(含总体结构),但对问题本身分析和处理的分解非常清楚,使得其规模和复杂度可控,宜于让学生掌握,可以通过教师的引导,来锻炼学生理解、设计能力,来达到学生系统能力强化培养的目的。

* 开展研究型教学,培养学生的创新能力

开展研究型教学,挖掘知识背后的内容,通过讲授思想、方法,模拟大师们的创新思维,培养学生的创新意识和创新能力。

3 教学基本要求

编译原理的基本内容是比较成熟的,其理论性强,同时还可以设计出适当的实践活动与之配合,既有基本的问题求解,又是一个具有相当规模的系统,加上它描述的形式化,又有利于强化学生“计算机问题求解”的基本能力培养。虽然形式化给学生学习带来了一定的理解困难,但是只要克服了这一困难,学生才能取得更具意义的进步。因此,要求学生掌握基本的理论和分析方法,并学习如何实现这些理论和方法,在实践过程中进一步理解这些理论和分析方法。充分体现本学科理工结合、理论与实践紧密结合的特点。

经过本课程的教学,使学生掌握一些基本概念、基本理论和基本方法。特别是通过教师的讲授,使学生能够对这些基本概念和理论有更深入的理解,有能力将它们应用到一些问题的求解中。要注意对其中一些基本方法的核心思想的分析,使学生能够掌握其关键。

* 基本知识

理论部分包括:教学目的、基本术语、系统结构;正则语言、上下文无关语言、二义性、派生树;词法描述模型及分析实现; LL分析、递归下降分析、算符优先分析、LR分析;语法制导翻译、属性文法、翻译模式、中间代码生成;符号表、静态存储分配、动态存储分配;基本优化方法。删除状态矩阵法和有关理论证明,将原始的制导翻译改为属性翻译,增加目标驱动,强调中间代码生成,弱化代码优化和目标代码生成。

实践部分:在学生掌握基本原理的基础上,在编译程序总体结构的导引下,通过设计出词法分析器、语法分析器,语义分析与中间代码生成器,构建一个限定高级语言的翻译器(能够将赋值语句、条件语句、循环语句翻译成中间代码的基本翻译系统)。学生需完成相关算法和数据结构的设计,自行选择语言完成实现,最后提交规范的实验报告,对实验进行刻画和分析。

* 能力培养

通过将教育教学研究、科学研究成果用于课程教学,通过研究型教学,强调能力培养。从提出问题,到求解思路分析,再到用符号表示问题及其求解算法,进一步培养学生抽象表示问题的能力和对“一类”问题进行求解的意识和能力;从系统的角度向学生展示编译系统,同时考虑各子系统的实现与联系,通过不同级别的抽象和问题的分治,培养学生的系统意识和能力。

4 努力体现先进教育理念

开展研究型教学,通过知识的讲授介绍基本方法,培养学生的学科能力,课堂努力再现大师们的问题求解思考过程,引导学生思考,体验思考和求解问题的乐趣。培养学生的学科能力、创新能力;从具体问题求解到系统构建,向学生传授基本学科方法,培养其系统能力;配合对实践循序渐进的引导,提高学生的学习兴趣,进一步提高学习效果;提出深层问题、扩展问题,列举辅助材料,鼓励和引导学生开阔视野,主动探索,培养其学习兴趣、创新意识和创新能力。发挥对计算机技术优势,利用多媒体技术,制作与教材配套课件,通过抽象内容的可视化,展现内部处理过程。如,在关键处以字符为单位进行动作切换,以重现算法过程。多媒体配合板书,增加课程信息量,提升教学效果。同时发挥网络优势,通过网站和学院开通网络教学Digiclass,多途径开展教学。

5 搞好示范

大力推进课程教学改革,努力探索课程内容和教学方法的改进。通过实验班教学,探索在教学内容和方法上的改革,使实验班及其教学能够对普通班的教学有一个示范、带头作用。

针对学生的不同情况,因材施教。对实验班同学来说,他们的接受能力要强一些,虽然执行的是相同的教学大纲,但是,教师根据他们的实际情况,补充了一些内容,对有些内容有更高的要求。例如,鼓励他们在课外更好地阅读参考书,教师加强对他们的辅导。03级实验班的同学就有不少人仔细阅读著名计算机科学家和教育家Alfred V.Aho所著的《编译器:原理、技术与工具》,并可以随时找课程组的任何教师讨论有关问题。再例如,给实验班讲编译自动生成技术,介绍有关软件工具,鼓励他们在实践中扩展编译系统的功能。对于普通班同学,则注意适时地加强习题的讲解以及上机辅导,使他们更好地理解课程的基本内容,同时也鼓励他们中的优秀学生向实验班看齐,提高对自己的要求。

6 课程特色

经过多年的建设和调整,本课程形成了如下特色。

1) 传授基本方法,培养学科能力

以知识为载体,传授自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述,算法设计与实现,系统构建、模块化等方法,培养基本学科能力。

2) 挖掘来源,培养创新能力

挖掘知识背后的丰富内容,通过向学生描述问题的求解思路,让学生体验大师们的思维,减少学生的死记硬背,培养学生的思维能力和创新能力。例如,从 LR分析法的思想根源,剖析LR分析法的精髓。

3) 重视系统观念,培养系统能力

系统能力是应用型计算机人才之长,通过不同级别上的抽象和虚拟系统的建立,用一个适当规模和复杂度的系统的设计与实现贯穿整个课程,将学生的视角从“程序级”提高到系统级。

4) 注重实验,培养实践能力

实现生成一个“小语言”中间代码的编译器,在总体结构指导下,通过其分解为“词法分析器设计与实现”、“语法分析器设计与实现”、“语义分析与中间代码器设计与实现”,引导学生在有限学时内完成实验,促进对基本原理的理解和实践能力的培养。

参考文献:

[1] Alfred Aho,Ravi Sethi,Jeffrey D. Ullman. 编译原理[M].李建中,姜守旭译.北京:机械工业出版社,2003.

[2] 蒋宗礼,赵一夫. 谈高水平计算机人才的培养[J]. 中国大学教学,2005,(9):24-27.

[3] 中国计算机科学与技术学科教程2002研究组. 中国计算机科学与技术学科教程2002[M]. 北京:清华大学出版社,2002.

[4]蒋宗礼. 论“编译”的性质及其知识载体属性的开发利用[J]. 计算机教育(增刊),2004:53-56.

[5] 蒋宗礼. 试论计算学科抽象第一的基本教育原理[J].计算机教育,2004,(11):54-58.

投稿日期:2006-10-10

计算机学科的根本问题篇2

关键词:程序设计;计算思维;教学方法

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)27-6175-03

计算思维是每个人应当具备的基本技能,也是对创新人才的基本要求和应具备的专业素质。在教学中突出学生计算思维能力的培养和训练,是每个教师的重要任务。

1 目前教学中存在的问题

目前程序设计课程大都采用传统的教学方法,课程内容主要是围绕一门高级语言的内容展开,课堂上教师先介绍一些知识点,然后通过案例说明知识点的应用,最后再进行总结,这种教学模式偏重于知识的灌输,导致学生仅仅满足于书本知识的死记硬背,分析和解决问题的能力培养不够,学生经常是学会了全部的语法知识,但仍然不知道如何解决实际问题,教学效果甚微。为了改变这种状况,切实加强学生计算思维能力的培养,程序设计课程教学改革势在必行。

2 计算思维及其能力培养的重要性

2.1 计算思维的含义、特征

周以真教授指出:计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,它包括了涵盖计算机科学之广度的一系列思维活动。它具有以下特性:

1)概念化,不是程序化。

2)根本的,不是刻板的技能。

3)是人的,不是计算机的思维。

4)数学和工程思维的互补与融合。

5)是思想,不是人造物。

6)面向所有的人,所有地方。

7)关注依旧亟待理解和解决的智力上的有挑战性的并且引人入胜的科学问题。

2.2 培养计算思维能力的重要性

按照周教授的观点,计算思维是思想,是人的一种根本性技能,本质是抽象和自动化。计算思维中的抽象是超越物理时空的,完全可以用符号来表达,其中数字只是一种特例。计算思维中的抽象最终要能被机器自动执行,为了确保机器的自动化,需要在抽象的过程中采用精确严格的符号标记系统进行描述和建模,同时要求计算机系统能够提供不同抽象层次的翻译工具。计算思维中的抽象和自动化反映计算的根本问题,计算就是抽象的自动执行,而自动化需要合适的计算机对抽象予以解释并执行。

计算思维是采用抽象和分解来迎战庞大的任务或者设计巨大复杂的系统,它关注的是分离。通过对问题进行多层次的抽象,使问题分析相对简单,从而控制问题解决的复杂性,问题抽象层次的能力是衡量人的思维品质的重要方面,直接体现人的分析、解决问题的能力。由此可见,计算思维能力的培养,对每个人都至关重要。

3 培养学生计算思维能力的程序设计课程教学方法

在程序设计课程中,对学生计算思维能力的培养主要体现在分析、解决问题能力的培养上。本文给出了以培养学生计算思维能力为目标的教学模式及实施过程,如图1所示。教学活动分为课前准备、课堂教学、课后总结三个环节组织实施。

3.1 任务设计

1)内容设计:明确课程单元的知识点、重点和难点,结合学生各阶段知识掌握的程度以及运用知识的能力,明确解决实际问题的概念和方法,在此基础上,设计教学内容。采用任务驱动教学法,以任务为核心将教学内容结合起来,设计任务模块。

2)选择问题:针对各任务模块,以需解决的问题导入,尽可能选用一些典型的有趣味性的实际问题,增强学生对所学知识应用于实际的认识和学习兴趣。

3.2 呈现问题

通过呈现的问题,使学生能够确定并明确解决什么。如果不理解或不明确,就无法选择合适的方法去解决,从而限制了学生的创造力。

3.3 分析问题

在分析问题的过程中,首先要考虑解决这个问题有多困难?怎样才是最佳的解决方法?其次还要考虑包括机器的指令系统、资源约束和操作环境等因素。例如,设计一套应用软件,还应当了解该软件的使用对象,使用者的知识背景,根据不同的用户,设计不同的操作界面。

3.4 设计方案

通过对问题的分析,设计出多种解决方案,特别是面临复杂的大问题时,尽可能全面地列出备选方案。该环节重点是让学生了解进而掌握对问题进行多层次抽象的方法。

3.5 方案选择

制定一个统一的方案评价标准,明确评价各方案的优缺点,从中选择最佳方案。在确定最佳方案时,应重点强调从总体角度考虑评价指标,对各指标进行权衡。

3.6 求解步骤

方案选定后,确定方案的解决步骤即算法。教学过程中,可先让学生积极思考,给出解决思路,再引导学生参与算法设计的全过程,对于复杂的大问题,重点介绍问题分解的思考方法及步骤,让学生体验计算思维。同时,提倡算法的多样性,培养、激励学生的创新意识和问题求解能力,并引导学生对算法进行分析研究,优化并简化算法。

3.7 方案评价

执行已设计好的方案,检验结果是否与预期目标相符,如不符,必须对方案进行修改完善,甚至重新设计一套方案。通过对方案的评价,可以使学生的知识得以重构,计算思维得到有效的训练。

3.8 创设情境

在任务模块的教学单元结束之前,教师可创设提出问题的实际情境,激励学生去发现问题,提出问题,给出解决问题的方案,增强学生学习主动性,提高分析和解决实际问题的能力。

3.9 自主学习

程序设计属于实验性学科,教师要根据单元内容和学生掌握知识的程度设计实验内容,同时也倡导学生自主提出问题,构建由验证类、设计类和综合类的多层次实验内容体系,引导学生通过上机自主完成实验任务,实验过程中,学生运用掌握的知识并利用计算机去解决问题,学会带着问题学习,锻炼了创新思维能力。

3.10 教学评价

教师对整个教学过程中教学内容、教学方法、学生计算思维能力的培养以及解决实际问题的能力等进行总结归纳,通过学生课程考核成绩以及平时实验成绩对教学效果进行综合评估,对教学中存在的问题进行分析研究,找出问题的原因以便及时改进教学方法。

4 结束语

上述方法应用于程序设计课程的教学,使学生分析和解决实际问题的能力有了明显提高,计算思维能力得到了有效的培养和训练,教学效果良好。

如何培养学生计算思维能力,是每个教育工作者面临的一个重要课题,需要不断地探索研究,不断改进和创新教学方法。

参考文献:

[1] Jeannette putational Thinking[J].Communications of the ACM,2006,49(3).

[2] 董荣胜.计算思维与计算机导论[J].计算机科学,2009,36(4).

[3] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,201 1(1):7-1,l,32.

计算机学科的根本问题篇3

【关键词】高职;计算机网络;课程教学;问题与措施

依托计算机技术和通信技术的不断发展,计算机网络技术也日趋成熟,快速地普及,如今网络已经成为人们日常生活不可缺少的重要组成部分。计算机网络课程牵涉的概念和理论多、应用领域宽泛、技术更新快等特点要求学生具有较宽的知识面和较强的实践能力。而高职院校学生和本科学生相比理论基础较差,自学能力和理解能力也较差,但是高职院校实验课相对较多,学生的动手能力相对要好点。因此,如何根据高职学生的实际情况和接受能力开展好计算机网络的课程教学已成为很多高职院校计算机教师重点研究的课题。

一、当前存在的主要问题

(一)具体教学对象不明确

高职教育是针对岗位训练技能的,不同于一般的本科教育。一般的本科教育是以理论为主导,以实践为辅。而高职教育是以实践动手能力为主,以理论为辅。具体到计算机网络教学来说,高职院校的教学过程应以实验,实训课为主,而我们目前所用的教材大多数是本科教材基础上进行了压缩,去除了一些较难理解的内容,并没有根据高职学生的具体情况和培养要求编写适合高职学生用的以实践动手能力为主,以理论为辅的教材,这样培养的学生既达不到本科生的理论水平,也不能体现出高职学生实践能力强的特点。

(二)学生的接受能力差距大

不仅是计算机网络课程的教学存在这个问题,计算机学科其他课程也是这样,尤其是专业基础课程《计算机应用基础》,《C语言》等。一些来自经济发达地区的学生,上大学之前就学习过信息技术的有关课程并接触过计算机网络,通过课堂教学和平时上网积累了大量计算机网络的相关知识,有的甚至还可以组建简单的小型局域网。与这些学生形成明显对比的是另一些来自偏远地区和没学过计算机的学生,他们根本没接触过计算机,对计算机网络的更是知之甚少。学生的计算机网络基础知识水平参差不齐,给教师的课堂教学增加了一定的难度,这就要求任课教师要根据学生的实际情况组织每次课程教学。

(三)教学内容与实际应用相差大

当前老师组织计算机网络教学时,大多以七层开放系统互连参考模型为主线,一层层地结合各种协议介绍网络原理和应用,但在因特网应用中则是TCP/IP协议集。因此在整个教学过程中存在着内容与实际应用中的巨大差距,使得学生难以将课堂上抽象理论与因特网应用广泛地联系起来。计算机网络方面不断新出现的许多新技术、应用领域在教学内容上不能及时反映出来或者没有反应出来,这就要求对现有教学内容及时地进行更新和补充。

(四)实验课程难以组织

有的高职院校由于资金有限,难以组建网络实验室或者即便有实验室在软硬件资源方面也达不到要求。缺乏较好的实验指导书,目前学生在实验室做的大多是了解原理的实验,没有针对性较强的实验指导。网络实验的学时较少,高职院校主要培养学生的实际动手能力,理论教学可以适当的少一点,多让学生做实验,在实验中领悟和融汇理论知识。

二、解决问题的措施

针对目前计算机网络教学中存在的问题,很多任课老师提出了解决方法,我认为应该从以下几个方面来解决。

(一)选用适合高职学生的教材

高职院校学生的培养目标不同于本科院校,要根据高职院校学生的特点选取符合学生实际情况的教材,不能把本科院校的教材中理论方面的难点简单地剔除后直接用到高职院校中,要选取理论较少而实验内容较多并能涵盖整套知识体系的教材,如谢昌荣主编的任务驱动模式教材《计算机网络技术》。

(二)采用多种教学方法

选取了合适的教材后,任课教师在组织教学的过程中,要根据学生的实际情况采用多种教学方法将难以理解的理论知识简单化,形象化,让学生易于接受并印象深刻。可以从以下几个方面入手:第一、用Flash等动画制作软件制作一些动画说明《计算机网络》中的一些原理(路由协议,局域网中数据的传送等),把枯燥、复杂的问题生动化、形象化。这样比课堂上单纯地介绍要更生动,更容易理解。第二、打破理论课和实验课的限制,任课教师可以根据每节课的实际内容合理调配实验和理论课的安排,选取实践性较强的知识点作为实践内容,在实践课中讲授理论。第三、结合任务驱动教学方式组织教学,选取经典,有针对性的案例布置给学生,任课教师实时监控,指导。学生结合所学知识,查阅相关资料,积极思考,组建团队并紧密合作最终解决问题。第四、改变考核方式,学生对于计算机网络知识的掌握不应该只反映在期末考试的一张试卷的得分上,有的学生可能在知识点的掌握上不太好,但是在实践上却有很强的动手能力,所以认可教师应该结合每次实践课的表现和学生完成案例教学的情况来综合考查学生的实际情况,不能片面的追求考试分数。

(三)加强实验室建设,提高教师素质

高职院校也在资金许可的情况下,组建符合要求的计算机网络实验室,不能只在普通的机房来组织网络实验课的教学。任课老师不应该只能传授理论知识,而是要既能知道学生学习理论知识又能指导学生实践课的“双师型”教师。高职院校应该重视教师队伍的建设,优化教师队伍的构成,从各个方面提高教师的素质,尤其是教师对于新技术,新知识的接受,消化,转化成教学成果的能力。

三、小结

计算机网络是计算机学科中很重要的课程,是一门实践性很强的课程,笔者对其目前计算机网络教学中存在的问题进行了分析,提出一些解决的方法,来提高学生的学习兴趣与操作技能,也希望对广大计算机网络专业教师有所帮助。

参考文献:

[1] 谢昌荣.《计算机网络技术》[M].北京: 清华大学出版社,2011.

[2] 陈观林,杨起帆. 谈“计算机网络”课程教学及教材建设[J].计算机教育,2005[8].

[3] 魏星,吴星. 计算机网络课程教学中存在的问题及其对策[J].桂林航天工业高等专科学校学报,2006(6).

作者简介:

计算机学科的根本问题篇4

【关键词】计算机 职业教育 问题 解决办法

1 引言

随着我国计算机技术的不断发展,计算机在很多领域都得到了应用,是我国未来社会发展必不可少的工具。计算机硬件和软件发展速度较快,只有不断的学习和应用才能在以后的社会竞争中脱颖而出,但是,我国的计算机高职教育在最近几年才兴起,而且教学计划和方式与普通高校基本相同,没有根据社会需求开展实践和理论相结合的教学措施。现在,企业、学校和家庭对信息处理的频率越来越高,相关知识发展迅速。使计算机高职院校的教育逐渐和社会脱节,并产生了一系列问题。本文从计算机高职院校的教学制度出发,提出教材、课程和教师水平等方面存在的问题,以期在今后的教学中可以解决此类问题,使高职院校的学生真正的满足社会的需求。

2 在高职计算机职业教育过程中存在的问题

2.1 在教学制度上有待完善

我国现有的高职计算机教育制度和本科院校教学制度基本相同。本科院校教学计划是让学生了解并掌握计算机知识,为以后的工作发展奠定一个良好的基础。而在高职计算机院校教育计划中是让学生掌握计算机自主动手能力和实践操作能力。两者教育的方向有所不同,所以在教学过程中不能完全使用本科教育的计划、课程安排等。经过本科的学习,很多学生体现出了高分低能、理论和应用有较大差别等一系列问题。很多本科院校都认识到这个问题的关键性,为了让学生符合社会要求,针对实际情况改变自己的教育计划等。高职院校因为受到了能力和眼光短浅等因素影响,很多学校都在盲目的模仿本科院校,不但教学质量没有根本性提高,而且学生的态度和学习积极性都有很大程度的下降。

2.2 计算机高职学校所用教材存在的问题

教学的基本在于对教材的正确使用。现在市场上有很多高职院校辅教材,里面的内容基本都是从权威教材抄袭而来。在高职的教材使用中一定要符合市场要求,保证其具有可用性和实用性。很多高职院校不但重视对教材的选择,而且把眼光放在了教材的整理和编写上。现在很多教材内容比较简单,在教师上课过程中不能挖掘出深刻、具有内涵的知识,导致很多学生产生无聊、厌烦等情绪,在课后为了平时成绩抄袭作业等现象频频发生。

2.3 高职院校在课程和结构安排上不合理

很多学生对院校安排的课程提出较多质疑。同一门课程的两次授课相距较远,有两到三天的间隔,很多院校对这种课程安排方式采取默认的态度并没有改变计划。在当今局势下,企业的人员需求引领者教育步伐,但是在高职计算机院校中所教授的知识和企业真正应用的知识有很大偏差。导致学生找工作的时候,发现自身具备的知识不能满足日常工作需求,而且社会对高职院校的人才培养能力也出现怀疑。

2.4 计算机高职院校中教师的知识水品有所欠缺

随着计算机硬件水平和软件水平的快速发展,大量的技术人员涌入到计算机研究中,所以,计算机的应用现状迫使院校的教育要有所提高。在计算机高职院校中任职的教师知识水品有所欠缺,不能满足社会的需求,而且在我国固有的教学体制下,教师具备知识的能力不能自我更新和提高,这严重影响了学校的教学质量。

3 针对计算机高职学院教育问题提出的解决措施

为了培养出符合社会要求的专业性计算机人才,只有不断提高职业院校的教学水平,针对上述若干问题,本文提出了几点解决措施。

(1)计算机高职院校应该实时掌握社会的发展趋势,根据企业要求培养专业性人才。在计算机基础课程开始之前,制定出相关的实践学习计划,使学生从沉闷的书本知识中解脱出来,以项目实训为主,基础知识为辅的教育模式,这样不但能够提高学生的学习态度,而且提高了学生的实践动手能力。

(2)在选择教材的过程中,根据实际需求择优选取,计算机知识更新很快,只有经过技术人员苦心专研之后写出的内容,才能保证学生的知识不发生偏差,与实际需求相结合。在计算机高职教育中,教学的中心理念是让学生有一技之长,所以,在安排课程上,应该结合社会需求,增加对应用软件使用的课程,不断提高学生专业性技术,具有自己的专业性和领域性。

(3)教师应该实时更新自己的知识理论,了解目前计算机的发展方向,通过课堂传授给学生;计算机高职院校应该对教师的专业技术和教学水平同时进行考核,不断提高师资力量;派遣教师参加计算机专业性学术的交流和探讨,提高教师的科研能力,选择具有丰富经验和专业技术能力的教师担任科研组长,督促其他教师提高自我能力。

(4)想要解决以上存在的问题,计算机高职院校必须具有优秀的硬件设备和软件支持。所以,应该不断更新院校的计算机设备,使用新型信息化硬件进行教学,购买各种具有专业性能的软件,不断拓宽学生的视野,并根据自己的爱好和兴趣选择进修方向。这样才能保证学生在今后的学习工作中具备扎实的基础和突出的能力。

4 结语

综上所述,在各个高等院校和高职院校中,计算机是一个非常热门的专业领域。但是,计算机高职院校的教学水平跟不上计算机实际的发展速度,因而产生了若干脱节问题。基于此,计算机高职院校应该不断研究社会的发展方向,找到合适解决现有问题的办法和措施,这样才能保证计算机高职院校长期、快速的发展。

参考文献

[1]米德勇.浅谈高职计算机教学的现状与发展对策[J]

[2]李范华.探析高职院校计算机教学中存在的主要问题[J]

计算机学科的根本问题篇5

【关键词】 高等职业教育 计算机基础 分析

Abstract : Combining with the theory of modern teaching and the training goal of the higher vocational education, this paper analyzes and discusses the problems existing in the basic computer course teaching using in actual vocational colleges, and puts forward some concrete measures and suggestions combining with the teaching practice.

二十世纪最伟大的发明是电子计算机。进入21世纪,随着经济、科技和社会的飞速发展,信息技术在工业、农业、国防、交通运输、科学研究、文化教育、商业贸易、医疗卫生、体育运动、文学艺术、行政管理、社会服务、家庭劳作等各个领域中得到了广泛的应用。可以说没有哪个领域不应用到计算机[1]。

1.计算机基础教学中的问题

随着信息技术迅猛发展和计算机技术日益普及,学生计算机应用水平和计算机文化意识有了明显的提高,从近几年的教学状况和教学效果来看,出现了新情况和新的问题。探究其主要原因大致分为以下几个方面:

1.1学生学习的起点不一

来自城市和经济繁荣地区的学生,计算机基本知识和应用水平普遍高于来自农村和贫困地区的学生。一方面层次较高的学生“吃不饱”,埋怨计算机基础课程是浪费时间,使其的学习积极性受到很大打击;另一方面,层次较低的学生“吃不了”,对计算机课程产生畏惧,从此妄自菲薄,自我放弃。就我们学校而言,学生来自祖国各地,来自偏远山区和贫困地区的学生根本无法于城市的学生相比较,学生学习起点不一,给老师教学实施带来了很大的困难,也难以满足不同基础的学生的学习需要。

1.2认知层面问题

大部分学生对计算机认识不够,总觉得所学过于简单,认为考试主要是应对理论知识的考察、看轻实践,且要求较低,造成了学习中的惰性,死记硬背等不良心理的出现。部分学生对计算机在以后的工作中的应用没有重视,只是把计算机与网络游戏、聊天、看电影联系在一起,把大部分精力都用在了这些方面。

1.3教学方法存在的问题

目前,传统的“填鸭式”、“满堂灌”、“照本宣科”教学方法仍然被很多老师采用,并且坚持以教师为中心,这样的教学模式导致学生被动地接受,抹杀了学生学习的能动性和创造性,直接影响教学效果。部分老师根本不顾及学生的感受,只管按照教学大纲讲授书本上的知识,没有起到举一反三的效果。

1.4学生自身存在的问题

学生刚开始学习计算机时很感兴趣,但学习了一段时间后,随着神秘感的消失,兴趣顿减,学习的积极性和主动性降低。随着学生深入的学习,对很多知识不了解,慢慢的对这些知识产生厌倦心里,这样也大大降低了学生学习的积极性和主动性。

1.5学校教学条件制约

由于招生规模的大幅度上涨,瓶颈问题出现――学校机器台数与学生人数比下降,无法保证人手一机,这样就严重制约了学生的上机实践。还有就是学校的教学经费紧张,而使得教学设施陈旧,计算机以及相关设备更新较慢,难以适应社会科学技术的飞速发展,使得学生所学的知识在学校现有的实习实训条件下无法进行,也制约了学生对计算机课程的学习。

2.计算机基础教学的改革

根据高职院校办学的特点,如何引导学生树立正确的学习观,科学、有效地进行计算机课程教学和学习,促进学生进一步掌握计算机知识,是高职高专院校急需解决的问题。

就本门课程而言,其培养目标应该是使学生对于计算机应用具有操作层面、技术层面和专业应用层面上的基本信息素养:能够利用计算机解决工作中的实际问题;逐步具备计算机操作使用能力、应用开发能力和一定的创新能力,并取得相应的计算机应用技术资格证书。要达到这一目标,我认为,在教学中需要从以下几方面入手:

2.1因材施教,进行分层次教学

针对新生入学时计算机的基础不同,教学中可采取分层次教学。具体做法是:新生人学时,先进行计算机水平的摸底考试,根据考试结果和学生学习的需要分出A级和B级两个层次进行教学这样就可以满足不同层次学生学习的需要,避免教师在同一个班教学中难于满足不同学生学习需要的局面;针对不同专业,在全院适当开设相关计算机选修课,这样就可以以满足学生专业发展的需要,也可以为学生在以后步入工作岗位打下一个坚实的基础[3]。

2.2教师观念的转变

随着计算机知识的不断更新,要想学生学好计算机,首先必须教师转变以往的观念。计算机是一门不断更新的课程,教师应该转变观念,切实改进教学手段和教学方法,有步骤有计划地过渡到“教师指导下的以学生为中心”的教学模式上,充分调动学生的能动性,使学生主动建立起知识和能力个人结构。

2.3转变学生学习观念,完善学习环境

2.3.1任务式教学

提出任务,完成任务,激发学生兴趣。教师应根据教学目标,将所要讲授的内容巧妙地隐含在一个个任务当中,激发学生的求知欲望和学习兴趣,使学生有兴趣完成任务达到所学知识的目的。也就是说,教师要根据教学内容或从实际问题出发,提出任务、设置疑问,问题提出时,教师可以采用多种尽可能生动活泼的手法,引发学生的好奇心,使学生产生一种内在的学习需求,进而对问题进行积极的思考、分析,形成解决问题的思路。

2.3.2情景式教学

根据我们所讲课程,创设有吸引力的学习情景,使学生采取积极的态度,这对学生学习好坏有较大影响。例如,在讲授PowerPoint的使用时,教师可先展示一组自动播放的演示文稿,最好是图、文、声并茂的,也可以利用VB中的控件实现交互界面的设计,使演示文稿具有动态效果,让学生在视听中产生强烈的探究欲。然后教师再进行简单的讲解,这就创设了任务学习的情境,使学生对学习本身或过程感兴趣,而不是在外界刺激下只关心学习的结果。

2.3.3学业与娱乐

网络时代的来临,给了我们更多学习知识的空间,也给了我们更多娱乐的空间,正确处理好学业与娱乐之间的关系。防止成为计算机网络的奴隶,更要学会正确运用计算机技术这一有利工具进行学习。

2.4完善教学环境

现在的计算机教学,要提高教学效果,需要不断改善教学环境。针对合班上大课的情况,教室应配置音响,解决教师难讲学生听不见的问题;针对使用大屏幕教学,后面的学生看不见和上课不专心的问题,建议学校要购买相应的软件,使教师能够通过主机来控制学生的计算机,让学生在每一台计算机上都能清楚地看到教学的内容;责成教务处和信息中心管理尽力解决教学内容与软件不配套的问题;尽量保证学校计算机设备满足学生需求,满足实践课程时间。

结束语

总之,随着计算机一点点的深入我们生活当中,高职学生计算机基础课程更加的必不可少。高职院校要有自己特色的计算机教育,计算机基础课程改革是一个即长期又艰巨的任务,就要求每个从事该专业教学的教师不断的探索,而达到更高的目标。

参考文献:

[1] 董凤服.信息技术与中国经济发展.西南交通大学出版社.2008,2:27.

[2] 高寿斌.信息时代计算机基础教育在高职教育中的作用.职业教育研究.2007,6:16-17.

[3] 张成艳.高职院校计算机教学初探.新教科.2009,6.

计算机学科的根本问题篇6

1.知识量大,课时分配少

计算机的知识量大,对于课时的要求长。但我们的教育还是以应试教育为主,中考没有对计算机考核的要求,因此很多学校对计算机的教学都不够重视,有的学校计算机课名存实亡,特别是期中、期末考试时,计算机课被其他主要课程占用,使得本来就较少的计算机课时又大大缩减。计算机教师在有限的时间里根本不可能对学生进行系统的授课,实践的机会也比较少,在一定程度上阻碍了学生的计算机水平的提高。

2.部分计算机教师不能跟上计算机课程更新的速度

计算机学科的知识更新速度非常快,一般两三年就会有一次革新,这对于从事初中计算机教学的教师提出了很高的要求。但有一些教师的知识结构很难跟上计算机学科发展的速度,甚至有的学校根本就没有计算机专业的教师,而是由其他学科的教师兼任,导致了教师教授学生时力不从心。还有一些学校的计算机老师承担着学校的其他事情,很少有时间提升自己的计算机知识。

3.学生水平差异较大

学生水平的差异在计算机学科中表现得尤为突出,这是由于家庭条件不同引起的。家庭条件比较好的学生在小学阶段就接触计算机,有的学生还在校外参加了一些计算机方面的兴趣班,他们已经有了基本的计算机操作能力。也有部分学生因为家庭条件不好或其他原因没有接触过计算机,对计算机操作一窍不通。另外有一部分学生虽然接触过计算机,但没有参加过兴趣班,对计算机知识的了解不够。

二、改善初中计算机教学现状的对策研究

1.对计算机教学课时进行合理安排

计算机学科知识量大,对于课时量的要求也比较大,学校要根据上级教育部门的要求,注重素质教育,培养学生的个性和可持续发展的能力,不能为了提高升学率就剥夺学生学习计算机科学的权利,对计算机课时进行合理安排,保证学生学习计算机的时间,使学生能够系统地学习计算机知识。

2.教师应该不断地学习新知识、新理念,做到与时俱进

计算机作为现代社会的重要技术,最大的特点就是发展特别快,而作为教师,只有不断地学习,才能适应现代教学的要求,做到先知、先懂。现在的计算机课程知识仅靠教科书是不够的,教师应该以教材为基础,走出教材的框框,引导学生走向社会,多接触生活实际,在生活与社会实践活动中发现问题,探讨问题,寻求解决问题的方法。比如,可让学生通过上网完成一个社会调查的题目,也可以引导学生使用网络,出售自家产品等等,通过自己动手动脑解决问题,使学生成为学习的主人,真正培养学生自主发现问题、解决问题的能力,树立创新意识和创新能力。

3.因材施教,分层教学

同一个班级,由于计算机水平的差异,会出现基础好的学生“吃不饱”、基础差的学生“吃不了”的现象。实行分层教学,相同层次的学生组建成一个教学班级,教师能兼顾到大部分学生的求知需求,激发学生的学习动机。不同层次的学生有不同的教学要求,不同的学习任务,分层教学使每个层次的学生都能体验成功的喜悦,发挥潜能、发挥特长,每个学生都受到公平教育,促进学生在适合自己的学习环境中得到最优发展。

计算机学科的根本问题篇7

[关键词]以赛促学;以赛促教;赛教一体;计算机专业;教学模式;改革创新

一赛教融合改革思路

教育部2018年印发了《关于狠抓新时代全国高等学校本科教育工作会议精神落实的通知》,要求全面整顿本科教育教学秩序,严格过程管理。淘汰“水课”,合理提升学业挑战度,严把毕业出口关,坚决取消“清考”制度。为此,狠抓学科竞赛,赛教融合是教学改革发展的一个方向,以三亚学院信息与智能工程学院为例,体现在与课程的融合,与专业的融合,与团队的融合。

1加强学科竞赛与课程的融合

把某些学科竞赛中出现的题目融入相应的课程中,如可让教师在讲授知识点的过程中,把竞赛中出现的题目拿出来进行分析,讲解,也就是竞赛进课堂。

2加强学科竞赛与专业的融合

从基、专、综三个纵向,软、硬两个横向进行学科竞赛的引导。基指面向全体的学生的学科竞赛,这类竞赛涉及的是本学院的学生都应该掌握的基本知识进行的学科竞赛,无专业划分。专指从专业角度进行学科竞赛,引入软、硬两个横向方向,如大数据可参加贴合大数据类的学科竞赛,软件工程可参加软件设计、软件开发类的学科竞赛;计科专业、人工智能专业可参加嵌入式开发、智能开发类的学科竞赛。综指的是在此基础之上能够体现综合素质能力的竞赛,并能够体现创新创业的特点,这类学科竞赛一般以团队形式参加、发挥各自专业及个人的特点,融合专业,如创新创业类学科竞赛。

3加强学科竞赛与团队的融合

根据学科竞赛的特点,组织教师组建相应的学科竞赛辅导团队,并组织学生组建相应的学生竞赛团队。形成统一规划、分而治之的特性。

二课程方面

“以赛促学;以赛促教”视域下,需要对课程进行全面的改造,全面围绕人才培养计划、教学方法,以及教学内容三大模块,只有根据学生的实际情况,以及在比赛中总结的问题和经验,汇总出一套具有创新属性的教学方案,才能促进教学工作,推动学科进步,达到预期教学效果。

(一)优化人才培养计划

受传统教学理念约束,很多教师在开展教学工作的过程中,依旧以强调学生对理论知识的掌握为主,而忽视了学生的实践能力,通过传统教学模式培养出来的人才,并不具备独立作业的能力[3]。而计算机专业课程(不要具体到某门学科)为了满足社会各个领域的需求,需要不断地进行技术革新,相应技术更新换代的频率是较快的。所以,通过各类计算机比赛所提供的平台,高校的老师可以在学生参与比赛的过程中及时总结,不仅如此,由于计算机比赛的题目都是组委会根据当前计算机专业课程的前沿动态所拟定的,所以高校的带队老师可以根据组委会布置的题目捕捉到一些行业动态以及未来就业方向发展的趋势。首先,高校带队老师要深入解析大赛的题目,系统地分析完成比赛任务需要用到的计算机专业课程,并进行记录。在回到学校之后,要和本专业的老师进行研讨,将前沿的计算机专业课程的教学活动融入原有的教学计划当中,并根据学校现有的师资力量,拟定出新的教学计划,并上报至校领导处,待审核通过后再落实。具有前沿性的教学计划可以普及学生对计算机专业课程的认知,进而促使整个教学工作不会和社会脱节。不仅如此,全国每年会举办大量的计算机比赛,高校要把握机会,积极参与到比赛当中,这样做才能够积累更多的经验,最终才能够制定出更加符合学生发展需求的教学计划。老师在具体研究比赛题目的时候,要发现各比赛题目中的关联性,并将各个比赛题目中的共同点进行归纳总结。其次,高校在参加计算机比赛的过程中,要注意观察其他参赛队伍的实际情况并和同类院校的带队老师进行沟通交流[4]。就我国目前的情况而言,虽然计算机专业课程人才的缺口较大,但是绝大部分企业还是秉承着宁缺毋滥的原则,也就是说,高校所培养出来的学生如果缺乏实操能力,就业相对而言也是较为困难的,而其他院校在开展计算机教学工作的时候,更加注重对学生实践能力的考核,这会让学生拥有更大的优势。所以,高校老师在参加计算机比赛的时候,要积极和其他院校的带队老师进行交流,并观察其他队伍学生解决问题的能力,及时总结,对自己的教学方式,以及本院校培养人才的方案进行适当的调整。除了通过观察总结教学经验之外,还可以和同类院校达成战略合作关系,邀约其他院校的老师来本校进行学术交流,并就计算机专业的教学进行深入的研讨。最后,也是最重要的一点,学校老师要注意观察本校学生在比赛期间的表现,以及完成比赛项目中出现的问题。“以赛促学、以赛促教”最终是为了让学生通过参加比赛来积累实践经验,而老师则要通过比赛及时总结经验,对相应的教学计划进行微调。老师要注意观察学生在解决问题,选择技术手段过程中的问题,针对发现的问题要及时地调整教学计划,从而使整个教学效果可以得到一定的提升。

(二)改革教学内容

传统教学模式下以理论教学为主,教师负责讲授课本中的理论知识,最终以笔试成绩作为衡量学生的标准,这样做显然和竞赛脱节,学生只知道相关计算机专业课程的概念,却不知道如何应用[5]。而“以赛促学、以赛促教”的教学理念,则是以竞赛为核心,并根据竞赛项目所要使用的技术手段,延伸出理论教学。比赛阶段,带队老师要根据比赛任务总结出相应的知识点,并将所有的知识点串联在一起。在实际工作的过程中,首先,老师要结合经典的比赛题目对学生开展教学工作。这样做可以使理论教学工作显得不是特别突兀,通过案例分析可以留给学生一个思维缓冲的时间,不仅如此,由于计算机专业课程的理论知识一般都具有较强的逻辑性,学生理解起来存在一定的难度,所以借助案例可以让学生对相应的理论知识有一个清楚的认识,进而可以提升整个课堂教学的效果。其次,老师在开展教学工作的时候可以不局限于课本或者教学大纲,要遵循“以赛促学、以赛促教”的教学原则,以比赛中总结的知识点作为讲解的重点,确保学生能够知道计算机专业课程如何应用,而不是如何取得一个优异的成绩。在教学工作开展的过程中,教师要注意把控课堂教学的节奏,并时刻关注班级学生,要及时的和学生展开互动。最后,要让全体学生都能够参与到计算机比赛之中显然不切实际,所以大部分学生还是无法接受实践的磨炼,针对此类情况,老师可以挑选一些经典的比赛项目,进行一定的微调,以学期作业的形式要求每一位同学利用假期的时间去完成,并在下一学期开始的时候对每一位学生的作品进行评定。老师在设定学期作业的时候,要在近三年的计算机比赛中挑选比赛项目,确保技术和社会需求相适应。而在对微调项目进行要求的时候,也要根据学生的水平,尽可能地将项目要求控制在学生可以接受的范围之内。

(三)教学方法

教学方法是影响高校计算机教学工作质量的主要因素之一[6]。在实际开展教学工作的时候,教师要遵循“以赛促学、以赛促教”的基本原则,运用一些新颖的教学方法。

1项目驱动教学法

计算机比赛,主要是由大赛组委会根据当年网络技术发展的动向,发布一个题目,要求学生团队在规定的时间内完成,主要考察的是学生的技术水平,以及在实践中解决问题的能力。所以,在开展教学工作的过程中,教师就可以借助一个大型的计算机比赛项目来开展相应的教学工作,即项目驱动法[7]。教师要以国家级计算机比赛的真题作为研究对象,带领学生共同学习项目中的知识点,并根据学生整体掌握的情况,及时地调整教学方案。除此以外,教师还要注重教学工作的延伸性,要适当地结合一些最新的技术知识。

2问题探究法

问题探究法,也是在“以赛促学、以赛促教”基础上衍生出的一种新颖的教学方法。教师在利用问题探究法开展相应教学工作的时候,要注意所设置问题的严谨性,以及如何正确地引导学生去解决问题。首先,老师要明确比赛阶段所遇到的问题,以此为契机设置问题,通过问题的建立,引起学生对学习相关知识的兴趣。其次,在课堂活动开展的过程中,老师要善于引导学生自己去解决问题,锻炼学生的逻辑思维能力,而不是按部就班,为了按时完成教学任务,直接讲解解决问题的办法。最后,老师在设置问题的过程中,要适当地结合一些创新元素,要和计算机专业课程发展的最新动态相结合。

三建立梯队培养机制

我国近些年在大力发展计算机产业,各个级别的计算机竞赛也在如火如荼地进行着,虽然每年我国会举办大量的计算机比赛,但是能够真正参加比赛的学生只是一小部分,有大量的学生在校园选拔中就被淘汰。所以,为了通过比赛来提高学生的学习效率,就要从梯队建设入手,根据本专业学生的实际情况开办一些具有针对性的活动,进而提高学生的参与感[8]。

(一)建立兴趣小组

高校在开展计算机专业教学工作的时候,要积极创办计算机网络学习兴趣小组,调动学生学习专业知识的积极性[9]。兴趣小组不再局限于年级和班级的限制,无论是大一新生,或者是即将毕业的大四学生,都可以加入学习兴趣小组当中。当然,为了确保兴趣小组运行稳定,要由老师负责整个小组的日常管理工作,并且在学生遇到技术型问题的时候,能够及时进行答疑。除此以外,兴趣小组一般都是在课余时间开展交流活动,是课堂教学的一种延伸,学生在集体交流的过程中,可以巩固课堂上学习过的知识。为了确保兴趣小组确实可以达到预期的教学效果,作为老师而言,要积极参与到学生的讨论活动中,并给予学生适当的建议,使其能够更好地掌握理论知识,并且还要关注计算机行业的最新动向,分享给小组内的学生。在拟定兴趣小组活动的时候,要充分结合近期计算机比赛的项目,作为高年级的学生要以身作则,并向低年级的学生传授自己学习的经验,要积极主动和小组内其他的成员进行学习交流,进而提高整个小组的学术氛围。作为学校要做好兴趣小组的保障工作,为兴趣小组的开班创造出优越的条件,并重视兴趣小组的发展。学校领导要以学校的名义,定期邀请国内知名的计算机专业教育专家来校进行指导工作。

(二)组织校园比赛

国家以及省市级别的计算机比赛规模较大,而且各个方面已经趋于完善。所以,各高校在组建比赛队伍的过程中会淘汰大量的学生,最终能够参加比赛的学生人数是较少的。基于这种情况,就要通过组织校园级别的比赛,让所有学生都能够参与到实际的比赛之中[10]。在举办校园比赛的时候,首先要完善比赛机制,要确保每一位学生都能够参与到比赛之中,并设立优胜奖。其次要保障校园比赛具有延续性,要让校园比赛发展成为一个长期性的教学活动。最后,要建立必要的选拔机制。对于校园比赛的优胜者,学校要重点关注,形成一个良好的梯队培养体系,激发起每一位学生的学习兴趣。校园比赛作为一种独特的教学形式,虽然没有老师进行具体的教学工作,但是学生在参加比赛的时候,为了完成任务会掌握一些知识,这些知识是以潜移默化的形式灌输给学生的。而老师在校园比赛开展的过程中,要注意维持比赛秩序,并启发学生的逻辑思维,引导学生建立起一个正确的模型。

四结束语

计算机学科的根本问题篇8

高等学校的计算机教育,特别是广大非计算机专业的计算机基础教育,在很大程度上决定着未来社会人们应用计算机和信息化技术,解决来自自身领域问题的能力高低,所以计算机基础教学备受社会各方面的关注。本文结合作者在海外数所著名院校执教十年的工作经历,介绍海外高校关于非计算机专业计算机课程设置的研究与实践经验。

1非计算机专业学生对计算机课程的需求特点

在学习计算机知识的过程中,非计算机专业学生的思维方式不同于计算机专业的学生。非计算机专业学生对计算机课程学习有其自身的需求,我们必须根据现代教育思想和教学理论,针对非计算机专业学生对计算机课程的需求特点,选择正确的教学内容,设立相应的课程体系,运用恰当的教学模式与方法,将理论与实践紧密结合,以提高非计算机专业计算机基础教学的效果和质量。

通过与计算机专业学生的需求对比,Kapland就非计算机专业对计算机课程的需求特点作出如下归纳总结[1]:

1)(1) 非计算机专业学生通常与诸如信号、图像、方程、表格等实体打交道比较多。为了能够对非计算机专业的学生有所帮助,计算机基础课程须教会他们如何表示这些工作中会用到的数据,以及如何操作这些数据,而对学生不太会感兴趣的,诸如AVL树和B树之类的复杂数据,则可以略去不讲。

2)(2) 非计算机专业学生往往将计算机看成是一种工具而非自身的兴趣所在,更非其职业追求的目标。他们通常对计算机已有所接触,能够在家里轻松自如地使用计算机进行一些图像编辑、音乐合成等简单的操作。一旦转到课堂,让他们学习如何打印从1到10的数时,计算机知识则变得复杂得多。强烈的对比很容易让他们产生一种错觉:大学的计算机课程过时了,没有实际应用价值。

3)(3) 非计算机专业学生有着不同的专业背景,将来也会从事各行各业不同种类的工作。课堂上引用的例子必须是不同专业的学生都可通过直觉所接受的。

4)(4) 非计算机专业学生的导师往往自身也不具备很强的计算机使用能力,不可能去很好地帮助学生改善其计算机使用能力。学生从导师那里得到的帮助十分有限。

5)(5) 非计算机专业学生用在计算机课程上的学习时间十分有限,他们不太可能系统地学习计算机课程。有相关统计数据表明,一个计算机专业的学生在计算机课程上所花的时间通常是非计算机专业学生的十倍。

6)(6) 非计算机专业学生会频繁地使用各类标准的图表,如点线图、直方图、散点图、轮廓图、投影图,等,即便是在一个很初级的阶段也是如此。

7)(7) 非计算机专业学生大都不常写软件包,但是会经常使用它们。他们写程序往往是为某一特定用途,而不是写给别人使用。

8)(8) 非计算机专业学生通常不用设计二进制格式的文件,而是直接采用现成的电子表格、图像、声音等形式来进行操作。他们迫切需要知道如何组织和操作存储在各类表格和数据库中的数据,但可惜的是,这些知识在大多数计算机基础课程中并未涉及。课堂上,教师们常常教给他们线性表、栈、队列、树、集合和图,但并没有教会他们如何进行数据库的选择、投影和连接等典型操作。

9)(9) 如今用于科学计算的软件包非常多。我们很难预测非计算机专业学生在将来的科研工作中会需要哪些具体的计算机知识。与此相反,计算机专业的学生会非常确定地使用计算机程序语言,如C++和Java。

2非计算机专业计算机课程的典型设置

应非计算机专业对计算机基础知识的迫切需求,当前,海内外高校为非计算机专业开设了多种不同类型的课程,大体上可分为三种:(1)计算机导论课程 (着重计算机文化基础);(2)计算机应用课程 (着重案例解答);(3)计算机编程课程 (着重程序语言与软件包使用技巧)。具体讲授方式也依照学校规模、教师队伍与学生分布的不同而各具特色,总体上有如下三种授课方式:(1)同时面向计算机专业和非计算机专业,统一授课;(2)计算机专业和非计算机专业分开授课;(3)面向某一特定的非计算机专业(如医学),专一授课。这样,可根据不同专业需要的侧重点不同,传授相应的计算机基础知识。下面,我们通过具体的案例,分别就海外非计算机专业计算机课程的设置经验作进一步介绍。

案例一:荷兰蒂尔堡大学(University van Tilburg, the Netherlands)

笔者曾经在荷兰蒂尔堡大学信息系统与管理系任教3年。蒂尔堡大学为非综合性院校,共设置有五个学院――经济商学院、法律学院、社会与行为科学学院、人文(艺术、哲学、神学、宗教学)学院和天主教神学院。该校的经济商学院是最早、最大的学院,其经济学科居世界前列。信息系统与管理系附属于经济商学院,所开设的课程面向本系信息管理专业的学生,同时对校其他专业的学生开放,属上述统一授课类型。该系开设的主要课程包括商业工程(Business Engineering)、计算机与因特网技术、计算逻辑、计算机体系机构、数据库、e-商业(e-Business)、电子商务、信息技术、商务信息技术、计算与通信技术、经济与计算通信技术、运筹学与计算通信技术、信息管理、信息系统的质量管理、Linux、面向对象程序设计、面向对象模型、信息技术讲座、软件工程、系统与程序开发、网络资讯,等。

2.1计算机导论课程的设置

该类课程的目的在于让不同系科的学生懂得计算机科学的基本原理,教给学生计算机科学中一些伟大的思想与发明,通过这些预备知识,让学生能够最大限度地为将来理解计算机的能力和局限性打好基础,使之能在所从事的行业中学以致用。与此同时,在不要求学生今后从事计算机方面工作的前提下,教给学生很多计算机方面实用的知识,培养一些实用(如软件包的操作及其在实际情况下的应用)。那种只有通过学院式计算机课程的学习才达到的对计算机科学的深入理解并不是此类课程的目的。根据参考文献[3],对计算的深刻理解是可以通过非编程的教育手段获得的。

案例二:美国卡耐基梅隆大学(Carnegie Mellon University, USA)

美国卡耐基梅隆大学的Cortina认为现在的非计算机专业计算机课程为了让学生能写出正确的程序,过分强调了程序设计中的细节及其严谨性。很多时候,学生修这类课程并不是因为他们在实际工作中会用到编程,而是因为这是必修课 [2]。为此,他提出计算机导论课应教给学生计算机科学的原理而非编程,课程应着重强调从计算角度看计算机科学中的主要贡献,学生着重对计算能力的理解以及在计算机科学中会遇到的可能影响其他学科的问题。在设计课程的过程中,教师不应该通过某一门程序设计语言或者某一个特定的应用领域贯穿始终地讲授,而应该从计算的角度,讲述计算机科学的主要贡献和事件。学生学习算法以及建立计算机科学的思维方式,可以通过使用流程图、模拟器来演示一些简短算法的流程,使得能够在不涉及程序设计语言语法的情况下,就可写出一个简单的小游戏。Cortina在其所讲授的计算机导论课程里,覆盖了如下几方面的内容[2]:

(1) 计算机科学的发展史。例如:早期的设备,欧洲中世纪计算机科学的缓慢发展进程,Babbage 和Hollerith在19世纪的贡献,以及战争(二战、冷战)对计算机科学飞速发展的影响和促进,等。

(2) 用算法表达计算程序。例如:采用伪代码表示算法,用Raptor工具模拟计算过程可视化流程图,等。

(3) 数据的组织。例如:基本数据结构(数组、链表、栈、队列、树和图)、数据库和算法的典型构成(赋值、条件语句、循环和子过程,等)。

(4) 用计算机可执行的程序表达算法(即计算自动化)。例如:程序设计泛型(命令式、面向对象式、函数式和逻辑式)、编译器与解释器。

(5) 算法设计的技巧。包括递归、分而治之(如归并排序、汉诺塔)、贪心算法(如Huffman编码、最小生成树)和动态规划(如Fibonacci函数、所有顶点的最短路径)。

(6) 优化,让计算更完美。包括正确性(常量的使用,用数学归纳法证明算法的正确性)以及有效性(算法复杂度)。

(7) 计算的极限。例如:难解性、不可判定性和通用计算模型(图灵机和计数器程序)。

(8) 并发性。包括多处理器(同步、最大加速比和负载)、流水线技术和多任务(操作系统、死锁与饿死)。

(9) 应用。例如公钥密码学、人工智能(图灵测试和博弈树),等。

(10) 计算的未来。包括量子计算、纳米科技等客座讲座。

2007学年,共65人选修该课,分别来自人文与社会学院、商学院、工程学院、计算机学院和理学院。根据学生的反馈[2],80%的学生赞同客座讲座,55%的学生期望继续启用但应使用更多的图例进行讲解,85%的学生会将这门课推荐给朋友。

案例三:香港理工大学(Hong Kong Polytechnic University, China)

考虑到医务人员通常需要使用计算机工作者开发的远程临床设备。很多时候,这些临床设备启用了一段时间,但使用者却经常因为基础电脑知识的缺乏而遇到各式各样的问题。为解决此问题,香港理工大学计算机系专门为医务工作者开设了一门名为“计算机开明”(computer literacy)的课程,听课者包括医生、管理人员、市场销售人员以及经理,等。课程教案几经修改,每次修改均安排在实战训练课程后或者研讨会之后进行。该课程旨在概述计算机的基本运作、资讯科技在医疗系统中的应用,以及计算机的基本操作常识。授课内容包括:

1)(1) 计算机系统导论,包括计算机系统的基本组成(CPU、存储设备、媒体和I/O设备)和工作原理。

2)(2) 系统软件,包括系统软件的功能和操作,MS Windows的基本特点和命令,等。

3)(3) 汉字的输入方法。

4)(4) 数据库,包括数据库系统的体系结构,数据库系统的操作,等。

5)(5) 资讯科技的应用,根据计算机组织结构,介绍计算机的应用。

案例四:美国波士顿大学(Boston College, USA)

美国波士顿大学Parker and Schneider认为非计算机专业课程应该超越计算机语言的语法讲授,重点介绍计算机学科的整体情况,让学生明白计算机编程只是整个计算机学科的一部分。课程所要达成的目标在于向学生传递一种计算机“感觉”,在讲解计算机的一些主要概念及其相互联系的同时,让学生真正地在实验室里操作实践[4]。他们所设计的课程内容涵盖了计算机理论、硬件与逻辑设计、计算机组成、算法与数据结构、程序设计语言、操作系统与虚拟机、应用以及社会等诸方面。其教学风格是在每一个层次上,介绍重要的原理并引出在这个层次上学习的关键问题,然后,迈向下一个层次在一个新的抽象层次上对新问题展开讨论,同时和前一个层次的内容相结合。

2.2计算机应用课程的设置

由于上述计算机导论课程依然着重于计算机系统本身而非计算机应用,或多或少地强调计算机编程,就好像教一个想学开车的孩子如何修汽车,因而,那些受好奇心驱动的非计算机专业学生往往觉得此类计算机导论课程困难且乏味。为解决此问题,另一大类偏重于实际应用的计算机基础课程孕育而生,即计算机应用课程。

案例五:美国哈佛大学(Harvard University, USA)

美国哈佛大学Leitner等人提倡在非计算机专业的计算机基础教学中,讲授计算机应用而非计算机本身,强调计算机应用程序的使用而不是单调的程序设计练习[5]。课程的目标在于让学生学会用软件系统刻画和解决实际问题,以加强对相应计算机概念的理解与认识。课程设计应围绕计算机科学中最让人感兴趣的应用领域(如人工智能、计算机图形学、计算机视觉、信息检索、人机交互,等)来组织。在授课的过程中,每一种应用可从两方面来讲授:首先,给出计算机科学概念的一个直觉性概观;其次,强调应用的特定细节,务必每一个实例都和一个特定的软件系统联系在一起。学生不需要程序设计的基础,在课堂上也不讲授程序设计。在选择具体的应用案例时,注意选题必须覆盖计算机应用的关键领域并提供这些领域特点概念的代表性举例;需用到的软件必须易学、易用、易引起学生的兴趣,适合新手使用和实验,需假定学生除了用过Word或浏览器这类的基础软件之外没用过其他软件。这些系统既可以是商业软件、自由软件,也可以是自己开发的。参考文献[5]中给出了几个案例及其分析说明。

(1) 光线跟踪。运用计算机图形学原理(几何建模和光线传输与反射)、计算几何(计算交叉、几何搜索)等计算机知识。

(2) 动画粒子系统。涉及离散时间系统驱动(随机数)、数值方法(数值积分)等计算知识。

(3) 交互优化。涉及计算复杂性(算法与问题的复杂度、旅行商问题和NP完全)、人工智能(启发式搜索和优化)、概率论和统计(算法的经验分析)、人机交互(协同用户界面的设计)等计算技术。

(4) 图像增强。涉及电子成像(图像感知与表示)、图像处理(点操作、图像过滤、噪音去除)等计算技术。

(5) 人脸识别。涉及计算机视觉(形状识别、图形跟踪和运动分析)、人机交互(基于照相设备的界面)等计算技术。

(6) 万维网上的信息检索。涉及经典数据处理(关系数据库和有效排序和查找)、信息检索(名词集合的向量空间模型、倒排索引、链接分析法、语义网和协同过滤)等计算技术。

案例六:美国坦普大学(Temple University, USA)

美国坦普大学Aiken等人为非计算机专业学生设计了一门计算机案例课程,期望通过具体案例,结合特定领域的知识和逻辑,运用解决科学问题的一般性计算和数学方法,借助信息工具,引导学生解决关键的科学问题,达到让学生了解不同领域专家如何使用信息技术解决问题的目的[6]。在选择案例时,所考虑的依据为:①案例所表述的问题必须能激发不同专业学生的兴趣;②案例必须是一些实际工作中可能会遇到的;③通过案例阅读和分析,学生能迅速把精力集中到解决问题的策略和信息技术上,而不会被其他一些困难所牵制;④案例所表达的问题必须涉及计算机科学的主要概念和相关工具。参考文献[6]中详细地绘出了案例分析的模板,包括如下八个组成部分:

1)(1) 任务描述。包括问题陈述、动机、背景、研究与验证所采用的模型、边界条件、作为一般性问题解决策略的解题过程、学习目标、陷阱与失败的范例,等。每一个案例应代表某一类问题以及与其相关的解决方案。

2)(2) 课程计划和讲义。包括课程内容、特定目标、讲解与实验、独立活动、讨论专题和小组活动,等。

3)(3) 试验计划、活动与讲稿。描述学生在实验前应该作哪些思考、应该在实验室里做些什么工作以及这些工作的目的。

4)(4) 作业、课程项目、考试题和讨论问题。应留有足够的各类问题,用于自我评估并可供学生进一步自学。

5)(5) 数据。应有与案例分析相关的数据(如文件、数据库、图像、动画和演示)。

6)(6) 程序与工具。在案例分析中所用到的每一个程序和工具,在网上都应该有足够的文档,以及为什么选择这种工具的陈述。

7)(7) 额外的资源,供进一步学习之用。包括参考文献、信息网站、相关项目,以及项目完善的建议。

8)(8) 评价体系。对于案例分析中的每一种活动,指出学生应达到的程度。

参考文献[6]给出了如下几个案例供参考。①模拟时空下人类的行为,通过GIS模拟,跟踪2000年前到9000年前巴拿马中部热带森林里农民的扩张和随之而来的巴拿马森林的减少。②工业发展对职业年龄等造成的一系列影响,自1980到现在,审查、评价和解释美国职业分布的变化。③用计算方法探秘有机分子的结构,教给学生简单有机分子的物理性质和结构之间的关系,让学生利用物理定律和特定的计算方法预测简单分子的结构和性质。

2.3计算机编程课程的设置

在鼓励向非计算机专业开设计算机导论课和计算机应用课的同时,当前仍然有很多高校认同计算机程序设计课程的必需性。这是因为科学计算普遍存在于当今绝大多数的科学领域中,科学家们倾向于使用应用软件包而非程序开发环境。掌握基本的计算机程序设计概念、学习一般性程序设计技巧对使用这些软件包非常有帮助。如今,越来越多的科学软件包采用脚本语言、或更为完善的程序设计语言(如Matlab,Mathematica,等)。另外,教给学生一门程序设计语言对于将来想从事计算机科学工作的学生也是有用的。

一般意义上,计算机编程课的目的在于培养学生清晰思考的能力、通过编程解决实际问题的能力、以及感知计算机可以解决哪类问题的直觉能力(如计算机的最大能力以及计算的极限)。程序设计课程的讲授一般需遵循下列准则:①因时间有限,所讲授的程序设计语言必须容易学习和掌握;②程序设计语言必须能清晰反映计算机编程概念;③程序设计语言必须提供科学工作者常用的基本运算,例如将程序设计语言与图形集成在一起,学生就可以较为容易地学会画统计图表;④程序设计语言必须具有一般性,可以通过程序设计语言来解释计算机科学中遇到的重要概念,如语言必须可以用自然而简单的形式去表达树,也可以支持递归;⑤应用程序和例子必须经过认真、仔细地挑选,向学生展示这些例子与所学知识的内在关联,教给他们将来从事科学工作的技巧,且所选应用对于每个理工科学生来说都应是有趣、易掌握的。

案例七:美国杜克大学(Duke University, USA)

美国杜克大学Biermann在讲授计算机编程课程时,兼顾了两大部分的内容:计算机硬件/软件部分和高级专题部分[7]。计算机硬件/软件部分着重让学生理解计算是一个机械的过程,从开关电路和机器基本部件的连接开始,讲授晶体管和超大规模集成电路技术,以及如何将大规模电路集成到小芯片上,然后展示一个典型的机器系统结构,机器的运转以及如何用它编程,最后,解释一个小的编译器如何把高级语言翻译成机器可以执行的语言。在高级专题方面,主要介绍一些当今热门研究问题,让学生认识到计算机科学的局限性,包括计算机程序的时间复杂度、并行结构、不可计算性和人工智能,等。

案例八:美国马可雷斯特大学(Macalester College, USA)

美国马可雷斯特大学Kaplan 在讲授Matlab 程序设计课程中,一半用来介绍Matlab编程,包括数据类型、函数的参数传递、索引、读取标准文件的操作(如文本文件,电子表格)、构造函数、条件和函数;一半用来介绍理工科的实例,如声音(音乐合成、降噪音、速度变化,等)、图像(颜色调整、图像分片、边缘检测,等)、与数学的联系(公式的运用)、计算机科学(Fibonacci函数、汉诺塔、最优匹配、生物信息,等),以及图形用户界面(识别图像上的点),等[1]。

3结束语

一门优秀的非计算机专业计算机课程带给学生的影响与作用力将超过一个学期。纵观海外各大高校关于非计算机专业计算机课程的研究与实践经历,我们认为在设计一门非计算机专业计算机课程时,应遵循如下五大方面的设计准则:

1)(1) 设定目标。根据学校教学大纲的要求,同时参考ACM推荐的课程(/sigcse/cc2001),达到以下的目标。

目标1:让课程内容更相关,所有课程内容和作业都和学生的职业目标相关;

目标2:为启发学生的创造力提供机会,提供机会引导学生把计算看作是有趣而又富有创造性的活动;

目标3:让理论更为实践化,让学生把计算机科学看作是一项社会活动,而不是把它看作一项如进行黑客活动一样的非社会活动。

(2) 选择上下文。许多有力证据表明,如果不讲授一些抽象的概念,如某一具体领域内的程序设计,学生根本学不会。因此选择特定上下文是改进学习的一个关键点。如果以深度代替广度,我们可以教授更多的可转化的知识,同时,使得学生在某门课程结束后仍然可以应用这门课程所学到的知识。最好的方法就是在某些可以实际应用的特定环境中教他们编程。

(3) 设定反馈渠道。不仅从授课教师中取得反馈,而且也应通过多种论坛渠道,获取学生的反馈。

(4) 制定课程的基本结构。选择语言和编程环境是关键的问题,甚至在有些时候是非常谨慎的问题。对非专业课程中所使用语言的选择过程,与社会、文化极其相关,这种相关性甚至不亚于教法的相关性。

(5) 定义课程。确定课程讲授内容、作业和实践操练的详细内容。

参考文献

[1] D. Kaplan. Teaching Computation to Undergraduate Scientists. In Proc. of the SIGCSE 2004, Virginia, USA, 2004, PP 358-362.

[2] T. Cortina. An Introduction to Computer Science for Non-majors Using Principles of Cmputation. In Proc. of the SIGCSE 2007, Kentucky, USA, 2007, PP 218-222.

[3] Mark Urban-Lurain and Donald J. Weinshank, “Is there a role for programming in non-major CS courses?”, Michigan State University, USA, in Proc. ofFrontiers in Education Conference, 2000.

[4] J. Parker andG. Schneider. Problems with and Proposals for Service Courses in Computer Science. In Proc. of the SIGCSE 1987, MO, USA, 1987, PP 423-427.

[5] L. Marks, W. Freeman, and H. Leitner. Teaching Applied Computing Without Programming: A Case-Based Introductory Course for General Education. In Proc. of the SIGCSE 2001, NC, USA, 2001, PP 80-84.

[6] R. Aiken, N. Kock, and M. Mandviwalla. Fluency in Information Technology: S Second Course for non-CIS Majors. In Proc. of the SIGCSE 2000, TX, USA, 2000, PP 280-284.

上一篇:土木工程的困境范文 下一篇:水产养殖专业就业方向范文