软件开发开云APP 开云官网入口基础知识范例6篇
软件工程这一术语首次出现在1968年的NATO会议上。软件工程这一概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。张效祥院士主编的《计算机科学技术百科全书(第二版)》将软件工程定义为“是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科”。
“软件工程”作为计算机科学与技术及相关专业教学计划中一门重要的专业基础课,其主要目标是,培养学生运用软件工程的原则、开发方法和技术进行软件的开发和维护。作为一门多学科交叉的工程学科,如何合理地构建软件工程本科教学知识体系,对于培养国家急需的高素质的创新型软件人才具有重要的意义。
为了满足中国软件产业发展的需要,北京大学积极探索和推进软件工程教育。在1984年,北京大学首次为本科生开设了“软件工程”课程,培养学生在软件工程学科的基础知识以及基本实践能力。同年,在国家科委的支持下,北京大学和复旦大学分别举办了共4期软件工程研究生班,教学以工程实践为主,聘用国际上一些计算机专家任教,先后培养了近200名软件工程人才;1988年北京大学计算机科学技术系试办软件工程的本科专业;1996年北京大学开始招收软件工程领域的工程硕士。目前,在北京大学软件工程领域培养的人才,大部分已成为我国软件企业和国际软件企业的技术骨干。
通过多年软件工程领域的教学实践,杨芙清院士提出“软件工程教育体系需要多层次、多样化。比如,在本科教育阶段,重点培养软件工程学科的基础知识、基本的实践能力。而研究生教育阶段,首先要培养扎实的理论基础、软件工程技术和方法,然后再根据人才需求和职业发展分为两种,一是学术研究型,二是工程应用型”。
针对北京大学本科学生的特点,一是基础知识扎实、自学能力强,二是毕业后大部分继续学习深造,攻读硕士和博士学位(根据历届统计,直保本校研究生的比例大约在50%~60%),这为软件工程教育课程体系的建设提出了新的挑战,即如何体现启发式和因材施教原则,如何适应持续培养“本-硕连读”学生的需要。
围绕以上问题,我们自1984年开设本科生“软件工程”课程以来,不断结合北京大学软件工程团队在大型“软件工程”科研项目上的丰富的研究和实践经验,结合软件工程领域最新的研究成果,不断对软件工程本科教学知识体系进行改革,在探索和实践的基础上不断充实和完善,以期创建具有北京大学特色的软件工程本科教学知识体系。
在软件工程本科教学知识体系的探索和实践过程中,我们一直遵循以下两条基本原则:(1)一是软件工程本科教学知识体系不仅需要体现先进性、系统性,而且选取的内
容需要有助于提高学生求解软件的能力,特别是提高学生直接参与软件开发实践和工程管理的能力。(2)二是选取的内容是基础性的、比较“稳定”的,我们向学生尽量介绍有关软件工程的国际标准和成熟技术。我们从以下几个方面来推动软件工程本科教学知识体系的不断发展和完善。
多年来,北京大学软件研究所承担了数十项部级科研项目(包括国家科技攻关计划项目、863计划项目、973计划项目、国家自然科学基金项目等)。其中,以研究软件工程开发环境为主要宗旨的国家科技攻关项目“青鸟工程”,对北京大学软件工程本科教学知识体系的构建影响最为显著。它是国家重点支持的软件产业的共性、基础性建设工程。从“六五”计划开始,历经二十个春秋,由北京大学牵头、中科院院士杨芙清教授主持了持续的科技攻关课题,其目标是以实用的软件工程技术为依托,建立软件产业基础,推行软件工业化生产技术和模式,提供必要的工业化生产手段和装备。
图1概括给出了“青鸟工程”动机、发展及研究内容。青鸟工程历经了国家 “六五”科技攻关项目“软件工程核心支撑环境BETA-85”、国家“七五”科技攻关项目“软件工程技术、工具和环境的研究与开发(SEP)”、国家“八五”科技攻关项目“软件工程开发环境(CASE)的标准化与实用化”、国家“九五”科技攻关项目“软件工程环境(青国际上令人关注的一支科研队伍。通过这些大型软件工程项目的实践,使教师提升了软件工程领域的知识,丰富了
鸟CASE)工业化生产技术及系统(JB/SEIMS)的研究与开发”、国家“十五”973项目“Internet环境下基于Agent教师的软件工程知识体系结构。我们坚持教学与科研相结合,教师积极参加科研项目,从学习跟踪到自主创新,并的软件中间件理论和方法研究”等,取得了一系列重要的研究成果,在理论上不断创新,每年在国际重要刊物和国际会议上发表上百篇论文,理论成果覆盖了软件工程领域几乎所有的研究方向。北京大学软件工程研究团队已成为不断将这些科研成果和软件工程实践经验融入、引入软件工程的教学和实践活动中。
另外,北京大学软件研究所积极接收本科生进入实验室从事科研实践工作,这些学生可以应用最新的科研成果进行软件工程实践,并对科研成果提出相应的反馈意见。这样,通过科研项目极大地提升了学生的软件工程知识和技能。
北京大学软件工程教育长期研究和借鉴IEEE/ACM推出的软件工程规范。IEEE最新的软件工程知识体系SWEBOK(Software Engineering Body of Knowledge)将软件工程知识分解成10个知识领域,即软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量,从而明确了软件工程学科的内容和体系。IEEE/ACM软件工程学科小组研究和公布了软件工程教育知识体系SEEK(Software Engineering Education Knowledge),将软件工程的本科教育分为10个知识领域,包括计算基础、数学与工程基础、专业实践、软件建模与分析、软件设计、软件验证与测试、软件演化、软件过程、软件质量、软件管理。这两个知识体系明确提出学生要有工程素质和专业实践能力,要有问题求解和工程管理能力,要有职业道德和相关法律的教育,要有书面和口头表达能力,要有交流和沟通的能力,要有国际交流的能力,要有组织和管理能力,要有纪律性和团队精神、主动性和创造性、为适应科学技术发展和学科变化进行自主学习的能力等。我们在课程体系的建设和教材的编写中,不断完善对学生以上能力的培养。
在软件工程本科教材编写和教学过程中,参照以上两个软件工程规范,关注软件工程课程知识体系的完善。通过多年的教学实践,给出了软件工程本科教材的基本知识结构,如图2所示。软件工程基本知识结构,基于对软件开发本质的认识,即实现问题域到软件解域之间的映射,紧紧围绕软件开发,讲解软件工程的生存周期过程;讲解有关过程、活动和任务的组织框架,即介绍一些在工程中常用的软件生存周期模型;讲解实施开发活动和任务的一些基本途径,包括结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等;简单介绍作用于开发活动上的一些管理活动,其中重点介绍支持管理活动的一些基础性技术,例如过程创建以及成本、进度估算等。
为了建设世界一流大学,培养出具有创造性的一流软件人才,我们充分地利用了北京大学软件工程科研队伍。这支科研团队在理论上的创新,给教材的编写和讲授提供了源源不断的新知识。在教材的建设中,不断总结新的知识和经验,编写了《面向复用的需求建模》、《构件化软件设计与实现 》和《面向复用的软件资产与过程管理》,这三本书是北京大学软件工程研究几十年经验的结晶,在理论上有许多创新、对教学和科研有重大的指导意义。在多年从事软件工程教学和科研的过程中,编写了《软件工程》,该书先后出版三版,每一版都增添了新的教学经验和科研成果。
我们不仅利用自身团队的经验,我们也充分吸取世界最新软件工程成果为我所用。我们先后翻译了《软件工程――实践者的研究方法》、《软件复用实践》、《管理软件开发项目》和《软件工程最佳实践项目经理指南》等经典著作,作为我们所用教材的补充。
这些教科书和参考书的编写和翻译有力地推动了软件工程课程体系的持续优化。例如,在《软件工程――技术、方法与环境》第一版中,在面向对象分析和面向对象设计两部分,我们讲授的是Coad-Yourdon方法,而到了第二版,我们介绍的是主流的UML和RUP。又如,在《软件工程――技术、方法与环境》第一版和第二版中,我们没有系统地介绍软件项目管理内容,而在第三版中,我们参考和借鉴了软件工程知识体系SWEBOK,引入了“软件工程项目管理概述”一章,进而加强了对本科生软件工程管理能力的培养。
北京大学的学生具有很强的自学能力,而且不同专业和不同层次的学生对软件工程知识的需求也各不相同。基于以上因素的考虑,我们设置了以下课程分别满足不同层次本科生对软件工程教育的需求,体现了因材施教的原则:
(1) 为计算机科学技术专业的学生在设置了“软件工程”课程,使学生系统地学习软件工程的基本思想和方法,培养他们从事软件开发、维护和软件工程项目管理的能力。
(2) 为二学位的学生设置了辅修“软件工程”课程,与计算机科学技术专业的“软件工程”课程相比,该课程在内容和难度上有所降低,主要培养学生的软件工程思想以及基本方法的应用能力。
(3) 为“电子信息科学类”专业、基础好、领悟力强的学生开设了“软件工程―实验班”。这些学生经过计算概论实验班以及数据结构与算法实验班的培养,具备了很强的程序设计技巧与能力。本课程不仅讲授软件工程基本思想与主流方法,而且主要通过实际系统的工程化开发,培养学生的软件工程素质和能力。
(4) 为研究生和高年级的本科生共同开设了一些先进软件工程技术或研究探索性课程,如“高级软件工程”、“方案工程”和“软件项目管理”。这些课程的开设,主要是使学生对先进的软件工程理论、方法和技术有一定的了解和掌握,培养学生从事软件工程研究的素养。
图2所示的软件工程基本知识结构体现了计算机科学技术专业设置的“软件工程”课程的内容体系,而辅修“软件工程”根据非计算机专业学生的知识基础和专业需要,对软件工程本科教材内容进行适当剪裁,“软件工程-实验班”依据其培养目标,结合实际需求,更加关注软件工程有关知识的应用。
我们不仅在教材编写过程注意启发式教学,而且在讲授中更要突出启发式教学,让启发式教学贯穿教学活动的始终,这样很好地调动了学生学习的积极性和主动型,开发了学生的创新思维,培养了学生的创造能力。
(1) 教师授课中的启发式。教师讲授不是照本宣科,而是在深入备课的基础上提炼出重点、难点,拟好带有启发性的关键问题,在课堂上提出,让学生认真思考和讨论,老师有目的、有重点地做点评。例如,在讲授“软件过程”一章时,我们主要提炼出两个关键问题:①软件开发要做哪些映射-活动?②应如何正确地组织开发活动,形成求解软件的逻辑?让学生带着这两个问题去阅读、思索和讨论,从而得到对这一章节知识的深入理解。
(2) 学生登台讲授。这是调动学生学习主动性和积极性的极好方法。北京大学的学生基础好、自学能力强,并有一定的动手能力,这是他们登台讲授的良好基础。我们选择一些章节,在教师的指导下,让学生做准备,然后在小组或班级做讲授。学生准备的过程就是深入学习的过程,这样学习的知识掌握得更深透。一位讲过课的学生深有感触地说:“自己讲一遍胜过听别人讲三遍。”
(3) 老师解惑答疑。我们采用启发式教学充分调动了学生的学习积极性,并不能解决所有的问题。学生越愿意学习,越容易发现问题,提出问题。老师必须居高临下,采用讨论的方式,给学生以及时准确的回答,增强学生的信心,鼓舞学生继续向前攀登。
根据教材,我们设计了一些配套的课程实践课题,如结构化方法实践和面向对象方法实践课题,这样学生可以充分利用北京大学软件工程领域研究的各种软件开发环境(因为北京大学软件工程领域的研究成果覆盖了软件工程各研究方向),如青鸟面向对象建模工具JBOO、青鸟配置管理系统JBCM、基于软件体系结构的可视化建模和构
件组装工具ABCTOOL等,进行课程实践。软件工程课程实践要求学生采用“项目小组”的形式,结合具体的开发项目进行分析和设计,每组不得超过5人。每个项目小组选出项目负责人或项目经理,由其召集项目组成员讨论、选定开发项目。学生分工合作,学习软件开发小组的组织和管理,将项目开发各阶段的任务明确,熟悉软件开发环境,培养团队精神,共同完成该项目的开发任务。教师的主要任务是总体指导学生。学生在规定的时间内完成相应的课程实践,并对已有的科研成果进行反馈,从而进一步促进科研的发展。
从“六五”国家科技攻关项目的研究到目前的研究,我们一直利用科研促进教学,不断完善软件工程本科教学知识体系,在这个探索和实践的过程中,也培养了学生软件工程理论和实践相结合的能力以及创新性的思维能力,很多学生都说这正是北京大学软件工程教学知识体系和科研结合的独到之处,也是北京大学良好学风的体现。
北京大学软件工程本科教学知识体系的建设和教学活动实践既参照了国际上计算机学科发展规范所提出的质量要求规范-软件工程知识体系SWEBOK和软件工程教育知识体系SEEK,又充分考虑了国家对北京大学的要求和希望,以及北京大学软件工程教学和科研团队,高质量的学生的特点,不断进行教材建设和教学活动的探索和改革,已经取得了一定的成果,对科研和教学起到了推动和促进作用。这种探索和改革还在继续进行中,我们相信未来会取得更理想的成果。
[1] 张效祥. 计算机科学技术百科全书[M]. 2版. 北京:清华大学出版社,2005.
[2] 杨芙清. 软件工程教育的思索与实践[C]//全国高校2007年软件工程专业教育年会论文集. 北京:高等教育出版社,2007.
矿山工程类技术人员是指与采矿工程密切相关的,如采矿、矿井建设、矿山地质、矿山测量等专业技术人员,他们是矿山企业生产运营过程中的主要角色之一,肩负解决生产技术难题和进行企业技术创新的责任,从事的主要是矿山工程设计、施工及岩层控制、矿体及其分布规律分析研究、矿图绘制、矿山生产技术管理等多方面的技术工作,矿山工程类技术人员的计算机知识水平和能力水平直接影响着企业的经营管理水平和安全生产水平。随着信息技术的深入广泛使用,计算机技术对矿山工程类技术人员已成为不可或缺的基础性知识,同时也是进行专业技术创新的工具。针对矿山生产技术特点,研究矿山工程类专业技术人员计算机
技术素质问题,对构建科学的矿山工程类专业技术人员培养体系,以及进行在岗培训与提高具有重要意义。
一、对矿山工程类技术人员计算机技术素质的基本要求首先应明确,作为汁算机技术的应用者.矿山工程类专业技术人员对计算机硬件知识的掌握,只需具备能正确使用和维护汁算机硬件的水平,其计算技术素质的要求主要是指对计算机软件的理解、掌握程度与使用能力。从软件的开发与应用过程可知,针对计算机软件的开发与使用,有四个不同技术层次的人群:1.进行软件工程理论研究与软件开发战略研究的软件科学家。2.针对应用实际,进行软件设计、测试的软件工程师。3.根据设计编写原代码制造软件及进行软件售后服务的软件工人。4.购买商业软件使用的用户。矿山生产要求矿山工程类专业技术人员,一方面能开发解决本企业生产中出现的特殊技术问题的软件;另一方面能使用通用软件解决矿山企业具有普遍性的技术问题。前者的特点是紧密结合矿山工程实际,具有特殊性,但不开云体育 开云平台一定复杂,由于软件一般为解决特殊矿山工程问题的专门性中小型软件,因而需要自主开发,或是在通用基础软件平台上二次开发;后者解决的则是较复杂的矿山技术或管理问题,软件由有关的专业单位研发,矿山技术人员重在能熟练使用。由上述分析可知,矿山生产经营过程对矿山工程类专业技术人员的计算机素质提出的基本要求是:能进行中小型软件自主开发或二次开发,能熟练使用矿山用大型软件,同时也应能使用公共性通用工具软件,要求其计算机技术知识水平与能力水平,是介于软件工程师与高级软件工人间的水平,这与计算机专业人才的水平要求是有区别的。
二、矿山工程类技术人员应掌握的计算机技术知识矿山工程类专业技术人员应用计算机技术解决问题,主要集中在矿山工程的技术设计、生产与技术管理系统开发、数据处理如矿山测量计算、矿压数据分析、矿山变形观测与分析等、矿图绘制以及综合性的矿山地理信息系统开发等方面。因此矿山工程类专业技术人员掌握的计算机知识,应涵盖计算机通用知识、网络知识,具有强大计算、绘图功能和地理信息系统开发功能的基础平台软件使用知识,软件设计与原代码编写的基本知识等方面。其具体应掌握的内容包括:1.基础知识:熟练掌握主流操作系统及计算机网络方面的基本知识,计算机病毒清除与预防知识,对通用型常用工具软件能熟练使用。2.掌握auto cad及gis类软件的使用知识,这些大型基础平台软件是工程设计、矿图绘制、矿山地理信息系统开发方面的基础软件,掌握程度应达到能在其基础上开发适用于本企业特点的中小型应用软件的水平。3.掌握软件工程的基本理论,具有软件开发的基本知识与技能,掌握c及c十+编程语言,能自主开发矿山矿压数据分析计算、矿山测量计算、矿山开采沉陷、矿山变形观测与分析、矿产储量计算与管理、仪器设备管理等方面的中小型软件。4.掌握一些专用软件的使用方法,如矿图数字化软件、矿山工程中力学方面的计算软件等。
三、矿山工程类技术人员计算机技术素质的培养与提高根据霍州王庄煤矿在矿山工程类技术人员计算机技术素质方面培养与提高的体会,做好这方面的工作需采取多种方式。一是做好基础培训。对近年来的院校毕业生,其基础培训在校学习期间已完成,实践证明其计算机技术基础是比较好的。对计算机技术基础差的老技术人员应采用脱产培训的办法,并可适当降低要求,以达到能使用专业软件的水平;二是结合工作实践的培训与提高。在具备基本的计算机技术素质基础上,紧密结合具体工作中对计算机应用提出的要求,大胆鼓励专业技术人员屏弃传统手工作业方式,应用计算机技术解决工程技术问题。这实际上是一种自学+实践+探索的方法,它既可解决企业生产过程中出现的实际问题,也是加强和提高技术人员计算机知识水平的最有效途径;三是与院校及科研单位合作,提高在岗技术人员的计算机水平。可有专门培训,也可在与专家合作解决难度较大的矿山工程技术问题的过程中,提高矿山工程技术人员的计算机技术水平;另外,购进专业软件时,厂商提供的培训也是提高技术人员计算机应用水平的机会。
本文对矿山工程类专业技术人员在计算机技术素质要求、内涵及培养提高方面所作的讨论仅是基于基层工作实践的一点粗浅探索。矿山工程类技术人员的计算机技术素质对矿山现代化建设、提高矿山企业的经济效益具有重要意义,必须作为矿山企业管理的一件大事来抓。
培养既懂技术又懂管理的软件高级人才,是各软件学院追求的目标。对软件学院的学生来说,项目实践能力、自学创新能力、团队合作能力和交流表达能力是其职业生涯中所不可或缺的。如何开设学生在校期间的实践课程,对学生进行软件开发基本技能训练,使学生在学习了软件开发技术相关领域的理论知识后,能够充分地锻炼这些能力,顺利就业,并在此后的职业生涯中有所建树,各软件学院针对这些问题都在进行积极的改革与探索。
对于大多数软件学院,制定合理的、适用于软件开发技术快速发展的实践教学模式面临的问题主要有以下两点:
1) 学生实际掌握的软件开发技术水平参差不齐。新入学的工程硕士超过半数来自非计算机专业,这些学生具备相应的专业领域知识优势,但在软件开发技术所必需的软件基础知识方面却存在不足。
2) 软件开发技术包括语言、开发工具及其所使用的开发方法。同时还需要掌握与软件开发技术相关的专业基础知识,以及要了解所开发程序的实际运行平台。各层次、各方面的大量实用产品和技术的推出,以及软件工程硕士的学制短和学科基础差别大的现实都给学生入门学习和系统掌握软件开发领域的核心知识带来巨大困难。
因此,研究和探索一种以动手实践为主导、融合多门传统课程、符合软件工程思想的软件学院实践教学模式,将为软件工程相关知识的进一步学习,提供坚实的理论基础和技能保障。本课题的研究内容,将为软件工程硕士实践教学模式提供借鉴意义,同时,也可为软件相关专业高年级本科生的软件开发技术能力培养提供参考。
本文研究的实践内容和模式主要针对于新入学的工程硕士,是根据软件学院工程硕士入学时掌握的软件开发技术水平参差不齐,部分学生缺少开发设计软件所需要的基本编程能力、基础核心支撑课程知识点的实际情况提出的。我们希望通过大量的实例强化训练和有针对性的讨论辅导,为学生顺利学习、理解和掌握“专业方向领域的知识点”打下坚实基础,为提高学生分析问题、解决问题的能力提供技术平台支撑,具体目标如下:
1) 通过该实践课程的学习,向学生灌输高质量程序设计的观念,使学生具备实际的编程能力,具备学习新语言的基本素质。
2) 通过该实践课程的学习,使学生在熟练掌握语言技能的同时,深入理解算法、数据结构以及与平台(Windows和Linux)有关的进程和网络编程的基础知识,并能够自觉关心软件质量,包括软件的正确性、效率、易用性、可读性(可理解性)、可扩展性和可复用性等。
本实践课程强调学生的主体地位,教师的指导作用,采用讲座、小班讨论和实验相结合的方式进行。通过一门常用语言(C++)和两个常用平台(Windows和Linux),培养学生综合运用已学知识的能力,使其深入理解程序工作的本质,为以后解决各种大型实际问题打下坚实的实践基础。实践课程的基本构成是:9次×3小时讲座+6次×3小时实践讨论+实验。
实践内容按专题组织,以C++作为程序设计语言、以Linux/Windows为实践平台,共设置涵盖编译原理、数据结构和算法、操作系统和网络编程等核心基础课程在内的9个专题。每个专题的课程形式包括讲座、实验、实验报告和讨论课4个环节。实践内容的研究、确立和整合围绕以下指导思想进行:
2) 提取核心知识点,压缩课时,消除各传统课程之间的隔阂,以适应软件工程硕士学制短和学科基础差别大的现实要求,讲座内容以“专题”进行。实践的题材包括练习、实验和典型案例分析等,实践的手段包括一读、二写、三总结。强调程序设计规范,确保技能的系统性和规范性。
设置讲座的目的是要把各专题核心知识点的来龙去脉介绍给学生,使学生对目前程序设计的关键技术和基础知识有个整体印象。因为虽然目前软件设计技术种类繁多,但究其本质,还是超不出软件工程的基本思想。学生在学校不可能完全熟悉每一项技术,但理解常见技术的应用背景和发展原由却是进行相关应用的前提。
设置实验的目的是让学生通过阅读经典代码和自己动手编程去深入理解程序的工作原理,并通过总结做到举一反三。在熟练掌握基本的编程技巧,学会规范化编程的同时,系统地掌握相关的基础理论知识。
设置讨论课的目的是要解决学生基础差别大,相当部分学生基础薄弱的问题,实现个性化教学和辅导。课程讨论分小组进行,每组10~15人,每专题每小组两小时。讨论课主要用来解决该小组学生在自学和实验过程中所遇到的疑难点,并通过讨论这些疑难点,有针对性地对该小组学习作出总结。
为了便于大家的学习和沟通,学院网站为实践课程设立专门的文档下载、上传区和讨论区。学生可以下载与实践相关的各种文档、案例、讲座内容以及经典参考书目;学生也可以通过上传区提交每周的作业,包括编程源代码和实验报告;学生还可以在该区域进行重点、难点的讨论,提出好的建议,便于课程的改进和课程内容的及时更新,做到与时俱进。
为了使实验课的实际效果落实到实处,学生真正能够从中获益,提高软件开发的基本技能,实践课程的执行和实施必须遵循如下4个原则:
软件工程实践以C++为基础,因为相比目前流行的C、Java和C#,C++既是面向对象编程,又具有Java和C#不具备的指针和引用等和内存管理相关的比较直观的技术,同时C++在操作系统、设备驱动程序、视频游戏等领域相比上述语言也存在优势。两个平台为Windows或Linux。考虑该实践课程的主要目的是“学生的计算机领域核心的基础知识的掌握和提升”,知识面涉及编程语言、算法、数据结构、操作系统、编译原理和网络等各个方面,实践内容以“专题”进行,同时也要求实践指导老师具有丰富的项目实战经验。
所有学生根据具体基础条件分为15人左右一组,设立小组长。各小组根据自身条件,进行强制集中练习,从而保证上机和实践时间。每周各小组具体的训练内容由指导老师根据小组的具体情况分别指定。学生必须在完成老师指定的任务后才能自行决定训练内容。学生也可对指导老师提出学习内容变更建议,但须征得指导老师同意。
学生在每周针对各小组举行的讨论会上可以提问相关问题。指导老师要回答相关问题并对学生上周的作业数量和质量进行评定,并根据小组所有学生的具体情况指定相互帮教的计划,布置下一周的练习内容。指导老师在学生的整个实践过程的作用是指导、监督并对其中的每一个环节进行考核打分,及时发现问题,及时总结解决,确保所有环节落到实处,不流于形式。
考核采用平时成绩与期末笔试相结合的方式,其中平时成绩占总成绩的40%,笔试成绩占总成绩的60%。平时成绩由指导老师根据平时实际情况给出,主要依据是学生每周完成案例代码和实验报告的质量,笔试侧重于代码阅读、设计能力以及基础概念和原理的理解和掌握。
通过整合课程内容、强调学生自学和教师辅导相结合的方法,我们在有限的课时内达到了补习软件基础知识和学习面向系统软件开发技术的两个教学目标。学生的反馈调查显示本课程体系得到了学生的高度认可和肯定,取得了一定的成效。但是整个软件市场中依然存在着企业招不到合适的高级软件人才,毕业生就业难的供求矛盾,面对软件开发技术知识体系更新换代快的特点,如何培养能够适应市场发展,具有创新意识的高素质软件人才将一直是我们探索研究的重点。
[1] 覃文忠,万金友. 关于软件学院实施“项目驱动”教学模式的探索[J]. 计算机教育,2004(4):57-58.
[2] 南京大学软件学院工程硕士培养方案[S]. 南京:南京大学软件学院,2006.
[3] 北京大学软件与微电子学院工程硕士培养方案[S]. 北京:北京大学软件与微电子学院,2005.
[4] 张广军. 微软院校课程体系设计理念[R]. 北京:北京航空航天大学软件学院,2005.
[5] 北京航空航天大学软件学院软件工程硕士培养方案[S]. 北京:北京航空航天大学软件学院,2004.
随着信息技术的发展和互联网的普及,以高速互联网、移动网络、数字广播电视、IPTV等为载体的数字媒体迅速发展。数字媒体技术专业是一个以计算机技术为主,艺术为辅,技术与艺术相结合的新兴专业。教育部于2004年正式批准设置数字媒体技术专业,至今已有100多所高校新办或改办了数字媒体技术专业。[1]重庆大学软件学院立以软件工程为基础,结合数字媒体新技术,培养能胜任软件系统分析与设计、数字媒体产品创作及编辑、数字内容传播、数字娱乐等领域的理论研究和应用研发工作的数字媒体技术专业人才。作为数字媒体技术重要应用领域的游戏开发近年来一直保持高速发展势头,国内从事动漫游戏自主研发的企业越来越多,国产游戏份额越来越大,自主研发的力量越来越强,培养复合型游戏开发人才的需求在不断增长。游戏设计与开发作为数字媒体技术专业中一个非常重要的方向,在课程设置上要结合当前的产业发展需要和行业发展需求,加强专业基础,加强不同学科间的交叉和渗透,重视动手实践能力的培养,注重创新能力的培养,为应用型、复合型、创新型人才的培养打下坚实基础。[2]国内很多高校在游戏人才的培养教育方面做了大量有益的探索,分析了培养现状及存在的问题,提出市场对游戏软件人才的需求及能力素质模型。[3]重庆大学软件学院开设了多门游戏相关课程,并与公司企业合作,结合实训实习以及创业实践等多种方式,培养游戏产业所需人才。
数字媒体技术专业的游戏人才需要扎实的理论基础知识,具体包括数学基础、计算机基础、软件工程基础、数字艺术基础、数字媒体技术基础。
数学基础为游戏开发提供数学和应用数学的理论和科学支撑,进行数字媒体的获取、处理、存储、传输都需要大量的应用数学知识。游戏中的数字图形的表示、生成、处理,游戏中音频图像视频的处理,游戏的算法都离不开数学基础的支持。重庆大学软件学院数字媒体技术专业的学生必须学习高等数学、线性代数、概率论与数理统计课程。
游戏开发是以计算机技术为依托,结合计算机图形学、数字图像处理技术才得以实现,因此掌握计算机学科的基本理论、方法、工具是数字媒体技术专业学生所必须具备的。具体课程包括:信息系统基础、程序设计基础、数据结构与算法、数据库原理与设计、计算机组成与结构、操作系统原理、计算机图形学、数字图像处理等。
软件工程是计算机科学的理论和技术与工程管理的原则和方法相结合,研究如何科学有效地进行软件产品的定义、设计、开发和维护。游戏作为一个产品包含文化创意、艺术设计和软件开发。游戏程序的制作就是一个软件开发过程,也一样遵循软件产品从可行性分析、需求分析、设计、实现、测试、维护升级一整套流程。所以作为基础,数字媒体技术专业需学习软件工程导论、软件需求分析、软件项目管理、软件测试理论与方法、软件体系结构与设计模式等课程。
软件学院数字媒体技术专业本科生来源于理科类高考生,缺乏艺术相关基础。而游戏是一个典型的文化创意、艺术设计和软件开发相结合的产物。游戏软件开发过程中需要与剧情创作、美工设计、音频视频制作的人员协作。游戏软件开发自身也需要一定的艺术修养,了解媒体艺术领域知识,成为技术和艺术相结合的复合型人才。在教学中安排了数字艺术导论、色彩与平面构成、数字摄影摄像、数字作品创意策划等课程。
游戏开发作为数字媒体技术在应用上的一个重要方向,需要数字媒体技术基础的支撑。具体开设有数字媒体概论、数字化音视频技术、DirectX图形程序设计、网站策划与Web程序设计、虚拟现实技术、移动多媒体应用开发等课程。
游戏开发是一个应用性很强的技术,所以数字媒体技术专业本科生游戏开发能力的培养采用课堂教学与实践教学相结合的模式。首先在课堂上讲授相关背景知识、技术基础,对以后在游戏的设计和开发过程中需用到的工具、方法加以系统地讲解。开设的课程有数字动画与游戏设计、游戏引擎分析与设计、游戏中的人工智能。
采取分层次、分阶段、循序渐进的模式,由浅入深、由简单到综合、课内外结合,并通过开放式实践教学,鼓励学生自主立项,充分调动学生学习的积极性和主动性,培养学生的工程实践能力。依托学科,分步导向,构建实践教学体系。
用于巩固和加深学生对于特定理论知识点的理解程度的实验。根据课程教学计划,在专业课程中安排与课程同步的验证性实验。在专业基础实验室开展计算机图形学、数字图像处理、多媒体技术等软件工程方面,及素描、速写、色彩等人文艺术方面的基础训练。在实践教学过程中,学生会获得绘画、摄影摄像、数字媒体制作、计算机图形图像处理、动画设计、游戏开发以及音视频后期编辑、虚拟现实技术与人工智能技术应用等方面的专业知识。
艺术基础素质的培养:通过艺术赏析、绘图和绘画、形态构成基础、视觉传达设计等系列课程的学习和实践,培养学生的艺术欣赏和艺术理解能力。
基本程序设计能力的培养:通过程序设计语言和面向对象程序设计、数据结构、软件技术基础、Java程序设计等系列课程从浅入深完成学生基本程序能力的培养。
数字媒体前期制作能力的培养:通过数字媒体与数字艺术、多媒体技术、平面设计与摄影摄像、计算机图形与图像处理等系列课程培养学生对数字媒体技术专业有充分的认识,具备多媒体技术和计算机图形图像处理的应用能力。
动漫游戏设计能力的培养:通过动画设计、动画制作、游戏概论等系列课程使学生掌握动漫游戏前期的设计与制作的基础概念和技术。
要求学生采用特定的系列技术,运用已有的知识模拟系统分析、设计和实施的过程。采取团队实践的手段,遵循软件工程原则,是用面向对象方法,进行中等规模的应用开发。结合数字媒体技术专业培养计划进行计算机绘图课程设计和数据库课程设计。
在课程设计中,依据项目的大小,可以安排学生独立完成,或者分组完成,培养学生在项目开发过程中的合作交流能力。从小项目开始锻炼,为以后走入职场打下基础。
另外加入数字媒体技术方向的课程设计,使学生能够掌握和应用数字媒体作品制作和数字娱乐软件开发的各种专业知识和技术。学生按照指定的实践教学计划要求选择课题,提出设计方案进行讨论,最后在教师指导下完成课题。学生必须提交书面设计文档,学生也参加对于课题完成质量的评价,并最终以小型报告的形式提交课题。培养学生运用专业知识进行数字媒体作品的制作和数字娱乐软件的开发。
实训环节着眼于,在未走出校门的情况下,在学院内部构造一个与在企业里实习相类似的工作环境,针对在校学生项目实战经验缺乏的突出问题,设计制定了合理的实战训练过程。基于一个具有一定规模的实际应用项目,是用主流的开发环境,采用符合软件产业界标准的软件过程规范,进行半封闭式企业化管理,让学生能够切身经历一个完整游戏项目开发的过程,培养和提高学生的实战技能和团队合作能力。
实训过程由软件企业具备丰富的项目开发经验的开发人员或学院教师指导,并带领学生在项目开发团队中扮演不同的角色,与团队其他成员共同完成实际项目。并在此基础上增加对学生职业素质以及求职技巧的培养,让学生具有更强的核心竞争力,能够在目前日益激烈的社会竞争中凸显自己的实力,能够使学生的毕业实习实现“零适应期”。
学生通过在实习基地或工程训练实验室中的实习活动体验游戏的制作工作,增加游戏作品创作和制作工程经验及团队精神的培养。专业实训安排在不同的学期末或者学期开始,集中2-3周时间完成,具体安排见表1。
数字媒体技术专业的工程实践主要是指在短期或较长期培训之后,学生在实习单位直接参与企业实际课题的研发,在实践中进一步巩固所学知识,增强创新意识,培养动手能力和专业技能,提高就业竞争能力。部分学生到工程实践教学基地完成,部分学生在国内外软件公司完成。工程实践可以与毕业设计结合起来,一同开展。
游戏人才是兼具数字媒体技术与艺术修养的复合型人才,须具有扎实的应用数学、计算机科学、软件工程的理论基础,和丰富的编程开发经验,掌握游戏这种特殊产品的创作开发技能。相较欧美日韩等发达国家,我国游戏产业起步较晚,但正在迎头赶上。高等学校在进行科研创新的同时,也要密切联系社会,与相关行业沟通交流,共同探讨符合产业发展的游戏人才的培养。
[1]教育部示范性软件学院数字媒体技术专业规范研制专家组.高等学校数字媒体技术专业规范[M].北京:高等教育出版社,2011.
“软件技术基础”课程原本是本科院校非计算机专业学生在学习完计算机基础和VB、C等程序设计课程之后,为提高其利用计算机软件技术解决所处专业领域实际问题的能力而开设的一门软件技术综合课程,淮南联合大学是一所高职高专类院校,考虑到高职高专类学校学制时间短、专业课程多等实际情况,目前“软件技术基础”课程的开设主要限于我校计算机系相关专业二年级的学生,其目的是在较短时间内培养学生计算机软件方面的综合素养,提高他们的软件应用开发能力。技能教育是高职教育的主要特点之一,面向应用的教学方式是提高学生实际应用技能的有效途径,为此我们在“软件技术基础”教学实践中,面向应用、积极探索,采取了一种模块化、项目驱动和学生自主学习相结合的教学模式。
根据工科计算机基础课程教学指导委员会制定的计算机软件技术基础教学要求,《软件技术基础》的教学内容中包括程序设计语言、算法与数据结构、软件开发与软件工程、多媒体与用户界面、操作系统、数据库、网络、工具与环境等,内容庞杂知识面广,如何针对我校计算机系的专业特点和学生情况,从面向应用的角度选择合适的教学内容是一个需要思考的问题。
我校计算机系相关专业学生在学习“软件技术基础”这门课程之前,已经学习过的计算机方面的课程仅包括计算机文化基础、C语言,VB等,而计算机软件技术基础教学要求的其他方面的内容基本没有涉及,在此基础上学习“软件技术基础”,如果简单采取“黑板”+上机传统教学方法,全面介绍“软件技术基础”教学要求的内容,虽然可以使学生系统地掌握软件技术的有关知识,但时间短、任务重,即使能够完成,也只能泛泛地学习,教学质量难以保证,更不用说培养软件开发技能了。因此在教学内容方面必须有所选择,既要注意知识的系统性又要注意教学的实际效果。
教材方面,我校“软件技术基础”课教学使用的教材是高等教育出版社出版,麦中凡、吕庆中、李巍、何玉洁主编的《计算机软件技术基础》(第二版),属于“十五”部级规划教材,该教材的主要特点是内容较为系统全面,教材内容的顺序为:第一章 导论;第二章 程序设计设计语言;第三章 算法与数据结构;第四章 VB环境下编制应用程序;第五章 多媒体与多媒体应用开发;第六章 软件开发活动;第七章 软件工程与软件过程管理;第八章 操作系统;第九章 几种常见的操作系统;第十章 关系数据库系统;第十一章 数据库应用系统的设计与实现;第十二章 网络编程;第十三章 网络协议与网络操作系统;第十四章 网络程序设计。可以看出,教材章节内容并不是按软件开发活动的过程来安排的,如果采用传统的教学方法,依照教材的顺序开展教学,则每周一次的上机实验时间在学期开始阶段将因为实验内容不足而浪费,而且上机实验的内容随章节不同而不同,学生得到的技能训练也必然是间断不连续的,无法体现软件开发过程的系统性和工程化原则。
为此我们采用了项目驱动+模块化组织教学内容的方式:首先将教学内容必须包含的部分分成四大模块,分别是数据结构模块、数据库管理系统模块、操作系统模块和软件工程模块,在数据库管理系统模块中主要介绍关系数据库系统和数据库应用系统的设计与实现;在操作系统部分重点介绍操作系统的特性、功能、种类、结构和资源管理;在软件工程模块则包括软件开发活动和软件工程与软件过程管理。四个模块在内容上相互独立,教学时可以根据需要确定教学的先后顺序。同时考虑到“软件技术基础”是一门实践性很强的课程,实际的软件开发活动与上述四个模块关系密切,为此我们在教学内容中安排了一个实际的数据库管理系统项目,以项目开发过程作为教学的主线,根据项目开发过程需要使用的四个模块中主要内容的先后顺序,决定四个模块教学的顺序。在四大教学模块中未能介绍到的一些内容如程序设计、界面设计等则融入到项目的实际开发过程中,这样既保证了知识的系统性,同时又便于学生软件开发技能的培养。另外,为了更进一步提高学生的自主学习能力,培养学生学习掌握软件技术技能的兴趣,结合学校每年一次的软件作品展示,我们把教材中“多媒体与多媒体应用开发”、“网络程序设计”这两部分内容安排作为学生自学的内容。
“软件技术基础”课程教学内容涉及多门计算机专业课程,内容多而杂,但作为一门课程学时安排有限,在有限的教学时间内,既要完成软件技术基础知识的传授,又要达到培养学生软件开发技能的目的,的确是一件较为困难的事情。目前国内主要采用三种做法:
1、“浓缩型”。这种方法是将教学内容的每一个部分压缩成一个简单的教程,但这种教程对教师的要求较高,在教学时容易产生内容讲授不深不透的问题。
2、“概括型”。这种教学方法以实际应用项目的开发展开,围绕项目开发介绍知识点,能覆盖多少就覆盖多少,这种方法的优点是可以做到“学以致用”,缺点是讲解的内容不够系统和全面,容易产生明显的薄弱环节。
3、“分散型”。这种方法是一种技术一门课,因此需要安排较多的学时,同时需要精练的系列教材。
①“基础应用型”模式。该模式设置“计算机应用基础”(或称“计算机基础知识”、“程序设计基础”)和“电算化会计”(或称“计算机在会计中的应用”、“计算机会计学”、“会计应用软件”)两门课。如上海财经大学、中国人民大学会计学专业就是这种“基础”+“应用”的模式。
②“系列应用型”模式。该模式是在设置系列计算机课程的基础上再设置“电算化会计”课程。例如,中国矿业大学会计学专业设置“计算机基础”、“办公自动化软件基础”、“高级程序设计语言”、“微机数据库管理系统”四门计算机系列课程和“电算化会计”、“会计实务电算化”两门计算机应用于会计的课程。又如,上海财经大学会计学系教学改革设想中打算开设“计算机应用基础”、“计算机语言”、“数据结构”、“数据库系统”。四门计算机系列课程和“电算化会计”、“电算化会计决策与控制”、“电算化审计”三门计算机应用于会计的课程(财政部教育司编《会计学专业主干课教学大纲》p16)。当然,其他高校设置的课程名称可能有所不同,但均可体现一组“系列”课程和一组(门)“应用”课程的模式。无论是“基础应用型”模式,还是“系列应用型”模式,它们均独立于会计系列课程之外。
1、各门计算机课程内容与会计系列课程内容脱节。究其原因主要有三:一是教计算机课程的老师不懂或很少懂会计专业知识而会计专业课程教师又不懂或很少懂计算机知识;二是现行会计课程教材(除“电算化会计”外,下同)不反映计算机应用知识,也不要求专业课老师补充讲授计算机应用知识;三是计算机数量配备不足,无法做到两类课都安排机时。
2、单一的“电算化会计”课程,解决不了会计专业学生应具备的计算机能力问题。1995年4月27日,财政部印发了《会计电算化知识培训管理办法(试行)》,提出了会计电算化知识培训的三种证书、即初级证书、中级证书和高级证书,从能力要求看,可概括成以下三种能力。
(1)初级证书要求会计人员具备“计算机和会计核算软件的基本操作”能力。这种能力包括掌握计算机基础知识,微机基础知识及基本操作,有关汉字系统及应用软件操作,会计电算化基本知识和会计核算软件基本的工作原理五个方面,笔者简称为“操作能力”。
(2)中级证书要求会计人员具备“对会计软件进行一般维护或对软件参数进行设置”能力。要使财政部评审通过的通用会计软件更好地满足各个企业的不同要求,需要用户自已定义参数,如建立科目代码、设定计算公式、定义分配方法和结转方法等,这称为系统软件的维护或参数设置,笔者简称为“设置能力”。
(3)高级证书要求一少部分会计人员具备“进行会计软件的系统分析、开发与维护”的能力。会计软件的系统分析是指为了开发出用户所需的会计软件,必须了解和描绘用户对会计信息系统的要求,明确系统具备的功能,改进现有系统模型,形成系统的逻辑模型的过程。它是系统开发和系统维护的前提。分析、开发和维护的能力。笔者称为“开发能力”。
目前,高校“电算化会计”课程按财政部教学大纲要求,“培养学生具有组织和开发会计信息系统的能力”,包括开发工具、开发方法、开发系统(工资、固定资产、材料、销售、成本核算系统)和电算化审计五个方面。学生学完这门课后,仅仅是对部分会计核算程序进行初步的设计。当他们毕业参加工作后,在已实现会计电算化的企业,他们不会操作现行会计软件;在未实现会计电算化的企业,他们仅靠学校掌握的“电算化会计”知识,无法开发成套的会计核算系统软件。事实上,从国外会计电算化发展现状看,无论定点开发还是开发通用软件均有专门的公司从事这种业务。要求我们现在的教学能使学生具备完全的软件开发能力也是不现实的,仅能提“初步的开发能力”或具备“开发软件的基础”。这种单一能力距离国家要求会计人员应具有操作能力,设置能力和开发能力还很远,则高校改革教学,培养会计专业学生会计电算化系统能力迫在眉睫。
3、计算机在会计中的应用领域比较狭窄,就目前而言,我国会计实际工作中的电算化仅仅体现在会计核算上,虽然会计管理的软件已在开发,但应用的不太多。而西方国家早就从会计核算电算化转向会计管理电算化了。仔细分析我国会计核算电算化的现状不难发现,绝大部分会计人员是“傻瓜”操作员,是计算机的“奴隶”,他们对会计软件不能运用自如。反省一下高校会计教学,会计课程和计算机课程两层皮,使计算机在会计中的应用显得很窄。因此,只有在各门会计课程上都用上计算机,才能开拓计算机在会计中的应用领域,才能克服“傻瓜”操作员的缺陷,自主地运用计算机会计信息系统,使计算机不仅在会计核算上,而且在会计管理、分析、预测、决策等方面有所突破和发展。
1、两类课程安排相协调。会计教学计划必须按教育、教学规律制订,充分反映知识平铺、交叉、循序渐进的要求。计算机的系列课程应先于会计系列课程,同时会计系列课程的电算化,首先是已学计算机课程知识的直接应用,然后是后继计算机课程知识的追加应用。例如,在第一、三、四、五、六学期分别安排“计算机基础”、“办公自动化软件基础”、“高级程序设计语言”、“微机数据库管理系统”、“电算化会计”课程与此相适应,在第二、三、四、五、六、七、八学期,分别安排“基础会计”、“财务会计(上)”、“财务会计(下)”、“成本会计”和“财务管理”、“管理会计”和“高级会计”、“审计学”、“会计实务考核”课程。其中,“基础会计”课程首先是直接运用“计算机基础”课程知识完成规定任务,如用wps打印出试算平衡表、各种记帐凭证、各种明细帐等,待“办公自动化软件基础”课程学完后,再运用word编制“基础会计”课程中的成本计算公式、编排有关图形,并登记帐簿。
2、计算机知识运用时分合结合。平时,各门会计课程运用计算机知识是单项的,分散的。一般难以整体运用。因此,有必要在最终将两类课程知识进行综合运用。笔者认为,在第八学期学生即将走上社会前设置“会计实务考核”课程,一方面进行手工操作,综合各门会计知识,另一方面进行计算机操作。综合各门计算机课程知识集中运用于会计,这种分合结合的方式反映了会计学科系统性和综合性的基本特征和要求。
3、列人教学计划,教师引导,指导为主。将计算机课程知识应用于各门会计课程,并不是要增设新课程,而是对已学知识的串用。为了保证串用的成功,首先要在教学计划上加以反映。例如,在教学计划实践环节分别设置“基础会计电算化”、“财务会计电算化”、“成本会计电算化”、“财务管理电算化”、“管理会计电算化”、“会计实务考核电算化”等电算实践项目,并相应确定一定的机时。其次,将各门会计课程计算机应用问题编写成“电算化指导书”,每门指导书中列示若干个电算实践项目。提出具体应用要求;同时,为了便于学生操作。还应编制“电算化操作手册”,向学生提供详细操作步骤和范例。这样,教师在会计系列课程电算化过程中主要起着引导、指导、布置、检查和考试验收等作用,学生的自觉性、主动性和创造性会充分得到发挥。
l、将已学“计算机基础”课程知识应用于“基础会计”课程。内容包括:(1)用wps打印出试算平衡表。材料明细帐、应收帐款明细帐、成本计算公式(含分子、分母两行排列格式)、生产成本明细帐和各种记帐凭证;(2)用图文混排系统spt进行成本数据的图像编辑;(3)用cced打印资产负债表和损益表。
2、将后续“办公自动化软件基础”课程知识追加应用于“基础会计”课程。内容包括:①成本计算公式的编写;②图形编排;③帐簿登记。
将“办公自动化软件基础”课程中word、excel知识应用于“财务会计”课程,内容包括:外币核算、坏帐核算、存货实际成本计价法、存货计划成本计价法、存货成本与市价孰低法、折旧方法、工资结算和工资附加费核算、长期借款、应付债券、销售业务、利润分配、资产负债表和损益表编制。
将“高级程序设计语言”课程知识、excel知识应用于“成本会计”课程。内容包括:要素费用的分配、辅助生产费用的分配、制造费用的分配。产品费用在完工产品和在产品之间的分配、品种法成本计算、分批法成本计算、分步法成本计算、成本分析。
将“高级程序设计语言”课程知识、excel知识应用于“财务管理”课程。内容包括;货币资金最佳余额确定、企业客户信用等级评估、应用帐款最佳余额确定、存货最佳额确定、固定资产规模和经营杠杆、对外决策、筹资政策的选择评价、资金成本计算及应用、财务比率综合分析、财务计划编制。
将“高级程序设计语言”课程知识、excel知识应用于“管理会计”。内容包括:成本性态分析、本量利分析、目标利润的敏感性分析、利用经营杠杆进行利润预测、边际利润最大的开云体育 开云平台产品组合、销售顶测分析、决策评价方法的分析、内含报酬率敏感性分析。
扫一扫关注微信公众帐号