前言:中文期刊网精心挑选了计算机程序编程培训范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
计算机程序编程培训范文1
关键词:计算机程序;技术思想;著作权;商业秘密
一、计算机软件基本理论的介绍
计算机软件是指计算机程序及其相关文档。我国颁布的《计算机软件保护条例》对程序的概念给出了精确的描述。简单地说就是为了告诉计算机需要做什么,按照什么方法和步骤去做,人们必须把有关的处理步骤告诉计算机,以便计算机可以依顺序执行。由此可知,计算机程序要有目的性和可执行性。就其表现形式而言,计算机程序可以是计算机能够直接执行的代码化指令序列,也可以是计算机虽然不能直接执行但可以转化为计算机可以直接执行的符号化指令序列或者符号化语句序列。
计算机程序包含源程序和目标程序。源程序一般是指该程序的源代码形式,由经过培训的程序员编写,能通过编译、链接生成最终程序(即目标程序)的源代码文件,如intx=5。目标程序一般是指由编译程序将源程序编译后的结果,如数字“2”译成“0010”。除了经过特殊培训的程序员,目标程序很难为一般人所识别,但却可以被计算机“理解”并执行。计算机程序按照特定的算法进行运算以实现特定的功能。由此可见,源程序和目标程序虽然在表现形式上有所差异,但内容完全一致。编译时先由翻译程序把源程序静态地翻译成目标程序,然后再由计算机来执行目标程序。编译方式其实与不同语言之间的笔译工作类似。如,为了使一本外文名著在国内发行,须由一位精通该国语言的翻译人员(相当于计算机内部的编译程序)把该书译成中文文本(相当于计算机内部生成的目标程序)。在中文文本出版后,人们在阅读时(相当于计算机的运行),就不再需要外文文本了(相当于编写的源程序)。
计算机软件除了具有知识产权的一些共同的特性外,还具有其自身独特的技术特征和法律特征:
第一,计算机程序的表现形式多样,我们可以通过不同的编程语言(C、C++、JAVA)、符号以及固定载体来表现;
第二,计算机程序的研发技术含量高,通常情况下,开发一个项目往往需要一个有组织、有经验的团队借助现代化高科技手段分工协作完成;
第三,计算机软件的思想与表现形式相互渗透,难以分割,兼有与文字作品相似的表现形式和实用工具的功能特性;
第四,计算机程序与其它的文字作品最大的区别就在于它是使用、操作计算机必不可少的工具,其主要的功能在于使用,只有通过在计算机上将程序运行才能表现出特定的结果;
第五,计算机软件更新快,生命周期短,一般而言,软件的使用寿命大概为3-5年,功能单一的软件一般仅为1-2年,甚至更短;
第六,计算机软件极易复制和改编,而且复制和改编的成本低,费用小,因此才会出现盗版软件猖獗,屡禁不止的现象。
二、计算机程序的著作权保护
计算机程序是一种具有文字作品形式表达和实用工具性质的新型技术知识体。在日常生活中,人们获得计算机程序的目的不是为了阅读或欣赏,而是为了将它运行以解决特定问题(如科学计算、文字处理等)。大多数计算机程序都是作为一种实用工具用来解决实际问题。因此,计算机程序兼有作品和工具的双重性质。计算机程序表现为一组可被自动转换成代码化指令序列的、用国际常用字符表示的符号化指令序列或者符号化语句序列,并且可以用有形的载体如纸、光盘等把它的表达加以固定,其在表达方面与传统的文字作品类似。但与此同时,随着现代科学技术的高速发展,使得固定在这些载体上的计算机程序非常容易被复制,因此,模仿和抄袭计算机程序已经成为侵害计算机程序知识产权的主要方式。为了保护软件研发者的投资,保障软件权利人的权益,应该禁止他人在未经权利人许可的情况下,任意抄袭、复制其程序,禁止他人在未经权利人许可的情况下发行其程序的复制品。现阶段各国均积极采用著作权法保护计算机程序,所谓用著作权法保护计算机程序只是意味着计算机程序表达方面的权利可以受到著作权法的保护,然而这仅仅是对计算机程序知识产权的一项最基本的保护。
著作权保护制度的宗旨是促进本国科学、文化和艺术的发展,保障权利人的合法权益,鼓励积极创作,但不应该禁止任何人利用他人作品已经表达过的构思进行改进和创新,创作出新的作品。因此,计算机程序的技术思想不受著作权法保护。
现在的问题是,既然著作权法不保护计算机程序的技术思想,其他的法律法规又无相关规定,在学理上和实务上就会存在一个“真空地带”,即著作权法的“思想/表达二分法”这一基本原理与软件的功能性特征无法协调。软件这种智力成果所产生的经济利益主要甚至全部来自于控制计算机按照特定的方式运行的这种技术思想──正是因为程序可以控制计算机按设计要求运行以产生满足人们生产和生活需要的特定结果,才使其成为软件开发者巨大的利益源泉。在软件保护史上,曾有过为保护软件开发商利益突破“思想/表达二分法”,以著作权法对软件的技术思想进行“越界”保护的案例。但是,为求得与社会公共利益之间的平衡,著作权法中设有种种权利限制,然而这些权利限制都只针对作品中的“表达”而不针对作品中的“思想”,因此若以著作权法保护技术思想,著作权法中固有的权利限制机制就将无法适用。换句话说,著作权此时对思想的保护成为了不受任何限制的绝对保护,社会其他成员被剥夺了一切合法利用此种思想的机会,这显然对社会不公,妨碍了软件开发,阻碍科技发展;同时这种“越界”又会因无法适用于著作权法保护的其他客体而破坏著作权制度的完整性,造成著作权体制内在的冲突,从而动摇著作权法的根基。所以,1992年美国联邦第二巡回上诉法院审判的“计算机国际联合公司诉阿尔泰”案中拒绝了上述“越界”保护,阐明了软件中可以受著作权保护的要素范围,重新回到了“思想/表达二分法”的传统上来。但如果以不保护技术思想的著作权作为保护计算机程序的单一法律制度,那么“其他任何编程人员均可轻易地通过重新编写新的代码来模仿(该软件的)这种功能”,换言之,著作权只保护程序所表达的功能,而不保护如何实现此种功能的技术思想,这样一来,一些“坐享其成”的软件开发者,只需要等着新开发的软件上市,购买其产品利用反向工程技术进行分析,然后“开发”出表现形式不同,其蕴含的技术思想雷同的克隆产品来抢占市场。这样一来,造成的后果是真正软件开发者的技术思想被他人“使用”,却因没有法律保障而遭受巨大的经济损失,其创新的动力将被大大削弱,产生不公平的竞争结果。因此,以著作权保护计算机软件虽无可厚非,却因不能使软件的技术思想受到保护而存在缺陷。
三、计算机软件知识产权保护的新模式
对于以上出现的问题,我们并非束手无策,其解决方法就是用商业秘密保护配合著作权对计算机程序进行组合保护。
就计算机程序而言,其技术思想存在于源程序和目标程序中。由于目标程序是二进制的机器代码,很难被人们读懂,电脑用户在得到计算机软件后通过目标程序的运行,可以使用软件的工具,但却无法了解其中蕴含的技术思想,所以大部分软件开发商只发行其目标程序而对源程序进行保密,以防止他人轻易获取自己研发的软件中的技术思想。相反,源程序的编写使用的是可以被人们识别的编程语言(如C语言、JAVA语言),经过培训的程序员很容易理解,在这些人得到源程序后,就很可能掌握程序中蕴含的技术思想,并且利用这些信息进行仿制开发。由此看来,源程序对于软件开发者来说,其重要性可想而知。因此,在很多情况下,开发者仅向公众提供目标程序,而把源程序作为企业的内部机密保护起来。
接下来要探讨的问题就是著作权与商业秘密保护是否可以共存,即对软件的知识产权保护能否同时适用著作权法和商业秘密保护?答案是肯定的,因为著作权和商业秘密虽然同时用以保护软件,但各自保护的具体对象并不相同。著作权只能保护软件中的“表达”,而商业秘密则保护的是软件中的技术思想,二者同时存在并不发生冲突。如前所述,软件开发商通常“公开使用和销售”的都是不易被人们所理解和辨认的目标程序,即二进制代码,而将能够被人们理解到其中技术思想的源程序加以保密。在软件研发阶段,开发者可以将流程图、算法以及编写的源程序作为企业的商业秘密加以保护,待软件产品成功问世以后,开发者可以选择采用著作权对源程序加以保护,同样还可以继续采用商业秘密进行保护。除此之外,著作权与商业秘密对计算机程序的组合保护与单独依靠著作权保护相比有诸多优势。首先,从客体范围看,尽管著作权保护的仅仅是“表达”,但商业秘密保护的客体范围却十分广泛,完全可以保护技术思想等一些不受著作权保护的对象;其次,从保护标准看,著作权和商业秘密的保护均不需要经过审批,且对被保护的客体“创造性”的要求较低,并不如专利权那般严格。不仅如此,商业秘密法不禁止第三人通过公平与诚实的方法去发现商业秘密。这里“公平与诚实的方法”,即为TRIPS协议中的“诚实商业行为的方式”,主要是指“公平与诚实”的进行反向工程和独立开发。这表明,研发某项软件的技术思想受到商业秘密保护时,其他人完全可以通过符合“诚实商业行为方式”要求的反向工程和独立开发合法地获得该技术思想。由此可见,从公共政策的角度看,适用设有反向工程和独立开发等权利限制的商业秘密法保护软件中的技术思想,有助于整个软件领域的创新和竞争。
通过以上分析,对于计算机程序的知识产权保护,我们设想的著作权法和商业秘密法的组合保护模式切实可行,商业秘密保护是著作权保护的重要补充。对于计算机程序这种蕴含技术思想的作品,著作权能够为其功能的“表达”提供确定的保护。而商业秘密法正好可以为蕴含技术思想的源程序提供保护,防止其他竞争者以不当的方式获取、披露、利用该源程序,同时一旦该软件的开发商的合法权益受到侵犯,能够根据《反不正当竞争法》进行及时的保护,如要求停止侵害、赔偿损失等。在源程序受到商业秘密法保护的情况下,想获取他人软件技术思想的方法只能是对目标程序进行反向工程和独立开发,而在《反不正当竞争法》中固有地存在着针对这两类行为的免责例外。
四、结束语
不难看出,著作权与商业秘密保护在计算机软件的知识产权保护中建立了一种相互支持与配合的较为完整的模式,克服了单独依靠著作权法保护软件知识产权的不足。这种组合方式促进了软件开发商对于软件研发的大量投资,增强了软件开发工作者继续软件开发的信心,在不冲击现有知识产权体系和符合社会公共政策目标的同时,为软件产业提供了正当、有效的保护。
参考文献:
[1]郑成思.著作权法[Z].北京:中国人民大学出版社,1997.
[2]应明,孙彦.计算机软件的知识产权保护[M].北京:知识产权出版社,2009.
[3]安徽省著作权局.计算机软件著作权保护[J].安徽科技,2006,(6).
计算机程序编程培训范文2
关键词:CAD;暖通设计;应用
中图分类号:S611文献标识码: A
引言
CAD是由美国Autodesk公司开发的AutoCAD绘图软件,它是一个功能强大、易学易用、具有开放型结构的软件口不仅便于用户使用,而且系统本身可不断地扩充和完善,它被广泛地应用于微机及工作站上。因此,国内外软件开发商在此基础上进行有关工程设计专业的二次开发,其中CAD技术在暖通工程的应用较为突出,具有着手工设计没有办法相比的优越性,其可以有效提升设计的绘图质量,缩短设计周期,有效避免手工设计中存在的错、碰、漏、缺的现象。使用CAD技术可以更加便捷的实现方案优化、数值计算、施工图设计等等相关服务,有效降低工程造价,节省投资,提高生产效益。
CAD技术在暖通工程中的应用主要体现在两个方面。一方面为计算机辅助计算,这主要是解决在设计中的负荷计算,水力计算,湿空气分析等问题。另一方面为计算机辅助绘图,这主要是代替过去费时、费力的手工绘图。方案阶段可以手工示意,初步设计和施工图及最后的竣工图一般单位都要求计算机出图。
AutoCAD的使用可以说是暖通CAD历史上的一次飞跃。至今为止,AutoCAD已成为世界上使用率最高的CAD软件。在暖通设计中广泛采用CAD技术,这是发展的走向。
1、暖通CAD发展的技术环境
随着微电子技术的不断进步,大规模集成电路的集成度每5年几乎要提高10倍,而价格却要降低50%,计算机的应用迅速地渗入各个工程技术领域。计算机辅助设计(CAD)是计算机应用的一个重要组成部分,它不仅逐步替代设计过程的人工计算和制图工作,而且正在设计方法方面引发一场技术革命,并且在设计的决策过程中大显身手。暖通CAD技术的开发与应用只是近十来年的事,但其发展的速度越来越快,各种商品化软件不断涌现。美国ASHRAE会刊1991年向会员介绍的与暖通工程有关的软件就有318种,其中CAD软件有40种之多。日本高砂热学工业株式会社1986年开始在东京本店使用CAD工作站,1988年开始在所有9个专店使用微机CAD,1989年开始实现现场配管、风道制作CAD/CAM一体化,1990年开始在设计中运用气流数值解技术,全店现有工作站13台、微机系统254台,其发展速度之快可见一斑。国内近几年也有很大的发展,供暖系统设计计算绘图一体化软件已开发应用,通风空调设计绘图软件也有很大进步,实用化程度有很大的提高。
2、国内CAD技术发展
我国,早期主要研究的是计算机的辅助计算功能,计算机是一种精密性很强的辅助运算工具。80年代计算机技术才能真正实际运用于暖通行业中,至此暖通行业有了其固定的程序,为暖通行业带来了巨大技术支持,同时,计算机软件的开发就自然成为重点。90年代,由于有计算机变成这样发出了许多高级语言,暖通行业的程序编写也得到了巨大的改善。这样,暖通行业的从业人员能够很好地运用计算机技术进行各项工作并将国外成功经验运用实际工作中。
暖通CAD发展的第一阶段是编制计算机程序,利用计算机进行一些繁琐的常规计算,如冷、热负荷计算,不等温降单管热水供暖系统的流量分配计算等等。这类工作的特点是当已知条件(输入)确定时,其结果(输出)是唯一确定的。就在这一阶段,其发展也没有完全局限于模拟传统的设计过程,如发展了动态负荷计算及全年能耗分析的方法等。计算程序在自编自用的基础上出现了暖通工程设计计算程序软件包或子程序库,使开发人员和软件用户分离开来。暖通CAD发展的第二阶段是暖通工程制图软件的开发。就计算机绘图技术发展本身而言,在自动插补技术发展的基础上实现了计算机程序绘图的实用化。为了简化编程过程,出现了绘图子程序库供编程时调用,但对每一张具体的工程图纸,都要编制相应的程序,程序的通用性很差,因而效率不高。交互式绘图软件的出现是这一阶段的重大进步,对于绘制复杂的工程图,以人机对话的形式调用各种绘图子程序及功能子程序形成所需绘制图形的图形文件,以图形文件的编辑过程代替绘图程序为编制过程,将图形文件向绘图机输出即可获得筐纸为硬拷暖通CAD发展的第一阶段是编制计算机程序,利用计算机进行一些繁琐的常规计算,如冷、热负荷计算,不等温降单管热水供暖系统的流量分配计算等等。这类工作的特点是当已知条件(输入)确定时,其结果(输出)是唯一确定的。就在这一阶段,其发展也没有完全局限于模拟传统的设计过程,如发展了动态负荷计算及全年能耗分析的方法等。计算程序在自编自用的基础上出现了暖通工程设计计算程序软件包或子程序库,使开发人员和软件用户分离开来。暖通CAD发展的第二阶段是暖通工程制图软件的开发。就计算机绘图技术发展本身而言,在自动插补技术发展的基础上实现了计算机程序绘图的实用化。为了简化编程过程,出现了绘图子程序库供编程时调用,但对每一张具体的工程图纸,都要编制相应的程序,程序的通用性很差,因而效率不高。交互式绘图软件的出现是这一阶段的重大进步,对于绘制复杂的工程图,以人机对话的形式调用各种绘图子程序及功能子程序形成所需绘制图形的图形文件,以图形文件的编辑过程代替绘图程序为编制过程,将图形文件向绘图机输出即可获得筐纸为硬拷贝。
目前国内常用的软件,有建研院的ABD软件包、北京(洛阳)鸿业公司的ACS软件包、北京天正公司的THvac软件包等。
3、暖通空调CAD系统设计的探讨
3.1、暖通空调CAD系统的基本过程
一般来说,在暖通空调工程设计过程中,按照设计的要求,根据过去类似的设计经验,构思设计模型,建立设计模型,依据设计规范、标准和惯例,绘制设计草图。构造设计方案以及进行各种总体方案设计工作。然后在给定条件下,进行各种性能指标的计算和分析处理,并将结果进行审查,判断是否满足设计要求。重复这个循环直到设计都满意为止。判断和修改,既可以用程序控制进行也可以用人工干预的方式实现。经过反复修改后得到满意的结果可用打印机或绘图仪等输出设备输出全部资料。
3.2、暖通空调CAD系统总体结构设计
暖通空调行业具有设计项目多、设计工作量大、计算分析复杂、涉及的工程图种类繁多图纸量大、处理数据量大、修改添加工作量大以及晃确定性等特点。暖通空调CAD系统由基础建筑条件图子系统、暖通空调制图子系统、工程计算分析子系统和经济分析子系统四个子系统通过数据库和知识库相互连接共同组成。
4、暖通空调CAD系统实现的探讨
目前暖通空调行业普遍存在的CAD应用水平不高,人员素质也有待提高等制约因素,要全面实现暖通空调CAD系统是具有一定难度的,但是推广应用CAD技术又具有非常深远的意义。不仅可以提高暖通空调行业的经济效益、提高市场竞争能力、提高行业的整体技术水平、增加行业的知名度,更可以给暖通空调行业带来良好的社会效益。因此接下来就具体谈一下暖通空调行业应该如何实现暖通空调CAD系统。
4.1、由于CAD系统的硬件投资一般比较大,往往暖通空调行业经济上的承受能力有限,所以全套设备一步到位既不可能也没有必要。另外,由于计算机技术发展迅速,产品更新换代周期短,所以对技术准备和人员素质都要求很高,如稍跟不上,就会造成设备闲置,甚至贬值或淘汰。因此暖通空调行业首先在考虑系统硬件升级和扩充的基础上,适量配置硬件,同时作好人员的技术培训工作。
4.2、就暖通空调CAD系统而言,其开发规模比较大,而且各个部门的具体情况均不相同,要在短时间内完全实现是不可能的。因此暖通空调行业应首先开发建立简单的系统,如基础建筑条件图子系统和部分暖通空调制图子系统以及部分工程计算分析子系统。这样,一方面建立了基础的图形数据库;另一方面又使技术人员得到锻炼和提高。接下来再进一步完善开发暖通空调制图子系统、工程计算分析子系统、经济分析子系统,同时完善各种数据库和知识库。
4.3、暖通空调CAD系统的开发和建立适宜于先从单机系统开始,熟练掌握后再逐步向网络系统转变。
5、结语
CAD技术应用是工程设计发展史上一场深刻的变革,随着全球知识经济的一体化,及我国与其它国家的技术交流,相信优秀的国产暖通CAD软件不久的将来就会面世。到那时,我们就不必不时地去依赖于美国人的AutoCAD。我们国内的暖通行业也会随着设计方法和效率的进步开拓出一片崭新的道路。而我们暖通行业的技术革命,发展CAD技术不仅仅是一个单纯的技术攻关,技术、人才、资金、技术人员都应该学好它,用好它,给暖通事业的美好明天做出应有的贡献。
参考文献:
[1]王利霞.浅谈CFD在暖通空调节能方面的应用[J].大同职业技术学院学报,2004,02:81-82.
计算机程序编程培训范文3
摘要:信息社会需要具备信息素养的人才,计算机技能已成为当代大学生知识结构的重要组成部分。本文对近两年本校新生计算机能力水平和广东省用人单位对高校学生计算机技能水平需求情况进行调查分析,以培养学生信息素养、学生专业发展及社会用人需要等方面为基点,研究了新形势下地方高校的计算机公共课程动态体系。
关键词:地方高校;计算机公共课程体系;信息素养;大工程观
中图分类号:G642
文献标识码:A
教育部2007年2号文件中指出“培养和提高本科生通过计算机和多媒体课件学习的能力,以及利用网络资源进行学习的能力”;教育部战略研究重大专项第三次研讨会提出:要使课程设置从单一的“工程专业课程”传授转变为“大工程观,大系统观”为指导的课程架构体系。大学中非计算机专业的计算机公共课程教学与数学、外语一样,具有基础性、普及性、实用性和不可替代性,是不可缺少的,是培养学生信息素养最直接、最有效的活动。地方高校多为教学型大学,以培养应用型和复合型人才为主,以服务地方经济和社会发展为主。我校与很多地方高校一样已建立了较完善的计算机基础实验教学平台,但缺少变化的课程体系与教学模式制约了其作用的发挥。
1大学生计算机能力现状与用人单位的需求情况
1.1大学生计算机能力现状调查
我们对茂名学院今年入学新生的计算机能力水平进行的问卷调查见表1。
参加有效调查的总人数共842人(文科257人,理科585人),来自理工科、文科共12个专业,其中生源来自乡镇占75%,一般学校占71%。调查数据显示:
虽然“信息技术”课程已成为我国基础教育中的必修课,但由于各种原因,开展的效果并不理想,特别是乡镇学校。有超两成学生“都没学过”或“完全不会”,超七成学生处于“一般掌握”,这就要求我们在大学计算机公共课程体系中还要保留及加强“计算机应用基础”课程。
在选择感兴趣的内容中,大部分对网络知识兴趣较大,而对Office和编程感兴趣的都不足三成;这说明多数学生都充分认识计算机网络(互联网为主)对人的生存与发展至关重要,而学生一般对Office操作已有较好的掌握,而对编程则了解不深。
有超九成学生希望进一步学习计算机相关课程,说明他们都非常认同计算机知识与技能的重要性,也愿意掌握更多的相关知识。
因此,从“以生为本”的角度要求,我们的课程设置要有目的性与针对性,从学生的实际需求着眼,从教学目标、教学方法、教学评价与认证、资源建设等都应进行深入的整改。
1.2用人单位对毕业生计算机技能需求分析
根据“广东省用人单位对高校毕业生计算机技能水平需求情况调查报告”的数据显示:用人单位“对近几年来接收的非计算机专业的大学生或专科生在入职阶段所具备的计算机应用能力的满意度”中选择“一般”的占52%,这表明现状与他们的期望值有一定的差距;用人单位“对学生在校期间获得的相关计算机认证的真实度”中选择“一般”的占75%,显示普遍认为这并不能真实体现实际水平。同时,55.2%的用人单位对新职员不提供计算机技能的培训,而是希望毕业生在校期间就能掌握好,内容包括:文字编辑、数据管理、演示文稿、网络应用、安全防范等,同时要求学生要有较高的信息素养及再学习能力。调查报告显示:
计算机技能已经成为用人单位考察应聘者的重要因素。用人单位期望求职的毕业生较好地掌握信息技术,以便在工作结合专业岗位有效地开展应用,提高工作效率。
社会需求促使计算机课程必须改革。由于应用需求与我们的课程设置有脱离现象,非计算机专业计算机基础教育必须以应用能力培养为目标,在校期间使学生较好地掌握计算机、网络及其他相关信息技术的基本知识与技能。
开展多层次计算机基础教育,满足不同层次学生学习的需要。我们的课程体系需要进一步的完善和丰富,在加强基础知识与技能的学习基础上,要多设置面向不同专业、不同层次、不同需求的计算机选修课程。
同时,还要完善认证与考核,使其成为促进学习的平台,并能真实反映学生的技能水平。
2地方高校计算机公共课程改革宗旨
计算机技能已成为用人单位考察应聘者的重要因素,并且要求变得更加具体。“大工程观”要求:提供综合的知识背景,强调实践性,培养学生的创新性;而课程设置与教学改革是“大工程观”教育理念的核心。高校(特别地方高校)非计算机专业计算机基础教育必须因应发展要求,要了解社会及经济发展的实际需要,了解用人单位岗位的具体需要,改革课程体系、教学模式,改进学生的学习方式、老师的教学方法。改革的宗旨要以学生应用能力为培养目标,强化学生的动手能力,提高学生利用信息技术工具分析问题、解决问题的意识和能力,提高学生的信息素养,为学生的继续发展打下坚实基础,最大限度缩小毕业生的出校技能与就业岗位的要求之间的差距,减少用人单位的再培训成本,使个人与企业共同发展;同时要注意学生基础的差异性,不同企业、不同岗位用人的不同要求,设置多种层次、多种方式的教育模式,以满足不同的学习要求。
3构建计算机公共课程动态体系
3.1课程体系结构与教学计划
我们设置“三层次”计算机公共课程体系(如表2),并且纳入学校“三大层次”课程体系(基础课程、技术基础课程、专业课程)之中,作为基础课程与技术基础课程共同建设。
3.2 基本课程设置
据计算机基础教学内容所涉及的知识结构,我们设计如下几类核心课程或课程包,作为各专业类别选择的依据,见表3。
1) 计算机应用基础。
2) 计算机硬件技术基础。如微机原理与接口、单片机原理与应用。
3) 计算机程序设计基础。不同要求选择不同语言,如C或C++侧重讲解结构化程序设计方法、数据结构与算法、模块化程序设计等,C++或Java侧重讲解面向对象的程序设计、应用程序编程接口等,VC++、VB或Delphi侧重讲解可视化编程技术、组件技术、图形用户界面设计及应用程序开发等。同时程序设计课程从编程能力的侧重点不同可分两个层次:语言级程序设计和工具级程序设计。不论哪种语言都应讲解程序设计的基础知识与基本编程技术。
4) 数据库技术与应用。
5) 多媒体技术与应用。
6) 网络技术与应用。
3.3课程资源建设
根据计算机基础教育的特点及“大工程观”教育理念的要求,循序渐进建设立体化三级课程资源:一是根据本校实际,按照“课程目标章节目标问题(任务)解决问题归纳分析知识扩展”的建设思路,编写有针对性的校本特色教材和实验指导书;二是构建包括有“广东省计算机公共课程共享中心”课程库等资源的网络教学平台;三是建立面向全校学生的计算机开放性实验环境,并实现分层次开放。第一层次为基础教学实验,对一二年级开放,其中包括组装和维修电脑、网络化实验教学平台、无纸化测试系统,企业用人单位模拟环境等,把理论教学内容与实际工程应用联系起来;第二层次为综合性教学实验,以设计型和研究型实验为主,突出内容的前沿性、实践性和应用性,学生可以创造性的运用自己所学的知识查阅文献、设计方案、实现构思,形成系统的知识体系,培养学生初步的工程应用能力和整体性的思维方式;第三层次为参与各种竞赛的学生提供场地和指导,积极配合学生课外创新活动,培养具有创新精神与能力的工程技术人才;第四层次为课题研究开发、系统设计等实验项目,由老师申请课题,吸引那些感兴趣又有能力的学生加入课题研究,培养具有工程实践能力、多学科综合知识背景的复合型工程人才。
3.4评价方式与实施建议
评价目标:变考试为能力认证,体现真实的计算机技能水平,让学生抛开考试的恐惧。
评价方式:通过教考分离,促进课程教学质量得到客观、公正的评价;建设无纸化考核平台,把一次性考试变为多次的通过性考核,真正以“考”促学。
评价内容:注重综合能力的考查。
我们的调查数据显示:“一般掌握”计算机基本技能的新生有七成。因此我们可在新生入学后进行“通过性”的“计算机应用基础”水平测试进行分流,通过者自动获得该课程学分,不通过者可选择参加自学(学校提供充足的立体化学习资源),或者选择参加学校组织的面授课程;对已通过考核的学生,我们为他们提供一个丰富的自主学习的网络资源并开设专题讲座,形式可模拟用人单位的办公环境,让学生真正置身到岗位的实际操作中,如模拟策划与推广岗位,让学生排版和设计;如模拟金融与财务岗位,让他们学习一些财务管理软件,使他们能真正去处理财务管理问题,如计税、纳税等等。这些都能体现“大工程观”建设中关于提高学生的工程实践能力和解决实际工程问题的能力要求,并推出一系列比赛和奖励来激发他们的积极性。
课程设置采取“1+X”方案,即计算机应用基础+若干必修/选修课程。当然必修与选修是相对的、动态变化的,不同专业有不同设置。如科学计算类专业,其知识结构特点与要求要有较强的程序设计能力,建议课程:计算机应用基础+计算机程序设计基础、数据库应用技术、多媒体技术与应用等。
4结束语
社会与经济的发展已经发生了很大变化,学生的能力和水平出现很大的差异,传统的教学与管理方法已经不能适应这些变化,提高教学效率,进行课程改革势在必行。大学计算机公共基础教育是培养学生信息素养的有效平台,该平台的构建要因应信息技术的发展、社会的需求、用人单位岗位的需要、学生发展与专业要求等,建立动态的多元化的教学资源,采取动态的教学方式和多种形式评价方法与考核认证,最终体现“以生为本”的教育理念。
参考文献
[1] 华南师范大学教育信息技术中心. 华南师范大学计算机公共课程教学改革论文与资料汇编[R].2008.
[2] 广东省教育厅高教处,华南师范大学教育信息技术中心,广东省高等学校计算机公共课程教学指导委员会. 广东省用人单位对高校毕业生计算机技能水平需求情况调查报告[R].计算机教育,2008,(3).
[3] 中国高等院校计算机基础教育改革课题研究组. 中国高等院校计算机基础教育课程体系2004[M]. 北京:清华大学出版社,2004.
Study on the architecture of computer’s public courses at local universities
CHEN Yi-ming
(Maoming College, Maoming Guangdong, 525000)
计算机程序编程培训范文4
关键词:实践教学;计算机专业;解决问题
一、课程体系的改革
(一)课程体系要合理。首先,要加强相关课程的教学深度和力度,将理论联系实际,用实际问题来加深学生对理论的进一步理解,全面提升学生的水平,加深学生对编程概念的理解[2]。其次,针对学生已经有的相关理论基础,积极调整教学计划,适当增加学生的实践课学时,以满足学生实践课程中的动手需求,增加学生动手练习的时间。最后,在课后对学生开放实验室,增加学生自由上机时间,并同时安排相关老师进行实践辅导,使学生在发现问题的同时可以理解解决问题,做到问题不过夜。(二)编程动手进课堂。在课程的安排上,将编程课程完全安排进入实验室完成,增添电子教学设备,利用实验室现有的超越电子教室,对编程过程进行更加清晰直观的讲解。听完讲解后,学生可以立即动手进行编程实践,学生可以立即发现自己的问题和步骤,并立即找到老师进行解决,实现问题不留堂。同时,在校园网FTP共享新版本的相关编程软件,使得学生在学习的最初了解和使用的就是最新的编程环境,紧跟上时代步伐。(三)考试成绩编程见。将编程课程的期中和期末的考核由纸质的试卷改为在线的上机考试。除了有常规的选择题型以外,将与程序相关的其他题型均以程序运行结果为给分点,结果正确则有分,不正确则无分,学生在考试过程中就对自己的程序是否得分已经有所了解,同时也促使学生由不想动手、不爱动手,变成不得不动手,因为不动手则不得分。
二、教师素质的提升
由于引进新的教学软件系统,且增加了大量的学生实践环节,这就要求教师熟悉教学软件,且具有快速解决学生问题的能力。由于教师的年纪不同,年轻的教师软件上手快,但是教学经验不足,年纪大的教师教学经验丰富,但是软件上手较慢,针对以上问题将开展如下方法改革。(一)软件系统培训。聘请专业的软件开发人员,对软件进行有效的培训,使教师能较好的完成对教学软件的使用,并在教师上课过程中配备专门的实验维护人员进行设备维护,在出现问题的同时立即解决,尽可能不占用学生的课堂时间[3]。(二)教师实战培训。由于大多数教师常年工作在授课一线,对当前社会的软件行业了解不够全面,所以定时聘请专业的软件公司开发人员对理论教师和实验教师进行实战培训,可以使得教师们对实战前沿有更好的了解。(三)互通有无。定期举办研讨会,对相关学科的教学进行讨论,加深先修课与后续课程之间的联系,集体听课,对课程的讲授和存在问题进行分析,使得以强带弱,强者更强,达到一个良性循环的过程。
三、师生间的沟通
(一)沟通要趁早。在学生入学初,便组织学生座谈,由高年级学生向低年级学生、好学生向一般学生传授学习心得与经验,建立帮扶互助小组,打消学生对编程本身的迷惑。同时,建立公众号、论坛、微信群等联络方式,请编程能力较高的学生负责,方便随时向学生答疑解惑,使得学生可以有“地”放矢。(二)领生入门。邀请专业开发人员为学生进行基础的专业的实战工程指导,同学间可以使用同样课题进行日常练习,并进行班级评比,使得学生可以乐在其中。(三)修行在个人。学习是在使用的基础之上的。如果没有实践,一直处于纸上谈兵的状态,不能学以致用,那么教学是一个失败的过程[4]。实践工程较多的教师可以拿出部分课题内容作为学生课题,指导培养学生参加大创计划和嵌入式设计大赛、计算机程序设计大赛、电子设计大赛、机器人设计大赛的信息类竞赛,增强学生的创新意识,使得学生可以学有所用,用有所得。
计算机程序编程培训范文5
关键词:C语言 实验教学 教学方法
C语言作为当今流行的计算机程序设计语言之一,不仅成为计算机专业的必修课程,而且也越来越多地成为非计算机专业的一门计算机公共基础课程。然而,在C语言程序设计课程的教学中,教师和学生都普遍认为该课涉及的概念比较复杂,使用灵活,容易出错,特别是民族院校的学生大部分是来自边远地区;由于基础差、语言交流困难等诸多原因,使得该课的教学更加困难。
在我校新制定的计算机基础公共课的教学方案中,C语言程序设计这门课的理论课学时为24,实验课学时为36。实验课时与理论课时之比为3/2。可见,要提高C语言程序设计的教学质量,实验教学是一个重要环节。加强C语言实验教学有利于增加学生对理论知识的理解,调动学生的学习主动性,提高学生思维能力和动手能力。
一、实验课教学方法的改革
在C语言的教学过程中,理论课和实验课要有分工,各有所侧重。由于理论课由40学时减少到24学时,如果按照以往的教学方法和进度,只能完成教学计划内容的3/5,而且剩余的2/5内容恰恰是计算机等级考试的主要内容。如果这一部分不讲授,必然给今后学生参加计算机等级考试增加困难。
针对上述情况,我们将一部分理论课的内容融合到实验课的教学中,并对实验课的实验内容和教学方法进行了改革。
1.加强实验课教学内容的改革
C语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试。教师设计实验内容时,根据各个不同的教学阶段,应精心设计相应的实验内容。例如,可以将实验课教学分为三个阶段。第一阶段,主要熟悉上机环境、简单程序的运行和调试。这一阶段以验证性实验为主,增强学生学习信心。第二阶段,根据教学内容,主要编写一些常用算法的小程序。第三阶段,将原来在理论课中讲授的结构体、链表和文件部分,设计成一个综合设计型实验。可采用项目分析教学法,在教师指导下完成一较大的实验项目,如“学生成绩管理系统”。将该项目的功能分解成各个模块,分别用函数编写。该实验项目既复习、巩固了已学知识,又引入了要学的新知识:结构体、链表和文件等。
2.加强实验课教学方法的改革
(1)注意编程思想的培养
在实验课的教学中,除了要安排一些验证性实验来加深对理论课所讲授的知识点和编成方法的理解,还要注意培养学生的编程思想。实际上,要想掌握一种计算机语言的编成方法,只靠看书和做题是不够的,必须通过实验课的教学让自己编写程序并通过调试程序来培养程序设计思想和程序调试能力。计算机算法是程序设计的精髓,计算机语言只是表示形式。没有正确的计算机算法,就无法用计算机正确地解决问题。学生每次做编程实验时,都要求对每一道题目,找出解决问题的算法,画出流程图,最后才是编写程序,这样可以减少出错的可能性。
(2)使用有意义的标识符
C语言教材常常使用单个字符,如i,j,k,a,b,c等作为标识符,很多学生在学习C++时觉得很难。其中一点就是C++教材中的标识符较长。对此,建议学生在编写程序时尽量使用一些有意义的字符串作为标识符,尽量不要用1作为标识符,提高程序的可读性。如输入一系列学生成绩时可使用scorel,score2,…而不是a1,a2,…
(3)网络教学软件的使用
传统的实验课是老师先布置实验题目,然后学生做实验,遇到问题就举手,老师解答。然而,C语言实验往往是大班教学,学生人数较多,许多问题十分相似,老师常常为同一问题解释多次,指导不过来。针对这一问题,我们使用了电子极域软件。该软件是专门针对电脑教学和培训网络开发,可以非常方便地完成电脑教学任务,包括教师演示、学生示范、屏幕监视、遥控辅导、屏幕录制、屏幕回放、同步文件传输、提交作业、远程命令、获取远端信息等。教师可以通过文件传输功能,将实验题目(如基础改错题)发放给学生,让学生练习,然后通过提交作业功能抽一名学生的作业来讲解。
二、实验课考试模式的改革方法
为了提高实验教学的效果,应将实验课的考核作为C语言考核的重要组成部分,让学生从思想上重视实验环节。学生上实验课前,对要做的实验内容要做好准备工作。同时,教师应选择一些学生感兴趣的题目,留给学生提前预习,以激发学生的学习兴趣。为了使学生重视实验课,逐步引导学生自主学习,我们加大了平时考核的力度。
在考试的形式上,要改变以前期末一次性的考核方法,实行分阶段考核,即平时考核和期末考试相结合的方式。我们根据C语言程序设计这门课的特点,采用了下面的考试形式:
课外大作业(10%)+考勤(10%)+3次单元考试(30%)+期末考试(50%)。其中:
(1)课外大作业是指学生在期末考试之前所要提交的一个大的实验项目;该作业的目的在于培养学生的综合程序设计能力和创新意识。作业采用网上提交,教师批阅的形式,满分10分。
(2)实验课的考勤利用计算机管理系统网上统计到课率。考勤满分为10分。
(3)单元考试是指将课程内容分为3个单元,每讲授完一个单元,就进行一次单元考试,每次10分,共30分。单元考试的题型分为单选题、填空题、程序改错题、程序填空题、程序设计题。其中:
①单选题和填空题主要考核学生对常用的语法规则和基本概念的掌握程度。
②程序改错题和程序填空题主要考核学生阅读程序和调试程序的能力。
③程序设计题主要考核学生程序设计的能力,并且程序设计题占主要部分,以引导学生逐步掌握程序设计的方法,提高程序设计能力。
(4)期末考试的题型与单元考试题型相同,只是内容覆盖全课程,共50分。
我们把上述考试形式称为过程化考试。其中,单元考试和期末考试均采用机试,即通过计算机考试系统从题库自动抽题,自动阅卷。
三、结束语
以上是对C语言程序设计课程的实验教学方法进行的探讨。通过实践发现,这些方法有助于激发学生的学习自觉性和主动性,提高学生分析问题和解决问题的能力,达到提高教学质量的目的。
参考文献:
计算机程序编程培训范文6
摘 要:本文通过全面论述计算机图形学的知识结构体系与它在计算机科学教育中的作用与地位,提出把计算机图形学列入计算机专业的核心课程,以弥补“高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)”与“高等学校计算机科学与技术专业公共核心知识体系与课程”中对计算理论“能行性”教育的缺失与应用软件编程系统训练的不足。
关键词:计算机图形学;计算机教育;核心课程;软件系统;应用开发
中图分类号:G642 文献标识码:B
1 引言
2006年,国家教育部高等学校计算机科学与技术教学指导委员会编制出版了“高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)“(以下简称”新专业规范“)[1],该“新专业规范”指出:由于计算机专业是全国在校人数最多、高校开设专业最多的专业,这导致计算机类专业毕业生目前出现就业困难,其主要原因还是计算机人才的培养满足社会需要的针对性不够明确,导致了人才结构上的不合理。解决方法是分类培养、使计算机专业的学生能有相对优势的知识结构,高校教育应该为计算机专业现在的毕业生增加专业特色、增强就业竞争优势,等等。并由此提出了“高等学校计算机科学与技术专业公共核心知识体系与课程”(以下简称“核心课程”)[2]。无疑,这对全面规范并提高国内计算机教育的整体水平具有非常大的指导作用。通过认真学习研究这些内容之后发现,究竟应选择哪些课程作为计算机的公共核心课程供全国各行业人员作为学习计算机的基础知识,以及一些课程的教学内容应该如何安排,才能做到既拓展计算机专业学生的知识领域、又能增加学生毕业后的就业渠道等,这些都是大家不断思考的问题。而计算机“核心课程”的选择似乎对上述已有问题的解决帮助不够,而增加计算机图形学的教育对解决这些问题是一个值得借鉴的好方法,理由如下(不妥之处,请批评指正)。
2 计算机图形学课程列入核心课程,弥补本科教学计算能行性教育的缺失
作为具有全国指导意义的“新专业规范”,应该为计算机教育在多个行业方向的发展奠定基础,而抽出它们所共有的基础课作为计算机本科教育的核心课程,但现有的“新专业规范”的公共“核心课程”[2]只有
程序设计
离散数学
数据结构
计算机组成
计算机网络
操作系统
数据库系统
等7门课程内容,而把“计算机图形学”课程排斥在核心课程之外,这显然不利于计算机应用的全面发展,不利于计算机动画、游戏、图形标准、计算机仿真、计算机辅助设计与制造等计算机应用软件行业的全面发展,会缩小计算机本科生毕业之后的就业面,也与制定“新专业规范”的初衷相悖。
什么能被自动计算一直是计算机界探讨的主题之一[8],那些确切能用计算方法解决的问题如何设计才能被计算机自动计算简称计算的能行性(可计算性的实现前提),而程序设计与数据结构这两门课程是计算机编程的基础,它们作为计算机的公共核心课程是必须的。但这两门课程(该“程序设计”课程实为计算机程序设计语言+语句的简单应用,“数据结构”讲授程序加工的数据如何配合算法进行有效管理安排、以实现算法的功能)并没有从理论上解决计算机程序根据什么原则才能进行有效设计、以及程序如何构成系统后才能最后自动解决用户提交的计算问题,这是国内“程序设计”课程多年来悬而未决的老大难题。其原因在于:讲授程序设计语言时,学生还没有数据结构方面的知识,而数据结构本身既不讲模型方法、又不讲解软件系统等概念,同时这两门课程也缺少具有复杂计算模型的大规模实用软件编程的整体训练内容与方法,若把这些缺失的内容都加入到教学中,则一无足够的课时、二是改变了授课的性质。所以,从算法语言的角度介绍程序的设计方法是不完备的。
对于这个问题,计算理论早已从计算的机理与实现上予以解决。但计算理论的内容一般只在研究生阶段讲授,且计算理论是研究生的一个专业方向、即使该理论在研究生阶段讲授、学生理解也有一定难度,而把这套理论方法直接用于实践以解决实际应用问题难度更大[9]。即现有成熟的程序设计理论与方法没有通过适当的载体引进本科课堂教学中是现行教育政策最大的不足,而计算机图形学是直接从应用软件开发的角度阐述计算的“能行性”问题(见下述),当其列入计算机的核心课程后,既能弥补上述计算理论教育中缺失的一环,也能有效弥补上述7门核心课程中计算机应用软件编程系统训练不足的尴尬。事实上,GPU(图形处理芯片)与CPU在PC机上的发展并驾齐驱,证明计算机图形学是计算机科学中不可缺少的重要研究领域,可这些没有在“核心课程”[2]中得到有效的体现令人不解。
3 计算机图形学的知识结构体系
3.1 计算机图形学的研究对象、研究方法与基本教学内容
计算机图形学的最终目的就是用计算机程序的方法在计算机显示器屏幕上生成图像效果,特别是生成类似照相机拍摄的三维图像。而照相机拍摄三维图像是一个具体的物理过程,它的基本原理是光线在空间物体之间相互传播,当光线被物体表面反射并被照相机接收后形成的显示效果。由于人们能从二维照片上光点的亮度与大小判断出物体表面该点距照相机的相对远近,故人们常称这种图像为三维图像。用计算机程序的方法生成具有高度真实感的图形就是对上述物理过程的一种近似仿真模拟得到的效果。为了达到这一目的,人们根据仿真方法的要求,建立了仿真过程需要的各种模型(包括照相机模型,灯光模型,颜色模型,照明模型,物体的几何模型,物体表面的材质与纹理模型),通过①模型数据的输入(交互输入、编程输入、文件输入等)、②数据的存储与管理(系统参数文件、图形模型数据文件、规格化图形数据文件、物理显示设备的图形显示文件)、③数据的运算处理(物体的几何变换、全剖切运算、集合运算、三维重建算法、物体的各种变形运算等)、④数据的输出(各种线段图形的生成与实面积多边形的填充算法、着色算法、消隐算法、纹理映射算法、阴影算法,光线跟踪算法与辐射度算法)等4个处理过程,用系统编程设计的方法实现其图形显示[7]。
这里照相机模型描述了三维空间中的点、线、面等图形投影转换成二维空间中点、线、面等图形,并调用二维图形的生成算法生成二维图像,同时裁剪超出显示范围的三维图形、便于图形的正确显示。灯光模型与颜色模型描述了光线产生的根源、点光源的空间几何分布、光线在空间中的传播方向与衰减规律,光线的色彩属性、亮度计算方法与合成色的变化规律等内容。照明模型描述了物体表面反光或透光能力的计算方法。物体的几何模型描述了一个物体的点线面等几何尺寸与大小。材质特性描述了各物体表面对各种性质光线的反光与透光能力的大小。纹理模型直接描述了物体表面各点的显示细节与像素值。着色算法确定了用何种插值算法填充多边形网格表面、使其显示效果是多边形网格效果或是一张光滑的曲面效果。消隐算法确定显示物体表面的各个可见表面与边线,不显示其被遮挡的不可见的表面与边线。纹理映射算法就是把一张照片映射至物体的表面上(又称贴图),而这个照片既可以是实际照相机拍摄的三维照片,也可以是用数学模型描述并动态产生的结果。在场景中,由于某些遮挡物的存在,光线不能直接照射到某些物体的表面,使得这些表面反光(透光)的亮度暗于被光线直接照射物体表面的亮度;观察的角度不同,所见这种阴影效果的形状与大小不一样;阴影算法即在场景图中统一绘制这种阴影显示效果与非阴影显示效果。光线跟踪算法、辐射度算法就是仿真光线的传播过程以达到最后生成所需的图像效果。
事实上,在计算机图形学的应用领域中仅研究这些模型还不够,还要用程序设计语言与数据结构的知识把它们都转换成一个个可执行的算法,并用系统编程的方法把这些算法构成一个软件系统整体,才能方便各种图形的生成。而在这个软件系统中生成图形的第一步是构造多种物体的几何模型与形状(物体的几何变换、全剖切运算、集合运算是用简单物体构造复杂物体的有效工具之一,三维重建算法是用点、线、面等元素恢复物体外壳的几何形状),在统一的世界坐标系中确定它们的位置与朝向,再逐一确定物体表面的材质特性与纹理效果等,使这种多物体造型(称场景造型)满足实际应用的需要。第二步是设置灯光与灯光的特性,设置照相机模型等。第三步是在上述二步的基础上,统一用光线跟踪算法或辐射度算法生成上述场景造型所对应的三维图像效果(又称渲染)。
应注意:
① 试图精确的构造现实世界中所有物体、特别是具有复杂结构或微小结构或细微动态变化物体的几何模型既不现实、其代价也太大,人们总是想用其它的方法来代替,这就是所谓分形描述、粒子描述建模等多种其它建模方法的来源;
② 完全按照物理学上光线的传播方法来生成图像太费时间,光线跟踪算法、辐射度算法事实上是对物理光线传播方法的一种近似。这个近似程度一般由图像显示的真实感与计算的复杂度来确定。
③ 在上述场景造型的构造过程中,若物体运动或变形,灯光改变照射的范围、朝向、亮度、色彩,照相机改变拍摄的方向或跟踪拍摄,此时若连续拍摄(即渲染)三维空间场景效果,就形成了多帧图像,连续播放这些多帧图像就是计算机动画。
④ 所谓图形标准就是把上述的照相机模型、点光源的灯光模型、颜色模型、简单的照明模型、着色算法,以及点线面、多边形网格模型等模型与算法用硬件实现,并由图形标准提供软件接口方法调用这些硬件功能;当用户向该图形标准提供上述模型的描述数据与材质、纹理描述数据之后,计算机就能用硬件加速的方法实现在显示器中高速生成点线面、多边形网格,以及光照效果的表面、纹理效果等图形。目前的图形标准本身并不负责物体几何模型的构造,也不负责管理各种模型数据等。现图形标准主要以纹理映射算法为主,暂时还没有用光线跟踪或辐射度算法以实现三维图形的实时显示。可见图形标准仅是计算机图形学部分研究成果的具体实现。
⑤ 若能在上述场景造型中,让各种物体实时运动(照相机与灯光是具有其它功能的物体,它们也有几何形状,也能与人、动物等角色(多关节物体)一样进行各种运动),并能接收用户的交互操作、且这种运动过程具有故事情节性,同时这种多物体运动的效果能在计算机显示器屏幕中实时生成显示,这种计算机动画就是3D游戏(人类社会活动的仿真)。3D游戏另一个难点在于复杂游戏引擎的构造――即如何构造并管理游戏场景的模型数据(包括声音与人工交互操作等),使整个游戏画面达到实时显示的目的。事实上,3D游戏可以看成是计算机多媒体技术与虚拟现实技术在商业上的降级简单应用。
⑥ 物体的几何造型、变形与运动是计算机动画的一个难点,比体这个概念更复杂的是流体与场的模型构造、显示,它们能描述更广泛一类的物理现象,如台风的变化过程、风洞的实验效果、物体表面的应力变化现象、环境中热传递效果的变化、地质勘探结果的可视化显示等,一般人们把这些问题归纳在“科学计算的可视化”课程中讲授,因为这些流体与场的模型构造等需要比较深的数学知识。但是,一旦这些流体与场的几何数据模型确定之后,人们就能用图形标准显示它们。
⑦ 计算机辅助设计CAD与计算机动画的区别:在CAD中,也需要构造物体的几何模型并显示这些物体的构造效果,更重要的是还需要用数控机床把这些设计出的物体零件加工制造出来,故它对物体的几何模型要求特别高、特别是其误差控制,因为多个零部件组成的精密加工机床等最后影响加工的精度都与各个物体模型的误差精度相互关联。显然,在CAD领域中,也有零部件之间的联动等多种运动需要精密控制(机械运动与仿真)。与物体几何模型要求相比,CAD领域中物体的显示要求可以放低些。而在计算机动画中,相对而言,对物体几何模型的要求低,例如物体的外表面可以不封闭,只要这个不封闭的外壳表面破绽不被照相机拍摄到就可以了;但计算机动画对最后渲染的图像显示质量的真实感效果要求很高。
⑧ 二维图形与三维图形的区别:这两者的区别除了其数学模型一个是二维的、一个是三维的之外,更大的区别还在于二维图形学只能从数学上研究图形的基本规律(点、直线、曲线、平面与形状,位置,运动与变形,色彩等)、以及图形的模型构造与显示方法;利用二维图形的简单性,可剖析计算机二维图形系统的组成,即软件系统是一个能自动运行的程序,它能从输入、存储、运算处理、
输出等方面全面处理用户在某个领域中提出的诸多数学模型并完成其模型描述数据的加工任务,使用户很容易明确这种软件的组成、功能与使用范围。三维图形学却可以用数学模型的方法研究自然界中的多种物理现象,由此探讨大自然中多种物理现象的变化规律,并能用图形显示的方法来表现这种变化过程,这种方法正是人们探索自然并进行科学研究所倡导的基本方法之一。因此,从三维图形学的基本教学研究内容可知,用图形方式(可见的点线面、色彩、纹理)显示各种物理现象的变化过程只是一个表面现象,关键的是要掌握这种变化过程的物理机理并能用数学模型的方法全面正确的描述这种变化(即用图形的方法表达计算机信息数据的含义非常适合人们观察自然、了解自然现象与变化规律,而计算机的信息描述数据是由具体的各种物理变化过程确定的),即掌握计算机仿真与科学研究方法才是学习计算机图形学的真谛,也即用计算物理学的基本思想能统一传统意义上计算机图形学与计算机辅助设计学科中的基本研究内容。计算机专业的学生有了这种方法后,再深入其它各应用学科领域,努力掌握其物理原理、科学实验与数学模型方法等知识,并与行业专家相互配合,计算机与计算工具就在各专业领域的科学研究与系统设计上大有用武之地了。
综上所述,可以给出计算机图形学如下定义:
计算机图形学属于计算机应用软件的研究范畴,它主要通过物理原理与数学方法,建立描述自然景观(虚幻世界)的几何数据模型与显示图形的物理数学模型,以达到用程序的方法把这些模型的描述数据通过算法转换成在计算机显示器中显示自然景观图像的目的。本质上,用计算机生成三维真实感图形就是用数学模型的方法仿真光线在物体之间相互传播而产生的显示效果或把光线传递的效果即照片映射至物体表面上所产生的显示效果。
国内计算机图形学教育工作者已认识到计算机图形学在计算机学科教育与科学研究中的重要性,并于2001年公开出版计算机图形学教材支持上述观点[10]。但由于这些观点没有引起国内计算机界制定政策的主流阶层人士的关注,相反,从2000年开始,计算机图形学的内容却从全国范围内的计算机专业等级考试中消失,这不能不说是国内计算机教育的一大损失。
而计算机图形学的授课关系见4.1节。
3.2 “新专业规范”中,计算机图形学的教学内容有待改进
“新专业规范”中计算机图形学的教学内容主要放在计算机图形标准的使用上,核心内容只有图形标准、照相机模型,图形显示设备与输入设备,前期课程要求计算机程序设计语言与离散数学,并只安排8个课时来讲授这些内容,其它的内容作为选修内容(这包括各种图形的生成算法、物体几何模型的描述方法,计算机动画,可视化,虚拟现实,计算机视觉,人们对色彩的主观感受、如何用色彩方式表达设计作品的主题思想,等等)。这种教学安排能使学生掌握图形标准的使用、以及照相机模型的应用,很容易导致学生误认计算机图形学就是在显示器上绘制各种图形这种认识偏差。
这种教学安排不当之处如下:
首先,计算机图形学的前期课程应该是程序设计语言与数据结构。实际上,不学离散数学并不影响学生编写图形学的各种应用程序;但不学数据结构,则编程困难;而且授课学时数太少。
其次,图形标准自成体系,但它不能构成一个完全自动运行并具有图形数据输入、存储、运算处理、输出等处理全流程功能的软件系统,它往往需要用户在应用软件中向图形标准输入模型数据并调用其各函数才能出现所需要的图形显示效果。初学者原指望学了计算机图形学,就知道象3DS MAX与OpenGL等软件中是如何编写程序并实现各种动画图形的显示,但授课结果却令人失望。
第三,由于初学者一般缺少对计算机图形学的全面了解,缺少对计算机图形学的研究对象与研究方法的认识,也没有图形系统的概念,该“新专业规范”授课大纲中虽有物体几何模型的描述方法但缺少在图形系统中具体建造物体几何模型等实例;另大纲中授课内容的逻辑关系非常不顺畅(例如把计算机视觉作为计算机图形学的一部分对待并讲授值得商榷,虽然人们期待从计算机视觉图像中获得图像的模型描述数据并一直朝这个方向努力,但计算机图形学与计算机视觉的研究方向与研究方法毕竟有很大的区别),也没有总结出计算机图形学的核心概念,且对计算机图形学的认识仍停留在图形学由各种算法的集合所组成的认识层面上,很难正确体现计算机图形学在科学研究中的重要作用。若授课内容掌握不当易使教学与学习迷失方向,或再次导致计算机图形学课程被计算机专业边缘化,这也是多年来国内同行反映计算机图形学难教难学的原因之一,这显然与当今计算机图形学在计算机科学中的发展潮流相悖。
第四,图形标准只是计算机图形学部分研究成果的具体实现,当初国外为什么会选择图形标准而不是选择计算机动画为案例作为讲授计算机图形学课程的主要内容,作者认为可能有以下原因:
① 历史的原因:因为图形标准是计算机图形学最早、最成熟的研究领域,后才有CAD、游戏与动画等;且图形标准在各个行业都有广泛的应用,而CAD、游戏与动画是一个具体的专业方向,教学难度大。
② 商业发展的需要:图形标准用硬件实现后,已经成为个人计算机的标准配置,这就促使人们更加专注图形标准的发展。
③ 国外的教学体系不一样:美国的计算机工业、图形学产业与计算机教育均位于世界领先水平,但全美国并没有强制性的计算机教育指导大纲,可是美国各校的计算机教育各有特色,他们对计算机的各个方面都有涉及、且各种层次的计算机课程都有,这种宽松的教育体制有利于科技成果与教育的创新培养。以图形学课程为例,若你需要继续深造,它还有许多图形学的选修课、提高课程(如计算机辅助几何设计、数字几何处理、曲面造型与设计、CAD、计算机动画、游戏、计算机程序设计方法等等)以及最新的学术论文等待着你、直至让你从这种授课体系中走向学科的最前沿与商业开发――即虽然他们的某一门基础课不一定很完美,但他们可以从完整的授课体系中,让你掌握计算机图形学等计算机应用学科的全部内容;但这也同时留下了因为课程划分过细,使人不容易一下掌握学科内容的全貌而留下遗憾。可是国内的计算机教育与国外不一样,首先,国内的高校没有条件开设那么多的计算机选修课;其次,若是全国性的计算机教学指导大纲不全面、不权威的话,就会在计算机学科的发展道路上留下无可挽回的遗憾。
④ 出于知识产权的保护,美国没有一本书的教学内容是一样的(包括CC2005中关于计算机图形学的知识结构体系的论述),这固然便于知识创新,但却不利于优秀知识的继承与传授,结果使得每本新书的内容与体系都不一样且庞杂,这对初学者是一个极大的负担,需要教师认真抽取众多书籍的有效内容,成系统后传授给学生,才能有效的提高学生的学习效率,2000年以前国内外计算机图形学的教材内容与体系的不够成熟,也是造成国内计算机图形学授课不能得到有效重视的原因之一。
⑤ 由于以上原因,美国人并没有把计算机图形学作为计算机学科的核心课程,这使得美国人的计算机图形学课程的教育落后于其计算机图形学等商业软件开发等应用,这是一个不争的事实(在美国,教材与授课基本上是老师的个人作为,商业软件的开发是团队作为并有经济利益作为支撑,它能不断发展并自我完善)。也有很多国际人士认识到计算机图形学的教育出现了问题[4],显然,仍把计算机图形学定义为在显示器上显示各种图形是过于简单,这是没有正确地把计算机图形学学科的发展规律引入教育部门、忽视计算机图形学在各行业领域中的具体应用与需求的一种表现。因此,全面认真研究美国人在计算机教育与计算机工业的发展规律、商业软件开发等多种优缺点,再针对国内计算机教育中存在的不足,提出解决问题的方法应该是国内计算机教育界值得深思的问题;显然,仅用跟踪所谓国外先进的教学方法与理念也有不全面的地方。
4 计算机图形学课程在计算机科学教育中的作用与地位
4.1 计算机图形学是计算机应用软件编程思想系统训练的重要基础课程
数据计算、数据存储与检索、数据联网通信是现代计算机的三个最基本的应用。在这三者中,对于数据存储,一般有数据结构课程与数据库系统软件分别介绍其基本原理与大规模数据的系统管理等软件应用;对于数据联网通信,一般有通信技术、计算机互联网等课程、WinSocket技术等介绍其基本原理与实现方法;对于数据计算,一般有算法语言、编译原理、自动机理论等课程介绍其原理,计算机科学与技术专业追求的目标是:用形式语言与自动机理论,通过形式化和模型的建立,构建系统,进行模型计算。但这些内容抽象、内容难以理解、难以直接应用解决实际应用问题[9],计算机专业的本科生学习这一方法尚有一定难度,非计算机专业的学生更不会接触编译原理与自动机理论等,这就造成一般学生在学习计算机进行编程计算的问题上存在知识缺陷,而计算机图形学课程的授课正好可以有效的解决这个问题。
国内新一版的计算机图形学的授课方法[7]:首先,以二维图形为例,从理论上全面解决了图形系统软件的构建方法以及图形数据处理流程的全过程,使初学者牢固的树立起软件系统的概念;其次,为了用计算机仿真的方法在显示器中生成三维真实感图形效果,建立了描述各种物理现象的多种数学模型(见上述),这些数学模型的描述数据都能通过图形模型数据文件的方式保存在计算机图形系统中供系统内部程序调用,以仿真方法生成三维图像。也就是说,①系统与模型的数学与形式化的描述方法;②按系统数据处理流程,用算法语言与数据结构等知识把模型数据的处理方法全转换成一个个程序,以实现其数据处理的全过程等任务;③编程实现时,需根据计算机的配置与用户的经济要求,合理考虑所选算法的复杂度(或选择优化算法实现图形功能);这三者是计算机编程计算的基本步骤与要求,是实现可计算性的三个条件――即计算机图形学既成功探索了一般典型的计算机应用软件系统开发的基本规律,又用可视化的方式表达了其程序数据运算处理的最后结果,这为该课程成为初学者学习计算机程序设计方法的首选课程之一奠定了基础。
若没有计算机图形学等编程课程的系统训练,计算机初学者一般只能通过实际大型软件项目的学习与训练(或继续深造),通过自我总结与提高,才能全面地掌握这种编程与数据计算等知识,而这种机会不是人人都具有的,其付出的代价也将是巨大的。例如现在一般计算机本科专业的学生虽然能熟练的掌握3ds max软件的操作使用,但不清3ds max软件是如何编制而成,就是现阶段本科教育存在缺陷的具体表现。
通过数据结构的学习,使学生明白:算法+数据结构决定程序设计;但计算机图形学的授课能使学生进一步明白:算法不是从天上掉下来的,它们是由用户解决实际问题建立的物理数学模型、并抽象出模型描述数据之后,提出处理其数据模型的基本方法与步骤;而数据结构是记录该模型的描述数据、以及根据算法的需要构造而成、以配合保存各种中间加工数据或最后加工结果;编程者只有把这些解决问题对象的多种模型编写成软件系统之后,才能完满的完成程序设计的任务――即计算模型及对模型的变换与运算处理方法决定了程序设计的算法与数据结构。
4.2 计算机图形学的教育体现了计算机学科的科学性
计算学科是指通过在计算机上建立模型并模拟物理过程来进行科学调查和研究。该学科是对信息描述和变换算法的系统研究,主要包括它们的理论、分析、效率、实现和应用[6]。在目前所见的计算机教材中,只有计算机图形学是按照这种理论体系组织教学内容的。这些教学内容是人们耳熟能详的物理原理与相对简单的数学知识在计算机中的综合运用,是计算机学科科学性的具体表现之一――只有把计算工具直接应用于科学研究中,这种计算工具与方法具有科学性才有说服力,而计算机仿真是科学研究中常用的一种有效方法,复杂的数学计算又是仿真建模的基础,从这个意义上讲,仿真与复杂的数学计算等都是科学研究中重要的研究方法之一。这样,该课程就很好的解决了“新专业规范”中人们对“数字科学计算”的认识不统一而导致该课程的教学内容与要求不详等问题,很好地使计算机的应用回归其本来面目;
4.3 用图形方式表示计算机信息数据的含义,比用数字符号方式表示其含义更高级、更自然,也是计算机科学研究的对象之一
用文字符号方式描述客观世界是对客观世界的一种抽象,是对客观世界的一种不完整的描述;而人们感受客观世界最自然、相对全面的是用眼睛观察客观世界,它可以较准确的确定客观世界中物理现象的存在与变化规律,这个方法运用于计算机中,就是用图形方式表示计算机信息数据的含义,这种表示方法比符号方式表示信息数据的含义复杂,表示的信息量大,对计算机的硬件要求高。在计算机的多媒体信息表达方式中,图形方式是处理过程最复杂的、也更符合人们的观察习惯。故用图形方式表达信息数据是一种表达信息数据含义的高级表达方式。
现代计算机的应用,不仅是数值计算与数据管理、还表现在工程设计中,人们用图形方式来表达设计人员的设计思想、设计方法,以及设计作品的体系结构与功能等,它能充分表达设计人员的形象思维方式,这种表达方式不仅要求能用计算机表达出来,而且要求计算机能接受人们用这种方式向计算机输入数学模型,这些都是计算机科学面临的新课题。例如古代三国时期,诸葛亮造木牛流马搬运粮草,史书虽然有文字记载其构造方法,但后人却无法复原这种运输工具。在没有实物的情况下,只有用图形方式表示该运输工具的基本构造方法才能使后人复原这种古代的运输工具。对于这类复合结构的复杂物体与运动形式即使用几何数据对它详细描述,若不借助图形方式来表示其几何形状与结构等信息,人们对它的理解也会发生困难,这就是现实中用符号方式描述与图形方式描述(抽象描述与形象描述)信息含义之间的差别。经验告诉我们:在计算机中,信息数据的描述方法不同,往往导致编程的方法与效果也不同,若我们不进行这种方式的培训,就会落后于计算机时代的发展。
4.4 掌握计算机配置的常用工具,是计算机应用的必要条件
传统计算机学科的授课内容,并不直接讲解如何进行科学计算等问题,而是为解决复杂的科学计算等问题提供软件服务工具、方法与手段等。例如,从大量应用中(包括软件编程),找准、预测用户的需求;然后,从中抽象其具有共性的方法与难题,并把它们上升为理论,最后把这种理论开发成工具与系统方法,供用户使用;操作系统软件、汇编语言与编译系统、高级语言与编译系统、软件工程的概念与方法、面向对象的软件开发语言等都是这样逐渐发展起来的;同样的思路,为了计算机的应用,人们开发了办公自动化软件、数据库系统软件、网络浏览器、三维图形标准等各种工具,等等,用户用这些工具能更高效率的开发应用程序。但是,这种授课方式却把用计算机解决科学计算等应用问题留给具体的应用部门与用户对应用软件的具体开发,而课堂教学一般缺少这方面的系统实例,这也是导致目前计算机本科生应用软件系统开发能力弱的原因之一。
但当计算机学科发展到用可视化软件开发应用程序,而计算机的基础教育却忽视这种发展潮流与技术进步(现有的计算机公共核心课程没有计算机图形学的内容),这只能使我们的应用软件的开发水平仍停留在上世纪70年代的字符表现水平上。因此,计算机本科教育中,使学生掌握计算机配置的常用工具是计算机应用的必要条件,这当然包括让学生掌握计算机三维图形标准这个有用工具。
4.5 计算机图形学是嫁接多学科的桥梁,是科学研究思维能力训练的延续与有效方法之一
大学的教育,除了要求学生掌握一门专业的系统基础理论知识与应用外,关键是要掌握“根据任务与需要,学会从中发现问题、分析问题、提出解决问题的方法,建立解决问题的数学模型,直至用物理实验或软件编程的方法解决发现的问题”这种工作能力以及继续学习深造的能力。只有这样,计算机专业的学生才具备自我获取知识和探索解决问题的能力,并使自己在新的工作岗位上做到既是计算机方面的专家,也是行业领域的专家助手,计算机专业的学生才能更好的服务于社会,造福于自己。
什么样的课程能做到使他们具备自我获取知识和探索解决问题的思维能力?传统上大学物理与数学课程的教育是培养这一方法的有效途径。因为物理学是蕴藏科学方法论的宝库,物理不仅包含了物质世界的运动规律,同时蕴涵了丰富的哲理和研究、思维方法,对于培养创新思维有着独特的优势。这种独特的优势地位决定了大学物理在培养全面发展型人才中的特殊作用。显然,知识的内容是有限的,而思维的创造力是无限的。物理学若干世纪以来的辉煌成就,使之创造了一整套行之有效的思想方法和研究方法,据专家统计,在300种通用的科学方法中,物理学包含170种,占56.7%。在大学物理课程中,学生可以接触到实验的方法、观察的方法、科学抽象的方法、理想模型的方法、科学归纳的方法、类比的方法、演绎的方法、统计的方法、证明和反驳的方法、数学模型的方法;还可以学习到科学假设的方法、对称性分析的方法以及定性和半定量的方法等等。同时,物理课程中还包含了无数著名科学大师许多深刻的物理思想和精妙的哲学思辩,尤其随处可见前辈科学破除权威,敢于怀疑,大胆创新的许多生动鲜活的事例。这些闪耀人类智慧光芒的科学方法和科学精神,对提高学生的科学素养,培养他们的探索精神和创新意识,都会产生积极而深远的影响,起到其他课程无法替代的作用[3]。
但传统上计算机课程内容的安排中断了高等数学与大学物理的学习与后续计算机课程学习的相互关系,一些搞计算机工作的人员会片面地认为不学物理与高等数学也一样能学好计算机课程、一样能从事计算机工作。而计算机图形学课程的教学是嫁接大学一年级的高等数学、大学物理与三年级计算机专业教育的有效桥梁,是物理、数学知识在计算机应用领域中的具体应用。而计算机图形学编程思想的训练,特别是探索解决物理问题的数学模型的各种研制方法与思维能力,对各种行业面临实际问题的解决与计算机应用软件的编程具有典型的示范作用――即不同的应用领域、待解决的物理问题与性质不同,其建模解决问题的方法也不同。这种思维方式能告诉各专业学习计算机的学生:通过建立软件系统、并用模型与仿真的方法指导工程实现(例如实现计算机图形显示)是工程应用中的典型方法之一(自动控制、通信、雷达系统工程中都是先用系统的数学模型与仿真方法确定系统工作参数后,再考虑其具体系统的物理实现),这种思维方式是目前计算机公共核心课程与“软件工程”课程所缺少的。具备这种知识与能力,无疑为计算机专业的学生拓展新的发展方向、为计算机专业的学生向其他应用行业的转行做好了思想准备。
4.6 计算机学科的发展是为了应用,而计算机图形学是计算机科学计算等应用的典型代表
计算机科学与技术主要以计算机产业的形式出现在人们的日常生活中,是人们生活、学习与工作的有效计算、存储查询、娱乐等辅助工具之一。计算机科学除了要探讨计算理论自身的发展之外,还要探讨产业的发展,探讨用户的应用与需求;再强大的计算机、功能更全面的开发工具,也需要更复杂的计算机应用课题做支撑,这是计算机学科发展的两条主线。计算机学科的核心教育仅局限于计算理论自身的发展是不完善的,而计算机图形学在计算机动画、3D游戏、图形标准、计算机仿真(如天气预报、大规模地质勘探数据处理、模拟原子弹爆炸与理论设计、模拟汽车碰撞、电磁辐射设计、计算流体力学等应用都需要用图形方式表达其结果)、计算机辅助设计与制造等领域的大量应用,代表了当今计算机科学应用的发展水平,是推动计算科学向前发展的源动力之一,不能再被计算机教育界所忽视。
基于以上理由,相信计算机图形学成为计算机公共核心课程是可行的!
未经授权,谢绝在公开的商业出版物中复制、引用本文之观点与内容。
参考文献
[1] 教育部高等学校计算机科学与技术教学指导委员会.“高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)”[M].北京:高等教育出版社,2006.
[2] 教育部高等学校计算机科学与技术教学指导委员会.“高等学校计算机科学与技术专业公共核心知识体系与课程”[M].北京:清华大学出版社,2007.
[3] 陈菊梅.论大学物理教学对学生创新思维的培养[J].高等教育研究学报,2006,(9).
[4] 石教英.需重视工程科学的可视化学习[J].国际学术动态,2005,(3).
[5] 蒋彦等.关于数学建模思想融入课程教学的研究[J].高等教育研究学报,2005,(3).
[6] 蒋宗礼.认识计算学科分类培养优秀人才[J].计算机教育,2006,(5).
[7] 魏海涛.计算机图形学(第2版)[M].北京:电子工业出版社,2007.
[8] 赵致琢.计算科学导论(第三版)[M].北京:科学出版社,2004.