




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络实名制的热点与冰点 受亚历山大冯洪堡(Alexander von Humboldt,1769-1859)基金会资助,笔者两次在德国从事访问研究,有幸对德国的高等教育,尤其是大学计算机教育,进行零距离的观察,并留下深刻印象。德国的计算机教育很普及,特色鲜明。为便于读者对德国大学计算机教育有更深入的了解,首先回顾一下德国教育的发展历程和高等教育的一些现状;然后,谈谈自己对德国大学计算机教育的几点感触;最后通过例子看看德国大学如何实现教学与科研的统一。1德国教育德意志民族一向非常重视教育。十八世纪,普鲁士国王腓特烈大帝(Friedrich Wilhelm I,1688-1740)颁布学校教育法令,强制推行全世界最早的、免费的初级教育制度,确认公民接受教育的权利和义务。几十年后,洪堡(Wilhelm von Humboldt,1767-1835)对德国教育实行全面的改革,建立起一套完整的教育制度,确立教育的三个“自然阶段”,即“初等教育、中等教育和高等教育”。直到今天,洪堡的三阶段教育主张还被广泛采用。在德国,教育被视为国家之根本。有一次在内阁会议上,威廉三世国王(Friedrich Wilhelm III, 1770-1840)就对大臣们说:“正是因为贫穷,所以要办教育,我从未听说一个国家是因为办教育而办穷了,办亡国的。教育不仅不会使国家贫穷,恰恰相反,教育是摆脱贫穷和落后的最好手段”。所以,即使在历史上非常困难的时期,政府也十分重视发展教育,保证教育方面有足够的投入。教育具有双重功能,一方面是提高国民的素质,为国家培养了人才,为经济发展注入了活力;另一方面它是现有社会结构的稳定因素。在国家的教育体系里,高等教育是主要成分,发挥关键、重要的作用,为经济建设直接培养高素质的应用型专业人员,以及高水平的科学研究人才。在某种程度上,高等教育体现一个国家的竞争力。在欧美的发达国家,高等教育已从精英教育向大众化教育发展。德国的高等教育有很悠久的历史,最古老的海德堡大学成立于1368年。十九世纪,按照“洪堡教育理念”成立的德国大学更是以其教学与科研统一及学术自由等特点被奉为欧美各国高等教育发展的楷模。洪堡主张把大学办成哲学、科学和学术研究的中心。毫无疑问,作为老牌的经济大国,德国的高等教育也是非常发达,学科门类完善。但不像美、英等国有所谓的一流或名牌大学,德国大学的水平大体均衡,不同的是一所大学在某一学科或者专业有公认的声誉。比如,在计算机领域,亚琛工业大学、卡尔斯鲁厄大学、慕尼黑工业大学和锡根大学等具有很高的知名度。德国现有各类大学一百多所(不考虑其他的高等专科大学),在校学生约两百万。学生有多种途径取得大学入学资格,基本上能够根据兴趣选择不同的专业。一般地,经过五年的学习,才能被授予德国的Diplom学位,相当于一些国家的硕士学位。但是,由于在德国大学里没有学习年限,且不需交纳学费,相当一部分学生在学校逗留时间超过六年。这种情况导致了至今未停歇的、轰轰烈烈的一系列教育改革大讨论。且为了与国际接轨,德国一些大学开始授予学生“学士”和“硕士”学位文凭。2计算机教育德国是制造出世界上第一台计算机的国家,德国人Konard Zuse(1910-1995)被认为是现代计算机的发明者。他在1936年建造出第一台可以编写程式的计算机Z1和后来更高级的Z3和Z4。然而,尽管是世界上计算机研制起步最早的国家,受二战后盟国政策的影响,计算机技术在德国属于受限制发展的范围。到了上个世纪六十年代后,德国计算机应用和技术的发展才开始,相关的计算机教育和学科建设才起步和推动。今天,德国的计算机和信息技术在工业、媒体和生活等各个领域已经相当普及。计算机普及和就业市场的旺盛需求推动计算机学科纵向和横向地朝各个领域快速扩张和发展。德国的情形也是一样,跟随各个行业信息化的浪潮,计算机的影响席卷科学、社会和经济的所有部门。每个人都以某种形式来学习计算机的相关知识,计算机教育得到长足的发展。尤其在大学里,可以找到所有与计算机有关的课程和专业,可以授予计算机科学学士、硕士和博士学位。面对目前供不应求的情况,计算机毕业生炙手可热,大部分愿意早点时间进入就业市场,有些人在工作几年后再回来深造并完成博士论文研究。德国大学的计算机课程与电子电气课程在一个系里,不是彼此独立设置,这点给我深刻的印象。在德语里,Informatik其实是个来自法语的单词,表示计算机科学的涵义,与电气Electrotechnik或电子Electronik结合,意味着这一学科与工程的紧密关系。这点与德国人那种实践主义的精神很吻合,但并不就是说德国大学的计算机课程只注重工程方面的应用。德国大学计算机专业设置与其他国家大体相同,有计算机科学、计算机工程、信息系统、信息技术和软件工程。也有像人工智能、多媒体、图形学、机器人和生物医学二级专业门类。计算机专业在德国能够吸引高质量的学生,大学能为他们提供最好的学习条件。在开始学习阶段,学的是学科和专业基础相关的课程,比如数学课程。到了后半段学习时间,学生才会深入接触专业课程。这些专业课程的选择通常与将来合作的教授的研究兴趣有很大关系,另外,学生的Diplom论文工作也与教授的研究项目有关。在德国的大学里,一个教授即是一个研究所,一个研究所一般也就一个研究方向,很少有超过两个教授以上的研究所。假使有两个教授的研究所,也是工作在同一个课题方向。德国大学的学生很容易接近教授的工作,这点跟我国的情况有很大的不同。3教学和科研统一德国的高等教育重视能力的培养,重视思维方法的训练,重视实践过程,甚至直截了当地将目光投向实际技能的教育。从课程设置、专业学习和Diplom论文工作,都能反映出这一点。特别是在学习的第二个阶段,学生非常有针对性、系统地学习专业课程,为将来工作和科研打下基础。德国大学的教授不会照本宣科地传授教材上的经典理论,事实上他们也不使用特定的教材,更多的是讲授根据个人对专业和科学的理解准备的素材,有些就是自己的专门研究成果。这样,教授可以基于最新的资料,在较高的层次上传授学生将来从事研究和工作所需要的专门知识和技能。这点不光在计算机学科,其他的学科也是这样。这种教学与科研的结合非一般的通识教育,在德国已有相当长的传统。我国大学的计算机教育情况有些不同。虽然学生在后半个阶段也是专业课程学习,老师们教的较多的是教材上的知识。而且在这个关键的专业学习阶段,学生接触实际的机会较少。笔者在德国锡根大学实时学习系统研究所(Echtzeit Lernsysteme - EZLS)学习和工作过,以为该所在教学与科研统一方面做的非常成功,有许多值得思考和学习之处。EZLS的正式大学员工只有一个教授、一个访问学者、一个工程师、一个秘书和四个博士研究生,其余是不定数量的Diplom学生。教授每年张贴一次广告,招收对研究有兴趣的、三年级以后的学生。经过全面考核,每次录用十个左右。这些学生在项目里的分工不同,一般以三个或四个为一组。以AMOR项目为例,每年有两组学生加入,算上固定的科研人员,可以看出项目有一支强壮的、可持续的队伍。AMOR是一台室外移动机器人,学生的分组是依据它的研究内容进行,目前有计算机操作系统和数据通讯组、惯性传感系统组、视觉信息处理组和导航方案组。因为在前一阶段学习了基础课程,学生加入项目组后学习的是深入的专业知识和技能,比如嵌入系统、计算机接口与通讯、数字信号处理、计算机视觉、移动机器人和人工智能,等。这些专业课程,可以是本所教授开的课,也可以是外所教授开的课。可以看出来,这种专业学习是面向项目研究的。也正是在这个学习阶段,学生获得许多手工实践的机会,研究所也提供学生实现想法和思路的最好条件,比方说,设计、加工和检测进行信号采集与处理的印刷板电路,利用AMOR平台进行新算法测试和验证,等。这类实践,对运用所学基础理论、提高专业知识和技能以及培养科研创新能力有重大的意义。AMOR能在今年欧洲移动机器人大赛(C-ELROB)的激烈对抗中获得自动巡航赛道的冠军,可以说是教学与科研统一结下的一个硕果。教学与科研统一在德国大学计算机教育基本有一定的模式,不同专业方向与上面的例子大同小异。 摘要:本文针对高等院校计算机操作系统课程的教学研究和课程建设,分析了教学对象和职业领域对课程内容和人才能力的要求,分别就学生、教师对操作系统的看法和关系进行了讨论,同时根据作者的实践过程,就建立操作系统课程体系和课程建设的问题给出了建议。关键词本文来自:计算机毕业网 :操作系统;课程体系;课程建设;教学改革Pedagogical Research on Operating SystemNaiqi Liu,School of CSE,University of Elec. Science & Tech. of China, Chengdu, Sichuan, 610054Abstract:Aim at Operating System course teaching and curricular development in universities, author analysis the demand of teaching object and requirement in the professional domain. The issues between students, teachers and Operating System course are discussed. Based on authors practice and experience, the suggestions on curricular architecture and development is made.Keywords:Operating system;curricular architecture;course development众所周知,“计算机操作系统”是计算机学科最重要的专业基础课程,所有高等院校中的计算机科学与技术专业都毫无例外地开设了计算机操作系统课程,并作为专业核心课程给予重点建设。而且,随着计算技术进入各个行业,与信息技术相关的专业,如:通信工程、软件工程、信息安全、自动控制,等,也将计算机操作系统列入到专业课程计划中。此外,几乎所有的高职高专、中职学校中的计算机应用和软件工程相关专业,操作系统也是专业技术课程中的一项重要内容。操作系统已经从神坛上走下,将其神秘和抽象转变为平常和实际。人人都希望掌握操作系统这个最核心、基础的计算机系统软件,希望在操作系统支持的平台上进行自己的工作和设计开发。然而,应用对操作系统的期望和需求不尽一样,不同高校的培养目标和对象具有较大差异性,计算机操作系统课程的教学内容也必须根据不同的教学对象进行设计、组织和配置,让学生真正能够进入操作系统、熟悉操作系统、掌握操作系统和应用操作系统。1关注市场对操作系统技术的需求市场需求和技术发展是操作系统自身发展的推动力,对操作系统的关注者历来分为三大群体:其一是操作系统的设计者;其二是基于操作系统的开发者;其三是操作系统的使用者。三类群体对操作系统的期望和目的是不完全一样的,所获取和掌握的技术范围和知识架构也是不一样的。作为教育者,尤其是计算机操作系统课程的教师要掌握的知识结构则与这三类群体密切相关。操作系统的设计者面对着飞速发展的计算机和智能设备的硬件资源和日新月异的应用需求,他们考虑的是如何最大限度地利用这些资源,构建一个安全可信的公共系统平台,提供更可靠、方便、完善的服务。承担的是一种“承上启下”的工作,即向上为开发者和用户提供服务,向下为硬件制造商提供支持和扩展。设计者的知识结构是广泛的,硬件体系结构和软件体系结构的知识是基本的要求,对操作系统理论、架构、算法和设计也具有较高的造诣,大型软件工程的经验也是不可缺少的。这类人才的培养的过程是较长期的,从学校出来的人,经过基础阶段、研究阶段、实践阶段才能够积累设计和开发的经验,基础知识的奠基无疑是很重要的。能不能从事操作系统设计,修改和更新操作系统,构建和设计嵌入系统控制软件等都是一种期望。基于操作系统的开发者是将操作系统推而广之的重要群体,他们以各类操作系统为平台开发其自己的系统、软件和产品,这些产品和软件依赖于相关的操作系统,也是操作系统应用的支撑和拓展。作为开发人员,面对的是确定开发平台、选择开发工具、利用开发资源。相信这个系统平台是安全可靠的(可信赖的),也期望操作系统的功能更加强大,能够为应用开发提供更多的系统资源和调用方式。他们关心的是与操作系统(软件与硬件)的接口和资源调用,应用程序与系统的交互,以及系统运行机制和效率。这一类知识结构对开发者是非常重要的,不仅对于计算机专业的学生,对于其他专业的学生学习计算机操作系统也是非常重要的。广大的普通计算机和智能终端(设备)的用户,他们面对的、所认识的操作系统首先是使用,如何把面前的这个系统用熟,熟能生巧、巧能生华。哪些系统功能和系统支持的软件对自己是非常重要的、必需的?如何方便地使用?如何快速地得到回应?如何对工作有辅助支持?出现故障如何快速恢复?如何防御恶意程序的侵扰?这类应用知识在面向职业的需求中得到极大重视,也是实用型人才培养中很重要的一环。对于进入高校相关专业学习的学生,他们无疑是未来潜在的系统设计者、系统开发者和系统使用者,从学校学习的知识奠定了一个基础。但是学校的教学对象(从另一个角度来说是进入学校的学生生源)是有差异的,并非每一个学生都会成为操作系统的设计者,更多的是基于操作系统的开发者和使用者,认识到这种金字塔式的人才结构,就需要针对不同的教学对象研究其知识结构的构建,课程知识点的关联和教学内容的侧重。另外还要分析现代操作系统究竟包含哪些内容?不同的对象需要掌握哪些不同的知识结构,掌握的深度如何?进行何种能力锻炼?课程内容和讲授方法应当有哪些不同?这样,知识体系和课程体系就明晰了。所以,教学研究是教学改革和提高教学效果必须开展的工作。2研究操作系统课程对象的需求层次每年从高等院校毕业的计算机和相关专业的学生,都要求熟悉和掌握操作系统的知识,而学习是需要有动力的,“要我学”和“我要学”有根本的区别。那么,促使学生学习操作系统的动力在哪里?从狭义的观点来看,考研和就业是本科生目前两个最实际的目标,操作系统课程涉及的内容对学生来说都十分重要,但对不同目标的实际要求又有不小的区别。考研是一条指挥棒,操作系统课程内容成为计算机专业考研内容中的重要部分,为达到既定目标,不少人已经分析和研究了历次考研的考题和内容分布,分别包含了传统操作系统理论、模型、结构和算法,以及涉及四个基本模块(进程、存储、文件、设备)的知识。对于要考研的学生来说,课堂知识是不够的,必须另有一套学习计划。而IT行业对开发人员的要求,则重在基于操作系统的开发,要求学生学完这门课程后,除掌握基本知识外,能够利用操作系统提供的支持进行系统和应用开发设计。操作系统课程内容因此就扩展到软件架构、系统调用、应用接口(API调用等)、程序设计与操作系统的关系,等,这也是对学生操作系统应用能力要求。可见,理论与实践在这里又一次交汇。由于课程教学时间有限,课程内容的组织和实施就是一个值得研究的问题。 在教学内容上,IEEE/ACM长期强调理论、抽象和设计之间的关系,要求教师理解课程体系中的点、线、面的关系。这里,理论到抽象或者抽象到理论是理论研究的过程,而抽象到设计或者理论到设计是工程实现的过程。然而,我们的教学内容过于抽象,缺乏抽象到设计、抽象到应用的过程。这样,学生面对的操作系统仍然是一个模糊的框架,甚至框架都不甚清楚,仍然是“知其然而不知其所以然”。例如:操作系统到底是如何被引入计算机系统的?操作系统软件模块与系统硬件模块的交接点是怎样的?程序是如何从顺序执行过渡到并发或者并行执行的?进程的切换到底是怎样进行和完成的?一个操作系统中是否包含了所有调度算法?内存的分页与实际的内存容量和地址有什么关系?操作系统对接口的驱动是怎样进行的?学生往往知道了概念,但实际动手(设计、编程、实验)时又往往不知所措。有人会说,操作系统就是讲原理的,应用不在其例。实际上,学习的目的就是为了用,只有知识而不用,知识便会老化,也不会转变为能力,因为知识并不等于能力。自然,大学四年中学生不可能学到所有的东西,需要掌握的:一是基本知识,二是基本技术(如编程),三是开发工具(人利用工具而生存),四是应用技能。本科生需要培养独立和协同工作能力。而研究生需要培养独立和协同研究能力。这样,操作系统在本科阶段的课程内容是原理与应用的交叉,根据不同培养对象在理论与应用之间分配权重。例如:鼓励考研者加强结构、模型、算法、过程的学习;对应用开发者要求掌握操作系统的系统资源,熟悉系统编程、开发包与开发工具、系统控件,等;针对使用者强调“我能用操作系统做什么”,熟悉系统管理,系统维护和故障处理。“把操作系统玩儿转”(学生语言)不愁找不到好的工作,这就是事实,也是IT企业对开发和应用人员的基本期望。在我们的教学中有一个例子,即计算机专业的学生学习计算机是“从里往外学”,其他专业的学生则是“从外往里学”。也就是说,计算机专业的学生除了会使用计算机外,还应当能够“改进”、“增强”和“设计”计算机。对于操作系统也是这样。不过由于培养对象的差异性以及主流操作系统产品的垄断性,人们更多地倾向于应用。但需要提醒学生的是,应用不仅仅是会使用,而是“创新性”的使用。3操作系统课程教师的责任对于承担知识传授的教育工作者,面对着迅速发展的信息技术和计算资源,面临自身的知识更新。信息社会提供了信息获取和知识学习的多种途径,在对新信息、新知识的获取方面教师与学生处在同一条起跑线上,唯一区别仅在于对获取信息的处理和使用。教师也每天在用Windows或者UNIX/Linux系统,面对不断更新的操作系统技术。作为讲授操作系统课程的教师,为了上好这门课,我们认为需要注意以下几个方面:其一,根据自己的教学和科研方向,建立自己的知识结构。要非常熟悉所讲授的操作系统课程的内容,清楚教学知识点和系统框架 DDR3、DDR2我该选哪个?临近12月份,DDR2内存颗粒持续着涨势,虽然对比之前几个月平缓了许多。但是相较于几个月前的低价市场主流型号产品出现了百元左右的大幅上涨。由于INTEL和内存厂商错估DDR2内存市场,造成三星等大厂全力投入DDR3内存,而市场对DDR2内存的实际需求却并未减少,尤其是笔记本厂商对DDR2内存的需求更是持续不减,这将导致未来DDR2内存持续缺货,价格也将继续上涨。 DDR2真的便宜很多吗? 在DDR3刚刚推出的时候,或许我们会因为它的高价格和整体平台定位高端的原因而不去选择。但现如今DDR3与DDR2不大的价格差和几乎没有区别的平台定位,还有什么理由去放弃更高的性能和更低的功耗呢? 截止至11月中旬,DDR2内存颗粒的报价还在持续上涨。 我们以主流平台为例,来计算一下DDR3平台和DDR2平台的价格差。 DDR3性能提升有多少? DDR3相比DDR2内存主要是速度上的提升。DDR3预取机制从DDR2的4bit提升到8bit,核心同频率下数据传输量将会是DDR2的两倍,在相同频率下,DDR3的数据传输率是DDR2的两倍。 而另一个方面,抛开了FSB总线的束缚无论是采用K10核心的Athlon、Phenom还是i5、i7都对内存带宽有着很大的需求。 游戏测试中DDR3表现出不错的素质,提升幅度在7%左右,与价格的提升成正比。 看完过上面的对比,想必大家心里也有数了,DDR3平台在价格提升不大的情况下带来了一定程度的性能提升。考虑到日后升级的原因,DDR3更是不二之选。 摘要:本文介绍了作者在计算机专业本科的图形学教学中,如何针对新形势下素质教育的要求,在课堂教学和上机实践两个环节上,调动学生的主动性,激发学生学习的兴趣,培养学生创新精神和动手编程能力的若干具体措施,希望起到抛砖引玉的作用,与同行进行交流,共同促进和提高计算机本科的图形学教学质量。关键词本文来自:计算机毕业网 :创新;计算机专业;本科;计算机图形学;实践教学;编程1引言计算机图形学是计算机科学技术系本科的专业课程。它以二维和三维图形作为研究对象,包括图元的生成和填充、曲线和曲面、三维实体的表示、图形的变换、颜色知识、图形的消隐、真实感图形的生成等内容。在计算机图形学的研究内容方面,非计算机专业的教师和学生有一个误解,认为是利用一些图形软件进行图形的创作,包括Flash、3DS等软件。而计算机专业的本科生,有一部分在进入该课程的学习之前也有这样的误解,这是错误的。作者在教学中强调了该课程所研究的内容,用一句大白话来说,那就是“我们是做一个3DS,而不是用3DS”。计算机图形学这门课程作为专业课,在大学三年级上学期(或者下学期)开设。这个时间上的安排有一个优势,那就是图形学所需要的数学知识,学生在大学一、二年级刚刚学过,在理解图形学的数学原理方面困难不是很大。学生在一年级和二年级,一般是学习物理、电路、高等代数、数学分析、数据结构等课程,C语言或者C+语言的学习还比较浅,至多是对语法的掌握和小程序的编写,没有真正用编程语言实现过一个中等规模的项目,除了少数学生之外,大部分学生的编程能力仍然比较弱,这是学生的基本特点。作者针对课程的特点和计算机专业学生的特点,对课堂教学和上机实践进行了精心的设计,在教学中调动学生的兴趣和积极性,培养学生的动手编程能力。作者采取了若干教学改进措施。实践表明,这些改进措施对于培养学生的学习兴趣,提高学生的综合素质具有很好的作用,取得了满意的教学效果。2互动的课堂作者在课堂教学中,通过动画演示激发学生的学习兴趣;通过算法实际运行效果的比较和分析,帮助学生理解掌握图形学算法;让学生在课堂上讲解算法的实现,让学生参与教学过程,调动其学习的积极性。2.1动画演示与课外作业,培养学习的兴趣要激发学生学习的积极性,第一堂课的讲解是非常重要的。第一堂课的内容是对图形学的介绍难度不大,涉及图形学的内容、图形学的应用和图形学的发展历史等。为了提高学生的学习兴趣,作者把重点放在图形学应用的讲解上,并且从学生熟悉的计算机三维游戏入手,介绍了虚拟现实技术,并且举了古罗马建筑计算机重建实例,通过展示有关的动画片,学生被其壮丽和宏伟所震撼,接着作者展示了用计算机图形技术重建的紫禁城和老北京的风貌,激发了学生极大的兴趣。虽然计算机图形学已经获得了很大的发展,应用于包括CAD、图形界面、艺术、GIS、虚拟现实等不同的领域,但是仍然有很多的问题还没有解决或者解决得不好。接着作者介绍了图形学的若干前沿问题,包括新的造型技术、真实感图形渲染技术、人机交互技术等。向学生展示了计算机生成的皮肤,和自然的皮肤仍然具有很大的差距。最后作者要求学生进行一次课外作业,通过互连网调查一下,如何利用计算机图形技术制作出羽毛、烟花、火焰、烟雾、水等效果,并且提交报告,从实现的基本原理、实际渲染的效果、仍然存在的问题等方面进行论述。经过调查,学生对这些技术的理解仍然是肤浅的,但是这样更加能够激发学生进一步探究的兴趣。2.2算法执行效率的比较与算法的优化计算机图形学这门课程,具有两条天然的线索,一个是二维图形,一个是三维图形。二维图形研究基本图元的生成、二维填充问题、混淆与反混淆、裁剪、图形变换等内容,而三维图形则包括曲线和曲面、三维实体的建模、投影变换、消隐、颜色与渲染等内容。在课堂教学当中,作者根据上述线索进行内容的重新组织,并不严格按照教科书的章节编排来进行讲授,并且要求学生在内容的自我把握上,遵循上述的线索。计算机图形学算法,需要以数学知识作为支撑,包括线性代数(矩阵的运算)、解析几何、微积分等内容,学生对数学的掌握是纯数学的思维,必须把学生的纯数学思考引导到利用数学知识实现图形学算法、并且有效提高算法效率上。在直线段图元的生成算法上,作者进行了这样的讲授设计,首先,让学生自我设计出一个基本的算法,大部分的学生不约而同地利用直线段的方程进行算法的设计,根据直线方程,从X-min到X-max,每个X代入直线方程 ,取得一个对应的Y,然后把这一系列的配对作为屏幕坐标,按照某种颜色进行着色,把直线段显示出来。我们把这个算法命名为朴素算法。接下来,作者首先指出该算法的若干严重问题。首先是正确性,当直线段比较陡峭(相对X轴),那么直线段就会发生断裂。另外一个问题是,算法的效率不高,比系统Windows GDI提供的算法,效率差10100倍。在一个复杂的场景建模中,需要的直线段不是上万个,而是上亿个,那么累计的效率差异将变得很大,性能差到难以忍受的程度。这是学生所始料未及的,对接下来介绍的几个直线段算法,包括DDA算法、对称DDA算法、中点算法等,表现出强烈的学习兴趣,一探究竟,为什么这些算法有这么高的效率。这种提出问题,然后解决问题的教学模式,一方面打破了一些学生的错误认识,同时保持了学生学习过程中的兴奋度。最后作者进行了总结,对于计算机的CPU来讲,定点运算比浮点运算更快,对于函数以及基本运算来讲,加减法运算比乘除法运算快,乘除法运算比三角函数运算快,作者总结了算法优化的基本策略,(1) 用加减法运算代替乘除法运算;(2) 用定点运算代替浮点运算;(3) 避免三角函数计算以及其他耗时的函数调用;(4) 用迭代计算代替独立步骤运算。同时,让学生思考每个算法做了那些优化,这样学生对算法的效率有了更新的认识,避免了用纯数学的知识来把握图形学算法的错误思想,把数学问题变化成计算效率高的算法。2.3算法原理的掌握在学习了基本图元的67种算法之后,学生们普遍碰到这么一个困境,那就是对于每个算法,似乎理解起来没有什么困难,但是又强烈地感到算法众多,互相混淆,没有真正把握每个算法的真正内涵。于是作者要求学生针对每个图元的生成算法,列一张表,按照算法的基本原理、算法的执行过程(包括开始条件、迭代步骤、终止条件)、算法的应用场合和特殊情况的处理等三个方面来对每个算法进行梳理。所有的算法都依赖于一个基本原理,这个原理决定了算法的框架,但是和具体实现是没有关系的,只有理解了基本原理,才能理解算法的各个步骤为什么这么来设计。而对于算法的执行过程,需要从开始条件,终止条件、迭代步骤来把握,而最重要的是,必须对每个迭代步骤的控制机制要有深入理解,每个迭代步骤都有一个判断依据(判据),来决定算法下一步应该走哪条路线,这是体现了算法基本原理的具体步骤。最后必须对算法的应用场合有所了解,有些算法效率高,但是只适用某些情况,而有些算法效率稍微差点,但是却是一个通用的算法8。 2.4学生对算法的自主分析和实现,讲解与交流在教学过程中,作者把讲授和学生自己学习和理解、以及实现相结合,培养学生自主学习的能力。在讲解了若干个算法之后,作者有意把一两个算法留给学生进行自己学习,在掌握了上述介绍的基本思想方法之后,学生很容易地理解了该算法,并且要求所有学生上机实现。最后,随机选择一两名学生,把其实现的程序源代码在课堂上进行讲解。这样做,既能保证所有的学生都下工夫去学习、动手编程实现,而且可以检验学生在算法的理解上是否有偏差,及时进行点评和改正。学生必须自己在学习、理解算法的基础上,用编程语言实现该算法,才能参加这样的实践交流课。既培养了学生学习的主动性,又锻炼了学生的动手能力。3上机环节3.1小算法的上机实现对于独立的、复杂度比较小的算法,比如一些基本图元的绘制、图形的基本变换、裁剪、和反混淆技术等等,在推进课程内容的讲授的同时,即布置学生进行上机,并且经过一周时间,把编程的源代码以及上机报告提交上来。目的是加深学生对这些独立的小算法的理解,并且培养学生的动手编程能力。3.2大作业的设计与阶段式推进为了帮助学生对整门课程在理解上做到融会贯通,特别地设计了一个大作业,要求学生建立一个足够复杂的三维模型,这个模型需要两个以上实体,其中一个实体要通过曲面来进行建模,两个实体之间互相有遮挡关系(其中一个物体是透明的作为可选项),实现几何变换和投影变换,实现隐藏面的消除,最后根据现场灯光环境(多个光源作为可选项),进行渲染,对于能力比较强的学生,要求其把静态的场景转变成动画,可以起到平时成绩加分的作用。通过把大作业设计成两个层次的要求基本层次和可选层次(透明物体、多个光源、动画实现等),既照顾了大部分学生的能力水平,又由于有加分的激励作用,能力强的学生,其积极性普遍高涨,根据作者以往的经验,这部分学生往往做出很好的作品。大作业把整门课程的主要内容通过一个程序让学生都实现出来,难度是相当大的。需要指导学生,适当地对问题进行分割,把问题的解决分成两个阶段,第一个阶段,实现建立模型、投影变换,第二个阶段实现灯光、消隐和渲染。第一个阶段的目标比较容易完成,实现实体投影的效果,取得了阶段性成果,学生容易获得成就感,有了进一步前进的动力。3.3团队协作由于大作业具有一定的难度,对于能力强的学生,一个人独立完成是可以, 摘要:本文提出了应从学生软件工程能力和软件工程素质培养的目标要求进行总体规划,并就软件工程能力要求、软件工程实践教学对环境的特殊要求,以及软件工程实践教学的组织和实施进行了一定的探讨。从实施效果证明其有效性。关键词本文来自:计算机毕业网 :软件工程能力;软件开发过程;实践环境;团队协作1引言软件工程实践教学既指软件工程系列课程的实践教学,也指软件工程专业学生的软件工程能力和软件工程素质培养方面的实践教学。软件工程系列课程的实践教学包括需求分析实践教学、软件设计实践教学、软件实现实践教学、人机交互实践教学、软件测试实践教学等。软件工程的专业实践教学可以分为两部分:程序设计能力培养实践教学和软件工程能力与素质培养实践教学。程序设计能力、软件工程能力和软件工程素质这三者既具有各自的内涵,又相互联系。程序设计能力包括编程能力和程序设计规划能力。一个不会编程序的人很难体会到编程的艰难,自然难以产生为什么要学习软件工程和运用软件工程知识的欲望。如果一个软件开发人员只能会编程序,不会在软件开发过程中运用软件工程的原理和方法作指导,不会成为一个优秀的软件开发人员。所以培养学生软件工程能力是培养学生软件开发能力的自然延伸。在学生软件工程能力培养过程中,通过软件工程知识的掌握和软件工程知识的运用,来领会软件工程的本质,培养学生软件工程的素质。因此,在软件工程专业学生能力培养过程中,一定要对学生程序设计能力的培养和软件工程能力的培养进行综合规划,既要考虑阶段性,又要考虑软件工程知识和软件工程实践引入的时机,使学生在提高学生程序设计能力培养过程中逐步培养学生软件工程能力,在软件工程能力培养过程中,升华学生软件开发能力,逐步养成良好的软件工程素质。2004年以来,我们遵循这样一种指导思想,对我校软件工程专业学生的软件工程实践教学进行了一定的探索,取得了一定的效果。2软件工程实践能力培养规划软件工程能力培养不是靠一两门课程来达到的,它同样是一项系统工程,需要周密计划,稳步实施。我们的基本策略是由浅入深,步步提高,通过加大编程的量来提高编程的难度,在难度中寻求降低难度的方法,适时引入软件工程的原理和方法,并通过“项目”和“团队”软件开发来加深对软件工程的认识,从中领悟软件工程的内涵。我们对软件工程专业学生的能力培养进行了四年规划:第一学年解决基本的程序设计问题,使学生能够编写并调试出150行源代码程序。第二学年基本解决程序设计问题,能够用面向对象程序设计语言,按照基本的软件开发过程开发出一个功能齐全的单机应用程序,并具有一定实用性。基本能够编写出从软件计划到软件确认测试的全部文档,包括技术文档和过程管理文档。第三年全面学习软件工程的知识,并按照软件工程过程开发出基于B/S模式的网络应用软件。第四年通过课程设计和毕业设计进一步加强程序设计能力和软件工程知识应用能力的培养。3软件工程实践能力培养实施基本的程序设计能力培养可以通过课程实验和基本的课程设计来实施。在能力培养规划中,我们用高级语言程序设计、数据结构和面向对象程序设计课程来完成。而对于软件工程能力培养需要特定的环境和过程。3.1软件工程基本能力软件工程基本能力包括:(1) 软件工程过程能力。无论采用何种软件生存周期模型,都可以把一个开发周期分成若干个具有里程碑的阶段。每个阶段都有明确的输入和输出,输出必须通过文档的形式进行完整描述,而且其输出是可验证的。对于学生而言,要培养软件过程能力,必须经历一个从任务接收到交出软件的完整过程。并且知道每个阶段的任务是什么,需要编写那些文档,每个阶段任务完成的标志是什么。(2) 文档编写能力。软件工程过程的每个阶段都以文档作为输入,也以文档作为输出。在软件开发过程中,编写文档的时间要比编写程序代码的时间长得多。学生必须具备文档编写的能力,即每个阶段应有那些文档,文档的内容、格式、文档描述语言(文档核心内容的描述工具,如图形符号、表格等),会使用文档描述语言有针对性地描述应用实例。(3) 团队协作能力。团队协作能力在软件工程能力中是最核心的能力。一个软件项目不可能由一个人从头到尾独立完成,需要多人合作完成。一个软件项目组的团结协作能力如何,将直接影响着软件项目的进度、效率和质量。软件工程的实质是在规定的时间和成本范围内开发出用户可接受的软件产品。在学生软件工程能力培养过程中,虽然没有软件成本的约束,但可以规定时间约束和质量保证措施。因此,软件工程能力培养必须在特定的环境下进行,否则这种能力培养达不到应有的效果。3.2软件工程能力培养环境根据对软件工程能力培养的要求,我们将软件工程能力培养的环境设定为:(1) 选定合适的软件项目。该软件项目必须来自现实社会,具有真实感,避免学生作业性质的题目。完成项目所需的软件开发工作量符合教学要求,能够在规定的时间范围内完成,但学生必须通过紧张的工作才能完成,不能很轻松地完成。(2) 学生必须按照一定的组队原则组成项目组。项目组内按软件开发阶段和任务划分设置若干个岗位,分工明确、各负其责,又互相协作。(3) 文档有规定的模版。文档必须有一定的格式和内容要求。文档的模板体现文档的规范性,避免文档的随意性。(4) 学生必须按照软件公司的工作方式进行正常的上下班制。使学生真正体验一个真正的软件公司是如何开展工作的。没有上述环境,软件工程过程能力和团队协作能力很难体现出来。在一般的学校实验室环境下,难以构造这样的环境。3.3软件工程实践能力培养实施根据调研,我们选择四川某信息技术实训公司作为实习基地。该公司是原拓普公司下属软件公司,通过了CMM三级认证,形成了规范化的软件开发流程和规范化的软件过程管理机制,具有进行软件人才培训的坚实基础,2003年以来,该公司以原四川托普公司的软件项目资源为素材,经过提炼后作为实训项目,为软件企业提供软件人才培训服务。该公司提供的软件人才培训服务与我们所期望的软件工程能力和素质培养具有很大的吻合性,但与我们对学生的培养目标要求又有一定的差距,主要表现在:(1) 项目组的组织。该公司将实训学生划分成一个一个的项目组,按照软件项目开发的组织形式进行组织和管理,这是值得肯定的一面。但每个组至少15人,有的甚至多达20人。对于在校大学生,要从这些学生中挑选一个项目经理,要对每个人设置不同的岗位,把岗位和职责紧密结合起来,达到相互协调和配合,是很困难的,可能造成一部分学生没事干或干事太少,达不到培训的目的,这也不太符合软件工程原理中相关项目组组成对人数的要求,最好遵循72的原理。经过协商,项目组以79人为宜。人太多,组织和协调困难;人太少,要在规定的时间内实现规定的项目开发任务同样有困难。后来的实践证明,这样的分组,在项目中每个实训的学生都有明确的职责和任务,工作量非常饱满,任何一个学生不努力或不配合,都可能导致任务完成得迟后。对7个学生的项目组与9个人的项目组相比,其进度有明显的差异。(2) 软件开发过程的划分。在学生实训过程中不太注意过程的管理,一个项目任务书下达后,只进行最后的验收,没有明显的里程碑阶段划分。而学生的软件工程能力最重要的是体现在软件工程过程的组织、管理和控制的能力,必须具有里程碑阶段的划分,通过里程碑阶段任务结束、阶段成果审查和验收等环节来体现软件工程过程管理对于软件质量保证的重要性,使学生明白软件质量不是通过测试来保证的,而是通过确保软件工程过程每一步的质量来保证,软件需求分析和设计是软件质量保证的最关键步骤。因此在实训过程中,里程碑阶段的划分和阶段成果验收是保证学生软件工程实训质量的基础。通过相互协商,我们把软件开发过程分成三个里程碑阶段:需求分析阶段、概要设计阶段和最后验收阶段。每个阶段结束后都应有关键性的阶段报告,并且对阶段成果要进行讨论和评审,基本通过后才能进行下一阶段的工作。通过软件过程的管理让学生真正知道软件工程的本质是什么。 (3) 软件工程能力培训的步骤。公司原来只考虑对学生进行1次培训,安排在大三结束时。我们认为,软件工程能力和素质的培养需要一个比较长的时间,靠非常短暂的时间来达到培养的目标是不现实的。所以我们计划进行两次软件工程实训。第四学期安排2个学分的软件工程课程学习,期末组织第一次软件工程实习,实训题目是“综合程序设计与软件工程初步实习”,即在学生具备一定程序设计能力基础上,以综合程序设计为内容,通过引入软件工程知识和软件开发过程管理,让学生体会真正的软件开发是怎么回事。尽管学生对按软件工程要求进行软件开发还很不习惯,但通过这样一个过程使他们认识到软件开发不是只写代码,必须按照一定的过程和规范一步一步地进行,否则不能达到预想的目标。在第三学年引入更多的软件工程类课程,学习更多的软件工程知识,再进行第二次软件工程实习,使学生更自觉地运用软件工程的知识进行软件开发的尝试。3.3实施效果通过对2004、2005、2006、2010年暑假的软件工程实习的跟踪,带队老师与实训公司的不断交流与协商,公司按照实习的上述相关要求和规范的软件开发过程组织实习,达到了预期的效果。主要表现为:(1) 使学生深深认识到软件开发并不只是编程序。我们每次安排实习时间4周,其中在学校准备1周,给学生补充一些在实习过程中可能要用到的知识;在实训公司实习两周,第四周进一步完善在公司的实习内容。 多核处理器技术是当前高性能微处理器系统发展的主流趋势。以Intel为代表的国际主流微处理器厂商已经成功推出了多款多核微处理器系统,应用领域也从高端服务器向一般桌面系统延伸。如何充分发挥多核处理器的性能优势,已经成为对当前软件产业的重要挑战。在已有软件工程专业的教学体系中,还没有课程能充分指导学生掌握多核处理器上软件设计的方法和技巧,这直接制约了多核处理器应用的普及和深入,制约了软件技术水平的提高。因此,开设“多核软件设计”课程具有相当的重要性和紧迫性。基于多核课程开设的紧迫性和必要性,为了帮助大学培养掌握业界先进技术,满足时代发展需求的计算机人才、尤其是软件开发人才,Intel公司在全球范围内推出“多核技术”大学计划,除支持基于多核的应用开发研究外,还将主要支持基于多核的课程及实验建设,尤其是围绕多核技术编程的课程建设。该
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从教育改革视角探索创新人才培养的新方法
- 那个温暖的背影写人7篇范文
- 乡村绿色生态与健康生活方式推广
- 汽车维修技术实操训练题
- 2025年医学影像技术考试试题及答案
- 2025年环境法学专业考研复习试卷及答案
- 2025年基础教育与教育改革的呼应能力的测试试卷及答案
- 2025年法学专业实习考核试卷及答案
- 2025年大数据与人工智能相关知识考试试卷
- 2025年甘肃省民航机场集团校园招聘45人笔试备考试题带答案详解
- GB/T 21446-2008用标准孔板流量计测量天然气流量
- 无领导小组面试评分表
- 大学语文-第四讲魏晋风度和魏晋文学-课件
- 我们毕业啦毕业季通用模板课件
- 小升初数学复习八(平面图形)讲义课件
- (完整版)基建建设工程流程图
- 公司金融课件(完整版)
- 墙体开槽技术交底及记录
- 国家开放大学《调剂学(本)》形考任务1-4参考答案
- 公务员工资套改和运行案例
- 哥尼斯堡七桥问题PPT课件
评论
0/150
提交评论