雷火电竞(中国)平台网站

雷火电竞

咨询热线

13298323885

Classification

雷火动态

13298323885
传真:13298323885
手机:13298323885
邮箱:admin@niukid.cn
地址:河南省郑州市金水区农科路25号院2号楼18层1807号
当前位置: 首页 > 雷火动态 > 最新资讯

雷火电竞软件开发基础知识汇总十篇

发布时间:2023-10-18 19:29:11 丨 浏览次数:634

  CDIO 工程教育模式是近年来国际工程教育改革的最新成果。CDIO 是构思(Conceive)、设计(Design)、实现(Implement) 和运作(Operate)四个英文单词的缩写[1]。CDIO 工程教学模式是一种倡导以工程项目为主线,将项目研发不同阶段涉及的知识与课程进行有机的结合,教师针对课程在工程项目的地位,运用多种教学方法引导学生进行主动学习,强调学生的学习主体性,注重能力培养的一种教学模式。

  软件工程专业要求培养适应计算机应用学科的发展,特别是软件产业的发展,具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,能在IT行业、科研机构、企事业中从事软件工程项目的开发与测试、网站开发、网络游戏设计的高素质应用型人才。

  CDIO 理念下的软件工程专业人才培养以软件工程项目为主线,采用理论、实践、案例分析、综合项目实践和工程化毕业设计的一体化教学模式。在整个人才培养过程中,按照软件工程项目的基础知识、分析、开发、运行和维护的流程组织教学,同时培养学生具有较强的外语能力、扎实的软件工程基础知识,并熟练掌握软件开发与测试技术,熟悉服务外包软件开发流程。

  软件工程是注重系统化和工程性的专业, 其内容具有厚基础、更新快、实践重等特点,这些特点决定了软件工程人员要具备坚实的理论基础、一定的工程实践能力和创新能力。本着培养“技术基础厚、应用能力强、综合素质高”应用型技术人才为宗旨,软件工程专业的教学安排如下:第一学年主要学习公共基础课程和部分专业基础课程,使学生掌握从事软件工程领域的专业基础知识,培养学生的数学工程职业基础和人文素养;第二学年主要学习专业基础课程和专业核心课程,重点结合工程项目进行“做中学”,形成自主学习、团队协作和计算机软件基础及软件工具软件产品的基本工程能力;第三学年主要学习方向核心课程和专业拓展课程,引进当前软件开发新技术、新方法和新平台,采取合作探究式学习方法,培养软件系统与应用及软件工程软件管理能力;第四学年主要进行综合项目实践类课程的学习,塑造学生软件工程能力、团队协作能力,对学生的职业岗位能力进行训练,使学生在进入岗位前就具备较好的工程经验,实现从学校到职场的转变。

  CDIO模式的核心就是项目教学,可将企业真实项目直接引入课堂,也可以由教师设计项目,要求项目涵盖该教学任务的大多数知识点,并且能有明确的阶段性目标。在项目教学中,教师的身份也就集工程师、导师、教师“三师”为一体,从软件项目的构思(C)、设计(D)、实现(I)到运行(O),教师的工程化指导至关重要,这就要求教师进行自身工程实践的经验积累。项目教学中采用过程化考核方式,以成果为考核依据。

  软件工程专业综合能力素质的分解基于以能力培养为主线,突出实践性、发展性和工程性,注重学生的基本人文素质、职业基础和创新能力的培养,注重学生潜在发展能力、职业适应能力和职业迁移能力的养成,注重专业素质和身心素质的锻炼培养。同时结合区域产业发展,强调专业素质和非专业素质并重。

  结合CDIO模式的特点,软件工程专业核心能力分解为项目构思阶段的计算机软件基础(CSE)能力、项目设计阶段的软件工程软件管理(SEM)能力、项目实现阶段的软件系统与应用(SSA)能力、项目运行阶段的软件工具软件产品(STP)能力,非专业技能素质的数学工程职业基础(MEP)能力和基本素质(BAS)贯穿这个项目的CDIO模式过程。CDIO模式下的软件工程专业综合能力素质分解如图1所示。

  专业人才的培养要体现知识、能力、素质协调发展的原则。科学认识和分析知识、能力、素质的辨证关系,以“知识是基础、是载体,能力是知识的综合体现,素质是知识和能力的升华”先进理念为指导思想,要设计适当的知识为载体,实施素质和能力培养;设计适当的知识群构成知识体系,要强化知识体系的设计与建设,使专业教育内容的每一个教学模块构成一个以知识体系为载体,实施素质和能力培养有效的训练和学习系统。

  课程体系是达成人才培养目标的有力支撑,科学合理的课程体系会促成高端技能型人才的培养。根据专业综合能力素质分解的结果,基于CDIO 的软件工程专业课程体系的构建原则从以下几方面进行考虑:

  1) 充分发挥工程性的专业特点,基于CDIO培养大纲设置课程体系,实现学校与企业零距离接轨。

  2) 注重公共基础课程、专业基础课程、专业核心课程的课程设置, 借助当前主流的软件开发平台,做到软件开发语言和技术四年不断线。

  强调学生工程性、技术性、实用性、系统性、综合性、复合型和适应软件工作流程等素质的培养,实现“熟悉软件工程技能、更完整的系统级认识、掌握某一方向的软件设计开发技术和适应软件企业的英语加计算机能力”四个目标。在这一阶段中,综合考虑主干专业课程和特色课程的设置,全面考虑课程之间的关联,强调统一设计、统一规划。

  3) 结合区域经济发展特点,根据软件的新兴技术和行业软件的发展需要设置专业选修课, 形成独特的教育内容、教育途径和教育体系。

  按照顶层设计的方法,软件工程专业教育内容由普通教育内容、专业教育内容和综合教育内容三个类别,公共基础(通识教育、基本素质)课程平台、学科及专业基础课程平台、专业(核心)课程平台、专业拓展(选修)课程平台、集中实践教学项目平台等五个平台及13个教学模块构成:

  普通教育内容包括:①人文社会科学,②自然科学,③外语,④体育,⑤实践训练等教学模块。

  专业教育内容包括:①本学科专业基础,②专业核心,③专业方向,④专业实践训练等教学模块。

  综合教育内容包括:①思想教育,②学术与科技活动,③文体活动,④自选活动等教学模块。

  该平台是依据人才培养规格而设置的,包括较宽广的基础课程、通用课程。包括英语、政治理论课、德育和体育、数学基础等。侧重培养基本素质、职业素质和职业道德。主要课程有思想道德修养与法律基础、思想、理论和“三个代表”、马克思主义基本原理、中国近代史纲要、大学英语、体育与健康、高等数学、大学语文等课程。

  该平台是依据软件工程学科来设置课程,侧重于软件工程中的专业技术。包括软件基础课程群、硬件基础课程群和理论基础课程群等,主干课程包括顺序开设的程序设计基础、数据结构与算法、工程数学等课程。

  该平台是依据人才培养主线而设置课程,主要培养学生面向软件开发岗位群的应用能力,并为其解决实际应用问题打下坚实的理论基础。主要包括以下顺序开设的课程:面向对象程序设计、面向对象程序设计、建模课程、系统开发、软件工程、项目管理、软件质量保证、计算机网络等。

  该平台是依据应用型本科定位而设置的。考虑到计算机应用型人才在知识结构上应具有知识面宽、基础扎实、应用性强的特点,在该课程平台上设置的课程具有学科知识面宽;理论深度稍低,学科知识在应用有针对性,共设计了职业素质、软件体系、行业软件应用、游戏软件等模块,设置了如下课程:国际软件工程师职业道德、软件体系结构、软件项目管理、物流信息技术、大宗商品交易系统、管理信息系统、RIA编程技术、游戏脚本编程、3DMAX建模制作、心理学、Flas制作、中国文化史等。

  CDIO 模式下的软件工程专业人才培养模式以提高学生工程实践能力为本,注重培养学生的工程基础知识、个人能力、人际团队能力和工程系统能力。在CDIO工程教育模式中,参照 CDIO 标准11,采用多元化过程式的模式评估学生的软件工程能力和职业素养。其中,工程要从软件开发与实现、软件测试与质量保证、软件建模、软件开发过程管理、软件方法、文档写作和英文阅读写作能力等方面进行评估;职业素养主要从职业道德、职业素质、主动学习能力、行业知识技术和团队合作能力等方面进行评估。评估采用理论考核、实践考核、大作业和小组评价等方式。理论考核主要考查学生对软件工程基础知识的掌握程度,实践考核主要考查学生的工程系统能力,大作业主要考查学生对项目工程的理解和掌控程度,小组评价主要考查学生的团队合作能力。这种多种方式结合的考核模式能够比较全面有效地反映学生的工程构思、设计、实现和运行各个阶段的情况,促进学生全方位发展。

  基于CDIO 的软件工程专业课程体系符合软件工程专业的工程性和学科性的特点,围绕软件工程基础知识、软件管理能力、软件系统与应用能力和软件工具和产品能力四个方面开展工作,创新了人才培养模式,加强了软件开发技术和工程方面的课程教学,这些课程通常都能使学生拥有自己的作品,教学效果良好。实践教学环节无疑是与企业无缝连接最好的渠道,通过设置多种方式的实践教学,使学生真实的接触企业项目,按照企业要求模拟软件开发流程,在毕业设计完成后,学生的实践动手能力达到企业要求。真正做到了“技术基础厚、应用能力强、综合素质高”,这是CDIO教育模式的本土化,为促进工程教育模式的改革和创新、卓越工程师的培养和现代职教体系的建设提供借鉴。

  [1] 尹春娇, 沈桂芳. 探析CDIO模式在应用型本科院校软件工程课程实践教学中的应用[J].科技信息, 2012(31):15-16.

  [2] 张锦华,丁新慧. 基于CDIO理念的创新型软件人才培养模型[J]. 周口师范学院学报,2012(9):119-122.

  [3] 屈卫清. 区域产业发展与软件专业细分相关性[J]. 人民论坛, 2010(11):234-235.

  智能交通软件开发能力是交通控制类专业学生的重要能力,与通用软件开发既有区别又有联系。它们的共同点是软件开发,它们的区别在于交通软件需要开发者掌握交通领域的专业知识。这决定交通控制专业的本科生所要掌握的知识比计算机专业多很多,受学分和学时限制,这对该专业的教学管理提出了新的挑战。

  就智能交通的多交叉学科的特殊性来说,必须以系统的观点充分考虑智能交通软件方向的各课程所包含的实践教学环节的共性和特性,但目前我国的该方向课程体系缺少融合,一门课程独立进行方案设计和建设容易造成教学内容重复、授课学时紧张和浪费以及相关知识点的前后衔接混乱等,该现象使学生对课程中学习到的知识和技能如何应用于实际企业项目的执行过程不熟悉,从而造成用人单位在招聘学生时最先看重的学生实践能力缺少锻炼的缺憾。因此,亟待对相互衔接的智能交通软件方向教学实验内容进行融合,构建一个面向应用型人才的课程群建设。

  根据智能交通软件企业对相关岗位的技能要求,构建以熟悉企业生产加工流程为核心的旨在建设专业内多课程大流程管理的项目并付诸实施,即:利用实际项目所需知识点将课程链中的相关或相近的课程串接起来,以通用软件开发能力和交通系统分析两条主线为教学重点,围绕智能交通系统的需求分析、软件总体设计、程序编写和测试维护,按基础理论类(高级语言程序设计、数据结构和算法设计、数据库)、技术类(交通地理信息系统、车辆定位与导航、交通信息网络与通信)、实现类(交通信息系统)、应用类(公共交通方向等)为序,分别构建一个结构合理、层次清晰、相互配合、相互渗透、课程间相互连接的递进式的课程群体系。实践环节是该课程群的重要组成部分,包括计算机语言算法课程实践、数据库课程设计、交通信息系统课程设计、智能交通软件方向实习、毕业设计等。

  基础理论类课程包括高级语言程序设计、数据结构和算法和数据库三门课程,是通用软件开发的最核心知识。高级语言程序设计是软件开发的最基本工具,培养学生以计算机思维解决工程问题。数据结构和算法分为两部分,一是分析程序逻辑复杂性,二是优化程序结构,为开发好软件的灵魂。数据库是解决如何安全高效数据存取的问题。

  技术类课程侧重于培养学生掌握智能交通的数据采集、传输和信息关键技术,开设交通地理信息系统、车辆定位与导航、交通信息网络与通信等相关课程。交通地理信息研究如何利用点、线和面描述交通系统拓扑结构,结合车辆定位与导航技术,据此统计分析交通事件在时间和空间上的分布特征。车辆定位与导航主要研究如何定点采集各个道路的交通事件。交通信息网络与通信实现了交通检测点和数据中心之间的数据传输和通信。

  实现类和应用类课程是一个有机整体,仅设一门交通信息系统,它是基础理论和技术类多门课程知识的综合运用,以一个某交通领域的实际应用为研究对象,如:交通控制、公共交通系统和物流等,围绕交通软件的需求分析、软件设计、实现和测试、文档编写,培养学生理解和掌握如何开发一个软件的全过程及其可能遭遇的问题。

  基础理论类的三门课程(高级编程语言、数据结构和算法和数据库等课程)让学生掌握通用软件开发的最基本知识,通过实现类课程(交通信息系统)告诉学生如何利用基础理论类课程所学知识开发一个简单通用软件,而技术类的三门课程是交通软件中常用的技术和方法。应用类课程相当于案例教学,是软件开发技术在某交通领域中的具体应用,穿插在交通信息系统或其他交通类课程教学中。因此,四个课程模块是一个层次清晰、递进式的课程群体系。

  在基础理论类课程中,各门课之间相互连接、相互渗透,高级编程语言是学好数据结构和数据库这门课的基础。数据结构与数据库相对独立,前者决定学生能不能可以编写高质量的程序,为学生入门软件开发行业面试的必备知识;而后者是系统软件开发的数据存储基本工具,常见的SQL Server、Oracle等。

  技术类课程模块的三门课是智能交通软件开发的常见关键技术,相对独立、相互配合,在基础理论类课程基础上,交通地理信息系统解决车辆定位与导航的数据可视化显示问题,而交通信息网络与通信是GPS用户终端和数据中心通信交互的技术保障。

  实现和应用类课程是一门综合课程,融合了交通专业课程知识,如:交通控制、公共交通系统和物流等,以基础理论和技术类为基础,围绕交通软件的全过程,补充部分软件工程、项目管理等课程知识,是锻炼学生实际动手能力的一门课程。

  1.修订培养计划。以应用型人才培养为目标,调研相关智能交通企业,采取专家学者、企业工程师和专任教师、研讨会、座谈会的方式,根据智能交通软件企业对相关岗位的技能要求,围绕完成一个完整的项目所需的知识,构建教学体系及其教学内容,确立基础课程、支撑课程和选修课程。

  2.课程整合与优化,整理教学资料。对智能交通软件方向课程群进行整体规划,分析课程之间的衔接关系以及它们的教学内容的相互关系,突出每门课程的重点和难点,强调课程的关联性,避免课程之间内容的重复,并补充不足的知识点。例如:交通GIS的数据存储与数据库部分知识重复,补充软雷火电竞平台 雷火电竞件工程、软件测试等部分知识。结合教育部对我校的本科教学工作水平评估,全面修订了这些课程的教学大纲和实验大纲,撰写实验指导书。

  3.改进理论知识教学。结合真实企业软件开发项目教学,注重知识点的运用,后续知识点则反复利用和提升前面的知识。先行课程为后续课程做铺垫,将专业中多门相关课程以一个涵盖大流程地串接起来。例如:交通GIS的数据存储要用到数据库的知识;交通信息系统教学需将系统设计、数据库访问、界面设计、编码和测试等各个方面联系起来讲解。

  摘要:针对软件体系结构课程内容理论性和抽象性较强,且学生大都没有大规模软件开发经验的现实问题,分析“做中学”理念在软件体系结构课程中的应用必要性,提出“做中学”理念指导的软件体系结构课堂讲授内容和实验教学环节的设计方法,说明通过强化课程实践环节教学,促进学生对课程理论知识和方法的理解,并培养学生掌握切实可用的体系结构分析和设计能力。

  软件体系结构(Software Architecture)是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。软件体系结构是一种抽象的软件系统规范,主要包括用其行为来描述的功能构件和构件之间的关联关系,是研发较大规模复杂软件的基础和核心。完成有效、合理的软件体系结构设计能够极大提高软件研发效率和最终软件系统的质量,并且,优秀的软件架构师也是我国软件行业迫切需要的高端人才,因此,在高校开设软件体系结构课程,使学生真正具备进行软件体系结构分析和设计的基础知识和实际应用技能,对我国软件行业的快速、健康发展具有重要的现实意义。

  软件体系结构是高校软件工程专业本科生的一门核心课程,通常在本科高年级开设。该课程知识覆盖面较广,依据软件设计经验总结出来的理论知识抽象程度较高,因此,面对刚刚接触软件项目研发、非常缺乏大规模软件实际开发经验的本科生,选取哪些内容进行本科教学,让学生在理解课程内容的基础上,掌握实际软件体系结构的设计方法,完成抽象理论知识与实践应用能力的有效结合,是软件体系结构课程教学中值得深入研究并亟待解决的关键问题。已有高校教师从教学内容选取和教学经验分析、案例驱动的教学方法、基于能力本位的课程开发方法等方面对该问题进行了教学实践和探讨。为进一步强化实践训练在课程中的重要作用,并推进以学生能力培养为主体的教学方式,笔者从加强软件体系结构实践教学、培养学生软件体系结构实际分析和设计能力的角度出发,充分利用“做中学”教学理念在工程实践类课程教学中的方法优势,提出了“做中学”理念指导下的软件体系结构课堂讲授内容和实验教学环节的设计方法,并从教学目标、课堂教学内容、实践环节设计、教学考核与评价等方面阐述了该方法的实施过程,有效改善了之前困扰教学的课程内容抽象程度高、教师讲授过于书本化、实验内容较复杂等实际问题。结合内蒙古大学计算机学院本科生软件体系结构课程的教学实践,在“做中学”理念指导下的课程教学取得了较好的教学效果,更利于学生理解抽象的课程理论知识,掌握在实际软件研发中设计软件体系结构的应用技能。

  软件体系结构课程教学的核心问题是如何让学生更好地理解软件体系结构设计在软件研发生命周期中的作用,并掌握重要的软件体系结构分析和设计方法。然而,该课程涵盖的基本概念、原则和方法通常是对大量不同领域软件研发的共性特征和经验的总结与精化,具有很强的理论性和抽象程度。当授课对象为非常缺乏大规模软件开发经验的本科生时,教学难度较大,很容易导致照本宣科、理论远离实际,使学生认为软件体系结构是高深但没有实际应用价值的课程。

  (1)软件体系结构概念抽象,体系结构设计的必要性和优势很难在设计阶段得以直观体现。如果单纯讲授体系结构概念和基本原理方法,对还没有接触过较大规模软件项目实际研发的本科生而言,没有任何感性认识,非常难以理解,势必缺乏进一步学习的主动性。

  (2)计算机专业本科生更习惯于先理解课堂知识、再编些小程序验证的学习方法,例如,高级语言程序设计课程可以让学生直接编写示例程序,数据结构与算法课程可以让学生编程实现算法等。而学生在学习软件体系结构课程时,很难做到在有限的课时内,通过实现多个完整的较大规模软件系统来理解体系结构设计的重要性,并掌握各种不同软件体系结构风格的设计方法。

  (3)课堂教学多以教师对基本概念和基本原理的讲授为主,互动j生较差。课程教材缺乏贴近学生实际且趣味性强的软件案例库,学生对软件架构分析与设计方法缺少正确的感性认识。

  为克服上述教学难题,进一步改善教学效果,软件体系结构课程教学必须立足于加强实践环节教学和考核,防止课堂知识讲授与课后实践应用脱节。为此,笔者强化“做中学”理念对软件体系结构课程教学的指导与驱动,在课堂结合实例对核心知识点的发展过程、原理及应用方式进行讲解的基础上,引导学生参与有针对性、由实际案例驱动的课程实践环节,并控制实践环节的难度和实验工作量,使学生切实体会并掌握体系结构的实际分析和设计方法。

  我国教育先驱陶行知先生曾提出:教学做是一件事,不是三件事,我们要在做上教,在做上学,不在做上用功夫,教固不成为教,学也不成为学。可见,“做中学、做中教”的理念并不是一种新出现的教育方式,但将“做中学”的理念应用于高校软件体系结构课程的教学实践仍然具有重要意义。原因在于:首先,“做中学”的目标是引导学生参与以思考和探究为中心的学习活动,学习知识的实践过程是学生亲自参与的主动过程,而不是教师向学生灌输知识的被动过程,这恰可以有效改善因课程内容理论性和抽象性强而容易造成的照本宣科、理论远离实际等不良教学效果;其次,“做中学”使学习过程变为学生提出问题、动手操作、思考讨论、得出结论、表达交流的过程,并且在此过程中培养学生的科学态度及发现、分析和解决问题的能力,这对非常缺乏大规模软件开发经验的本科生而言,利用课程实践环节辅助理解和掌握课堂知识,培养切实可用的体系结构分析和设计能力,可以在一定程度上很好地弥补他们参与实际软件研发项目经验的不足,为学生今后的学术深造或工作奠定良好的知识和能力基础。

  软件体系结构是为软件工程专业开设的一门必修课程。课程教学目标是秉承“做中学”的教学理念,强化对“3种基础知识”的学习和“2种基本能力”的培养,使学生通过实践环节理解“3种基础知识”,掌握“2种基本能力”。具体而言,课程重点讲授软件体系结构的概念与作用及软件构件化的概念与应用方式、典型的软件体系结构风格及模型描述、基于软件体系结构的软件开发方法等3个方面的基础知识。通过课程讲授与实践教学,使学生能够有意识地从软件体系结构的角度审视软件系统,培养学生的“软件体系结构分析能力”,即能够对一个具体的已有软件系统分析其体系结构的优势和不足,并提出改进意见和建议;培养学生的“软件体系结构设计能力”,即选择适合的软件体系结构风格、利用软件构件技术、设计满足软件需求的软件体系结构的能力。最终,通过本课程的学习和实践,为学生今后设计并实现较大规模的复杂软件项目奠定扎实的知识和能力基础。

  内蒙古大学计算机学院采用张友生等编写的《软件体系结构:原理、方式与实践》作为课程教材,杨芙清等编写的《构件化软件设计与实现》作为主要参考教材。为更好地在整个教学过程中贯彻“做中学”的理念,课堂教学将按照表1所示的课堂讲授内容及学时安排对核心知识点的发展过程、原理及应用方式进行重点讲授,并通过后续实践环节使学生深入理解这些知识。

  实践环节是“做中学”理念的核心,是整个教学活动的重心。表2给出了内蒙古大学计算机学院软件体系结构课程实践环节的内容设计及用时安排。实践环节要充分调动学生的积极性,使学生通过这些实践活动来深入理解课堂知识,掌握切实可用的软件体系结构分析和设计方法。

  从表2所列的实践环节内容设计可以看到,内蒙古大学计算机学院软件体系结构课程实践环节的设计具有知识点覆盖广、针对性强、实用性高、学生易上手等特点,并且课程实践活动贯穿了整个学期的16个教学周,更利于学生持续、全面理解抽象的课程理论知识,并切实掌握如何对一个具体的软件系统进行体系结构分析和设计的方法,完成教学目标中“3种基础知识”的深入学习和“2种基本能力”的实际培养。

  “做中学”理念指导的软件体系结构课程教学强化了实践环节是整个教学过程的基础和核心,所以在学生成绩考核方式上,同样需要突出实践环节所占的比重。内蒙古大学计算机学院软件体系结构课程考核中,学生总成绩=期末考试成绩(30%)+实践环节考核成绩(70%)。其中,实践环节的考核方式、要求及成绩所占分值百分比如表3所示。

  在内蒙古大学计算机学院软件体系结构课程教学实践过程中,表3给出的实践环节的总成绩是按照“基础分+提高分”的方式进行评定的,其中基础分对应于该项实践内容的基本要求,而对完成情况好的学生作品可以适当加上提高分,但总成绩不超过该项实践内容基础分的1.5倍。例如:对实践内容p3,如果实现了一个基本的Struts+Hibernate的软件系统就可以得到基础分,而如果实现了完整的基于SSH的软件系统就有机会得到l。5倍的基础分(超出基础分的部分就是提高分);对实践内容p4,如果实现了demo例程就可以得到基础分,而如果自行编写了实现新功能的软件就有机会得到1.5倍的基础分。此外,程序代码规范、课堂汇报精彩、文档结构合理且论述有条理的学生作业都可以适当地加上一些提高分。这样既可以要求所有学生完成“3种基础知识”的巩固和雷火电竞平台 雷火电竞“2种基本能力”的锻炼,又可以使思考深入、动手能力强的学生脱颖而出,培养他们更加全面和深入的体系结构分析和设计能力。

  内蒙古大学计算机学院已连续多年为三年级本科生开设软件体系结构课程,并在近两年的教学过程中逐步深入和完善本文提出的“做中学”理念指导下的软件体系结构课堂讲授和实验环节的设计方法,取得了越来越好的教学效果,主要表现在两个方面。

  从“教”的角度而言,教师通过实践环节的实训可以更直观地发现哪些知识和方法需要详细讲授(如:基于构件的软件运行机制、MVC的工作原理、CORBA标准等),而哪些知识学生可以以自学为主(如:C/S和B/S混合风格、EJB环境部署、体系结构评估等),这样使课堂讲授更加具有针对性和含金量,而不会导致照本宣科、理论远离实际。

  从“学”的角度而言,学生在实践环节作业多的压力下,在灵活考核机制的激励下,能够更好地发挥其主观能动性和创新能力,很多学生的软件作品具有较好的创新性和技术含金量。实践环节学生成绩分布情况如图1所示,平均1/3的学生能够获得至少在一次实践作业中得到1.5倍的基础分,而将近80%的学生能够至少在两次实践作业中获得不同程度的提高分,这充分说明学生的学习积极性得到很好的调动。此外,通过期末考试成绩分析发现,在实践环节得到高分的学生,课程总成绩也较高,这也说明学生通过不断的实践能够更好地理解并掌握在课堂上讲授、在期末考试中考察的抽象理论知识和方法。通过作品交流和讲评能够发现学生确实掌握了有用的体系结构分析和设计方法,并极大提高了分析和解决问题的能力,这样,即便他们暂时缺乏大规模软件开发经验,但也为今后的学术深造或工作奠定了扎实的知识和能力基础。

  在为缺乏大规模软件开发经验的本科生讲授软件体系结构课程时,为防止学生产生该课程理论性强、内容抽象但没有实际应用价值的错误认知,笔者从加强软件体系结构实践教学、培养学生切实可用的软件体系结构分析和设计能力的角度出发,提出了一种在“做中学”理念指导下的软件体系结构课堂讲授和实验环节的设计方法,给出了具体教学目标、课堂讲授内容和实践环节安排以及成绩考核方式,并在内蒙古大学计算机学院本科生的课程教学过程中深入实施了该方法,取得了很好的教学效果。在“做中学”理念指导下的软件体系结构课程教学更利于学生通过不断的实践理解抽象的理论知识和方法,更深入、全面地掌握实际软件研发中所需的软件体系结构分析和设计能力,为学生今后设计并实现较大规模的复杂软件系统奠定扎实的知识和能力基础。在今后的教学工作中,我们会根据教学效果和学生的反馈逐步加强课堂教学的引导性和针对性,更重要的是不断完善、更新实践环节的内容设计,切实将“做中学”的理念贯穿于软件体系结构的完整教学过程中。

  [2]路纲,裘国永.软件体系架构课程本科教学探讨[J].计算机教育,2010(24):128-131.

  [3]陈长青.软件体系结构课程教学探讨[J].计算机教育,2008(22):134-135.

  [4]覃征,邢剑宽.软件体系结构课程教学:抽象与实践的协调与统一[J].中国大学教学,2009(7):14-15.

  [5]路纲,刘侍刚.软件体系架构案例教学:连珠软件开发[J].计算机教育,2011(16):81-85.

  [6]朱鹏程,管致锦.基于能力本位的“软件体系结构”实践教学环节[J].计算机教育,2011(17):39-42.

  [7]马健、“做中学”:高等学校教学改革的新方向[J].高等理科教育,2009(3):9-12.

  教育部高等学校计算机基础课程教学指导委员会(简称“教指委”)于2009年10月编制了《高等学校计算机基础教学发展战略研究报告 暨计算机基础课程教学基本要求》,指出深化高等学校计算机基础教学的发展趋势和改革意见,强调“加强以知识体系和实验体系为基础的课程建设,加强以应用能力培养为核心的实践教学,加强教学方法、手段的改革与教学环境建设”的高校计算机基础课程的改革意见。

  计算机“软件技术基础”课程(简称“软基”)是工科非计算机专业计算机基础教学“三个层次”课程体系中第二层次的一门技术基础课,也是我校生物医学工程(简称“生工”)专业学生的一门必修课程,是全面锻炼学生逻辑思维到动手能力的核心课程,是将来生工学生进行硬件类接口程序开发的基础。该课程包含了操作系统原理、数据结构及算法、数据库及应用、软件工程等内容,目标是在生工专业中打造其软件能力的核心地位,使学生掌握计算机软件技术的基础知识和基本方法,培养学生利用计算机技术分析问题、解决问题的基本思路与能力。传统的“软基”教学,由于其涵盖内容广,课程抽象,学生感觉非常难学,教师同样也感觉难教。很多学生在学完“软基”课程后,并不知道应该将所学知识应用于何处的情况非常常见。为解决这些问题,需要对“软基”课程的教学模式加以改革。目前,各大院校都在探索有关计算机教学的改革。我校在长期调研的基础上,仔细研究生工专业的特点和对计算机的特殊需求及依赖性,前瞻生工专业毕业生将来从事的医药卫生工作实践,考虑解决各种医药实践问题所需的计算机知识和应用能力模块,提出针对我校生工专业学生“软基”课程教学体系的改革并付诸实践,构建具有医药院校特点的“软基”课程体系。力求摸索出一条适合医药类院校生工专业特点的、真正做到学有所用的教学模式,使生工专业毕业的大学生能够更好的将所学知识应用到医学领域软件开发和硬件控制中去。

  实际上,医药类院校的学生学习计算机,有其自身的特点。首先,医药类专业的学生在高中多数是理科学生,已经养成了一定的分析和解决问题的习惯,具备掌握计算机基本程序设计的数学、算法基础。同时,医药类学生将来要面临大量医学数据的处理和分析,但医药类学生的数学、物理等基础学科相对比较薄弱,这给“软基”课程的学习带来了困难,计算机技术侧重于综合分析问题的能力,包括将问题算法化、逻辑化、数字化,这些都需要比较厚重的数学等自然科学的基础,医药类高等院校学生计算机应用能力比理工类院校学生低,如何在课程建设中体现能力培养,提高应用型技能,是符合我院办学理念和专业培养模式的有益尝试。因此,学好“软基”课程,可以对前面学过的计算机课程起到很好的总结作用,也可以为后续的计算机学习打下坚实的基础。

  鉴于以上分析,围绕培养生工学生的软件设计及应用能力,开展教学模式、理论教学、实践教学和自主延伸教学方式方法的研究,提高生工专业毕业生要求的核心竞争力,兼顾教育部对于非计算机专业大学生计算机教育的要求,我们对“软基”课程教学及实践方式进行了调整和改革。

  我校“软基”课程共50学时,但内容覆盖到数据结构、操作系统原理、软件技术、数据库技术等知识。如何在学时少,涵盖门类多的情况下,兼顾统筹,注重“软基”各章内在联系和各章对于学生形成综合研发能力的作用,以此为侧重点进行教学。万丈高楼平地起,基础才是学好知识的关键,只有掌握牢固的基础知识,才能更好的学习后续知识。课堂教学,从简单到复杂,在各个学习情境中选择递进层次性的学习内容,融合“知识+技能+素质”三维度能力要求。采用任务驱动的教学方法,在平时学习和实践考核过程中,学生自主延伸学习,主动查找资料,互相学习,协作完成课程设计。

  鉴于国内外大学教育模式的差异,国外的计算机基础教育没有更多的可比性,我们始终关注国内大学的非计算机专业的“软基”课程教学方式的开展和改革。当前,“软基”课程涉及软件工程、数据结构、操作系统、数据库、计算机网络编程等方面知识,内容覆盖面广,各知识模块因为其相对独立性,导致实践教学没有形成以打造学生能力为主线的一体化教学。“软基”课程的每一部分都会对学生软件研发能力的形成有很大影响。有重点的讲授课程,以“精讲多练”为原则,以提高学生综合素质为最终目标,加大实验力度,增加大作业内容和广度,注重学生实践能力的培养,鼓励学生动手解决问题,互相帮助,在培养学生团结协作的同时,使学生在练习中学习,在练习中提高。实践教学是将理论知识充分糅合然后提升的过程,是课堂教学的有力补充,学生的实践开发能力是检验这门课程是否讲好的试金石。如何打破各章知识体系的边界,培养学生综合的系统开发能力,是“软基”实践教学改革的重点。利用实验教学,在验证课堂知识的前提下,引导学生分析问题,自己动手解决问题,鼓励学生优化程序,配合理论教学夯实基础。

  采用课程设计的方式检验学生的学习成果。在学完数据结构和数据库技术部分的课程后,学生完成不同的课程设计。数据结构部分,学生随机抽取不同的作业,在一定的时间内独立完成;数据库部分,由学生自由分组(每组人数少于5人),再随机抽取数据库设计题目的基础上协作完成。

  通过面向某一具体应用的数据结构和数据库应用的设计,加深学生对数据结构和数据库知识的理解和掌握。数据结构题目的编制将配合ACM竞赛(ACM国际大学生程序设计竞赛,ACM International Collegiate Programming Contest)和“蓝桥杯”软件设计大赛,着重提升学生数据结构模块的算法设计能力;数据库应用设计部分,配合具体应用,促使学生学以致用,更好地掌握知识。通过程序的编写,充分锻炼学生分析问题、解决问题、程序设计的能力,培养学生的团队精神,提高学生学习的主观能动性。

  加强网络教学平台的建设,构建数字化学习环境。实现课程教案、电子教案全部上网,教学录像上网,使得学生能够随时“温故而知新”。通过网络,为学生提供丰富的教学资源,对于知识重点、难点给出多媒体演示;通过网络布置课后作业、习题、提交作业;通过网络,实现教师与学生、学生与学生之间的互动交流,共同学习。

  我校“软基”课程,学生最后考核的成绩由三部分组成:学生平时的作业成绩、学生课程设计的成绩和期末考试的成绩,各部分的比重为10%、30%、60%。为客观的检测学生学习的成果,改革传统的考试方式,建立“软基”题库。传统的笔试考试由教师命题组卷,试题缺少客观性。建立并完善题库,通过题库系统随机组卷,考查学生的学习情况。期末大作业由以往的教师命题,学生在考试中随堂作答的方式,改成对数据结构和数据库两部分作业程序的编写。课程的考核能充分反映出学生的学习情况和教学情况,使学生能学用结合。

  由于“软基”课程学时少,内容覆盖广,作为课堂知识的有效延伸,开设C++程序设计、程序算法设计、Java程序设计、数据库应用等选修课辅助课堂教学;和校内有关部门及教研室合作开发项目,在实训中提高实际应用能力;以第二课堂教学和开放实验室的方法,为学生提供良好的学习环境。鼓励学生参加省级计算机大学生比赛,如ACM竞赛和“蓝桥杯”软件设计大赛等,通过与其他学校学生的交流,使学生发现自己的不足之处,督促学生学习。

  计算机“软件技术基础”课程教学涵盖计算机多门课程,为使学生更好的了解程序开发过程,掌握程序设计技巧,应用所学知识开发应用程序,近年我校新增“计算机软件综合实践”课程。通过该课程,学生在教师的指导下,针对专业领域内的软件应用问题,有针对性地进行软件设计或专题研究,独立完成一定的设计任务,学会软件设计的基本方法与基本步骤,提高专业知识的综合应用能力,使学生初步具备一定的综合分析问题与解决问题、独立进行软件系统设计的能力,为毕业设计和今后从事专业工作打下初步基础。

  通过对学生的教学实践,改变了“软基”课程传统的教学模式,努力做到《基本要求》中对教学方法、教学手段提出的“加强实践环节的要求与考核,加强研究型学习、自主式学习、资源型学习、协作型学习能力的培养”要求,使我校生工专业的“软件技术基础”教学更加适应21世纪人才培养的需要。通过对学生应用能力的培养,我校多名学生在ACM程序设计大赛和蓝桥杯程序设计大赛中获得良好名次。实践证明,根据学生的特点和知识掌握情况,针对不同的教学内容,采用不同的任务驱动的教学模式,在教学中取得了较好的效果,可以极大提高学生学习的主动性和分析、解决问题的能力,培养学生的团队精神,对学生未来的工作和学习都将产生积极的影响。

  [1] 教育部高等学校计算机基础课程教学指导委员会.《高等学校计算机基础教学发展战略研究报告 暨计算机基础课程教学基本要求》.高等教育出版社.2009.10

  作者简介:余平(1975-),女,重庆师范大学计算机与信息科学学院副教授,主要从事数据挖掘、软件工程教育等研究,(E-mail)。

  摘要:软件工程创新型人才是软件产业自主创新的根本,如何培养软件工程创新型人才是高校软件工程专业的重要任务。文章以软件工程创新型人才的能力培养为目标,阐述了重庆师范大学软件工程系在人才培养方面的具体做法以及实践效果。

  中图分类号:C961文献标志码:A文章编号:10052909(2013)05003103自主产权是促进国家科技和经济发展的根本。作为经济社会发展的基础性、战略性和先导性产业,软件产业的自主创新对国家的发展起着举足轻重的作用。为适应软件产业的需求,实现软件产业的可持续发展,培养创新型软件工程人才,成为中国高等教育的重要任务和目标[1]。

  充分认识软件工程创新型人才所需的素质是建立合理人才培养模式的基础,下面从创新型人才的基本素质出发,结合软件行业对人才的要求,建立软件工程创新型人才的能力模型。

  从基本素质而言,创新型人才需具备创新精神、创新思维、创新人格、创新能力以及合理的知识结构。创新精神是创新的先导和整个创新素质的发动机;创新思维不仅能揭露客观事务的本质及其内在联系,而且能在此基础上产生新颖的、独创的、有社会意义的思维成果;创新人格能催化和激发创新能力[2];创新能力是创新实践活动赖以启动的要素;合理的知识结构是创新活动的实施工具。

  根据软件产业的实际需求,软件工程专业建立了“多层次、实用型、复合型、国际化”的人才培养目标[3]。多层次要求以个性化培养为核心,培养多元化软件人才。实用型要求人才培养方式契合企业需求。复合型强调人才培养的行业导向性,要求人才能快速、准确地了解软件应用行业。国际化要求软件人才具有良好的外语沟通能力、国际化视野等国际化素质。

  作为软件行业而言,创新要求人才拥有以下三方面的技能:(1)以逻辑思维能力为核心的基础知识以及软件技能;(2)在软件生产流程中要求的实践能力,如谈判能力、知识和技能的应用能力、团队合作精神、沟通能力、软件管理能力等;(3)囊括国际化素养、学习能力、宽广学科视野的非专业综合能力。在此基础上,通过发散思维、收敛思维、复合思维等创新的思维方式,产生新颖、独创、有社会意义的创新成果。而在整个创新过程中,情绪智商始终作为调节剂,抗击挫折失败,激发创新兴趣,锻炼创新意志。

  重庆师范大学计算机与信息科学学院软件工程系,将探索如何培养创新型软件工程人才作为工作重点,通过剖析创新型软件工程人才的能力要求,通过三大体系——课程教学体系、实践体系、素质拓展体系,着力培养软件行业创新型优秀人才。

  扎实的基础知识、专业知识以及宽阔的视野是创新的根基和保障。软件工程创新型人才不仅要理解知识,更要应用驾驭知识。

  课程体系设计是人才培养目标得以实现的有力保障,软件工程创新型人才培养课程体系设置不仅要重视基础知识,还要突出多元化的学科内容。为此,学院建立了如图1的课程体系,达到“厚实基础、全面均衡”,包括基础知识、专业知识和综合知识3个课程平台。

  图1软件工程课程体系基础知识平台训练学生的逻辑思维能力、语言能力以及专业基础。软件开发是将市场需求转化成逻辑过程,再转化为程序代码的过程,要求思路清晰、思维缜密;而数学能有效锻炼分析和逻辑能力[4],因此,学院开设了高等数学、离散数学、线性代数、数值分析等课程。目前,中国与国际的软件水平还存在较大的差距,且软件产业是全球化的产业,语言能力是学生了解国际上最先进技术的基本工具。为此,学院在每学期均开设了相关英语课程,营造浓厚的英语学习氛围。专业技能作为重中之中,包括技术水平和工程能力2个方面,而在技术水平的课程设置上,将算法设计、数据结构、数据库等基础课程作为学科重点,保证课时充足。此外,开阔的眼界能有效地促进学生思考和创新,交叉性学科课程的开设必不可少,学院为学生开设了包括知识产权、企业工业管理、人文科学等多门扩大学生知识面的课程[5]。

  教学模式陈旧。一直以来国内高校的人才培养模式都是以课堂为主,填鸭式教学方法仍占主流。模式化的教学方法直接禁锢了学生的创造性、积极性和主动性,因此,学院从建设师资队伍入手,改善教师的创新素质,培养教师“为创新性而教”的教育理念,鼓励教师探索新的教学方法。在新的教育理念下,教师需要在教学实践中,通过“案例教学”“实践训练”的方式,发掘学生潜能,培养学生的自学能力,训练思维的逆向性、灵活性、发散性、独创性和敏锐性,将创新型教育落到实处[6]。

  案例教学遵循巧设案例—剖析案例—引申案例问题—实践案例的教学流程。通过巧设案例,引导学生去发现分析问题,找到解决方案,在学生理清思路后,将问题引申,让学生自主思考,自由发挥,鼓励学生将复合思维与发散思维结合,抽象思维和形象思维结合,提出创新想法,并实践创新案例[7]。

  实践训练结合了课程实验和课程实训。一方面学院为各种专业课程开设了相应的实验课程,让学生在理论学习基础上,走进实验室,针对一个问题,实现尽可能多的解决方案,进而训练学生的观察能力、思维能力和操作能力。另一方面,课程实训是在每门课程结束后,通过开展小型项目,让学生学会将所学知识运用到不同的软件应用中,进而训练学生的自主学习和知识应用能力,培养学生独立分析问题并解决问题的能力。

  工程实践不仅能培养优秀的应用型软件工程人才,还是创新产生的过程[8]。因此,一个创新型软件工程人才必须会动手,会实践,并且学会在实践中寻找创新的机会。

  从大三开始,学院为学生设置了项目实践课程,在课程实施过程中,基于“团队”在软件工程中的重要性,组建“学生工作室”。

  首先,软件产业的创新主要体现在软件技术知识创新和软件应用创新2个方面。学院提倡项目产品化,项目开发企业化。学生通过市场调研,自主选题,进行软件应用创新,发掘有社会价值的软件产品,进而利用现有知识和国际先进技术进行产品设计、产品需求分析、用户体验分析、程序设计与开发,并在此过程中通过优化算法、创新算法等进行软件知识的创新。为使项目实践顺利开展,学院组织了教授评审团对项目进行评估,实施了项目指导教师和项目团队“一对一” 的指导方案。

  以项目实践为载体,学院组建了“学生工作室”,学院针对项目实践中的优秀项目团队,划分专门资源,形成固定的学生工作室。工作室选定各自的兴趣方向,一方面参与国家、企业和学校开展的各种学术活动和竞赛活动,另一方面参加学院内部开展的各种创新活动,包括软件应用创意赛、算法创新赛等。

  产学研一体化是知识创新体系、技术创新体系和企业生产体系的融合剂,能将断裂的创新系统连接,形成创新的完整链条。基于此,学院通过构建产学研一体化平台,不断加大校内外实习基地的建设,保证学生毕业前均能获得实习机会。根据软件产业的发展方向和学生的兴趣需求,学院陆续建立了现代软件工程、企业与系统仿真、嵌入式系统、图形图像与数字娱乐等实验室。此外,学院还注重与其他在渝企业和高校的合作,与重庆大学、西南大学、重庆邮电大学、中软重庆公司、中冶赛迪等建立了紧密的合作关系。

  在创新人才培养过程中,思想意识和情绪管理的作用不可忽视。学院始终坚持以学生工作促进专业教学,以各类学生社团为载体,建立了一个有效的素质拓展体系,搭建学生自主创新平台。一个平台以传统的学生社团为主,包括学生党支部、团委、学生会;另一个平台是企校合作人才培养模式,由国内外优秀软件企业与学院合作组建的学生技术俱乐部。传统学生社团通过举办综合性学生活动,包括各种思想教育活动、文艺活动、素质拓展活动,比如软件工程师的社会伦理演讲比赛、软件外包产业的科学发展观演讲大赛、英语戏剧表演、野外生存大战、心理讲座等,培养学生的责任感、团队合作精神、抗压能力、情绪控制能力等综合能力。学生技术俱乐部以贴近专业为特色,以软件产品和软件技术为中心,组织各种技术性活动,如技术培训活动、技术交流沙龙、软件企业的企业文化体验、新技术讲座等,培养学生在专业上的创新意识和创新兴趣。

  重庆师范大学计算机与信息科学学院软件工程系在软件创新人才培养中取得了骄人的成绩。自学院创办以来,多名学生参加全国数学建模竞赛以及美国数学建模竞赛并获得较好成绩。由于毕业生专业能力强,综合素质高,能快速融入企业项目实践,受到企业较高评价。

  文章提出的软件工程创新型人才培养模式,是对重庆师范大学计算机与信息科学学院软件工程系人才培养的经验总结。软件工程创新型人才培养的三大体系体现了“重基础、重实践、重综合素质”,构建了从“基础”到“提高”再到“创新”能力的培养途径。此培养模式已在软件工程专业中实施,取得了较好的效果,但还存在许多有待改进之处,且当今信息产业的快速发展,对信息化的需求不断提出新的挑战,要求软件工程创新型人才的培养模式也要与时俱进,不断发展,学院会继续在软件工程创新性教育方面进行探索与实践。

  [1]韦迎春,文俊浩,陈蜀宇.以能力培养为核心 构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.

  [2]刘乃琦.软件工程教育的特点与问题[J].计算机教育,2004(10):6-9.

  [3]张喜平,王佐成,汪林林.国内外软件人才培养模式现状研究[J].青年与社会中外教育研究,2009 (1):6-8.

  [4]文俊浩,杨丹,陈林,等.软件工程人才培养体系研究与实践[ J ].高等工程教育研究,2005(4):63-68.

  [5] 蒲颖.培养国内软件人才新探索[J].神州学人, 2006(1):10.

  [6] 陈丽蓉.我国软件人才培养的现状与思考[J].山西广播电视大学学报, 2008(2):20-21.

  [7] 丁文武.加快软件人才培养 优化软件人才结构[J].中国高等教育, 2004(7):23-25.

  每种工程职业都有一个职业基础知识体系及其推荐的实践。这一知识体系多数情况下可以组织成正式文档,并为理论指导文件、教育程序、培训程序、专家认证或职业执照等。在国际上,IEEE-CS和ACM联合组建的软件工程协调委员会(SWECC)了软件工程知识体系和推荐实践SWEBOK2004[1],为软件工程职业实践建立了合适的准则和规范集。基于SWEBOK,SWECC进一步定义了其中可以纳入

  教育程序的知识体系,包括本科生软件工程教育计划SE2004[2]中的SEEK、研究生软件工程教育计划GSwE2009[3]中的CBOK、软件工程职业道德规范和职业实践[4]。国内有过较好实践的有南京大学的软件工程教育知识体系[5-7]。

  本文在分析SEEK和CBOK的基础上,求精与重构软件工程专业学科教育知识体系,包括:1)按照“新视角、新认知、新方法”确定计算基础部分在教学中的重点,解决SEEK对CS知识单元的“鸵鸟”化处理问题;2)基于教学实践总结求精本科阶段软件工程最小核心教育知识点。该项工作试图能够更好指导各个层次教育机构的教学活动,适应从具有国际竞争能力的高端工程型软件人才到面向具体应用领域的基础软件开发实用人才的多层次培养需要。

  SE2004[2]定义了本科生软件工程教育知识体系SEEK,包括知识领域(KA)、知识单元和知识点3个层次,采用Bloom分类法,并在知识单元级别给出了最小核心课时数。SEEK共有10个知识领域,42个知识单元,最小核心学时数为494,详见表1。

  SEEK历经5年实践,其系统性、全面性、先进性和实用性均得到了较好验证。但作为确立软件工程专业的第1版教育知识体系,SEEK过于强调新学科确立的知识领域,忽视了对继承学科的相关知识领域的描述,从而影响到相当一部分教育机构对于知识体系的理解和执行。如:1)计算机科学基础拥有140个核心学时,占SEEK总核心学时数的三分之一,但仅仅作为一个知识单元存在,如何执行?SE2004建议去参考CS2001,但是CS2001中的知识领域仅对应于SE2004中的知识点,大多数教育机构很难理解SE如何调整求精CS,因此很难对CS的核心课程进行调整与改革。2)很多教育机构反映软件工程相关知识领域的核心学时数比较多,在高等教育大众化阶段下,应该允许教育机构根据自己的人才培养定位,适当削减本科阶段的软件工程核心学时数,也有益于培养面向某一应用领域的实用型软件人才。

  GSwE2009[3]给出了研究生软件工程教育知识体系CBOK。CBOK以SWEBOK的组织和内容为蓝本,但进行了一些修改。包括:1)加入了系统工程基础和职业操守指导两个新的KA。2)重新安排或修改了一些知识单元和知识点,如人机交互设计被加入到软件设计KA;工程经济学单元被加入到软件工程管理KA;风险管理单元被加入到软件工程管理KA;

  软件检验和有效性验证单元被加入到软件质量KA;以及部分名称的改变和知识单元/点组织的改变。值得注意的是,即将的SWEBOK2010也在进行同步修改。

  GSwE2009 指出了软件工程专业研究生面临宽泛的入学准备条件,包括:1)获得过相关学士学位;2)学习过SwE相关课程;3)具有2年的SwE相关经验。CBOK则具体组织为预备材料、核心材料、大学特有材料、选择性材料、顶点经验等部分。学生对每个KA所应该掌握的程度,CBOK使用了K(知识)、C(理解)、AP(应用)和AN(分析)等4个级别。

  CBOK预备材料指出了学生在进入硕士阶段学习的时候所必须具有的知识,这些知识可以从大学本科的教育、软件开发经验、机构的认证课程中获得。表2给出了对预备材料的分析,SE2004是这一部分知识元素的主要来源,但在组织上与SEEK有所不同,反映了对SEEK 5年实践的总结和提高,对我们更好地理解SEEK有较大意义。

  CBOK核心材料给出了研究生课程所应该覆盖的核心知识体系,按照相当于15学分的教学时间来定义。即核心知识体系的学习由比总学时数50%略少的时间来达到,其他时间和课程将会被分派去提供加深核心领域(Bloom级别的提高)和专注于某个选定的应用领域。表3给出了对核心材料的分析,其中百分数表示在总课时数内所占的比例,相加不超过50%。

  本文结合最新的GSwE2009中CBOK教育知识体系和即将的SWEBOK2010,总结SE2004中SEEK教育知识体系在我国高校5年的教学实践,从加强实用性的角度重构与求精SEEK以与CBOK接轨,适应我国高校软件工程专业多层次教育的需求。

  1) 研究生教育知识体系保持CBOK的灵活性与可伸缩性,允许高校针对多入口情况灵活设置教学体系。

  2) 本科教育知识体系既适应高水平大学软件工程专业培养具有国际竞争能力的中高层次工程型软件人才的需求。

  3) 本科教育知识体系又适应应用型大学软件工程专业培养面向各个应用领域的基础软件开发实用人才的需求。

  1) 软件工程专业强调扎实宽泛的知识基础。软件工程师在工作环境中需要广泛地了解涉及产品开发的诸多知识领域,并在具体产品构造中灵活运用该领域的前沿技术。

  2) 软件工程专业强调从事该领域工作的实际体验。在教学实施中应该重视体验实际软件开发工作的过程,熟悉实际应用的方法与工具,以使毕业生能够更快地融入今后的工作。

  3) 软件工程专业强调分析与解决实际工程问题的方法与能力。解决实际工程问题的能力是软件工程教育的核心问题,要重视培养学生分析、设计、构造、实施、维护实际工程问题的知识与能力以及围绕实际工程问题的组织、协调与管理的知识与能力。

  4) 软件工程专业强调与实际应用领域的结合能力。软件的应用无所不在,熟悉一个或数个应用领域的相关知识,并将其与软件工程核心技术相结合,是对该专业毕业生的基本要求。

  5) 软件工程专业强调综合运用各种方法与技术的能力。选择合适的方法与工具并有效集成,是构造软件产品的重要能力,再学习能力是对软件工程师的基本要求,选择与决策是一个软件工程师的核心素质。

  6) 软件工程专业强调工程观、职业道德和团队合作能力。树立工程理念,在工程原则和方法指导下遵从职业要求,以团队方式完成软件项目,是一个软件工程师所应具备的素质。

  1) 用软件工程的世界观统一审视和重新组织软件工程教育知识体系。SEEK回避了计算机科学基础相关知识,通过直接借用CS2001,导致SEEK在教学实施时成为CS和SE两种观点的混合体,各高校在对计算机科学传统课程改造时遇到较大困难。求精后的教育知识体系试图站在软件工程的新视角来重新编写和组织计算基础相关知识领域,站在软件系统构建的高度全新认知计算系统知识的教学,运用解决具体软件设计问题的新方法来处理计算机科学传统课程的教学改革,从而达到在软件工程专业有效改造CS传统课程的目标。

  2) 求精本科教育阶段的软件工程知识,适应更多教育机构多层次教育的需求。根据我国高校5年教学实践,多数学校普遍认为软件工程相关知识的教学内容偏多。特别是对于应用型高校软件工程专业来说,重点是培养学生在软件工程思想指导下的针对应用领域的软件开发技能。CBOK定义的研究生准入条件和准出条件也在另一方面印证了SEEK的部分软件工程知识可以移入研究生阶段。因此笔者在认真调研的基础上对软件工程相关知识领域进行求精,设置核心教学课时最小值,作为大学软件工程专业的最低要求;同时把SEEK规定的核心教学课时取为最大值,作为高水平大学软件工程专业的办学参考;有关高校可以根据自己的人才培养定位在两者之间浮动,实现自己的办学特色。

  3) 适应我国高校教学的具体诉求。计算机科学与技术一级学科研究生联考对软件工程专业教学产生影响。因此在重构计算基础相关知识领域时,把SEEK中与数据结构、计算机组成、操作系统和网络相关的核心课时数设置为最小值,作为软件工程专业办学的基本要求;同时把联考要求规定的核心教学课时取为最大值,作为部分高校软件工程专业的办学参考。

  4) 研究生教育知识体系采用CBOK。软件工程专业研究生教育程序面临相对宽泛的入口。软件工程专业本科毕业生需要在某个KA、某个应用领域和实践上得到深造;信息类专业本科生或接受过IT培训的学生需要在软件工程知识和实践上受到良好训练,并把这些知识与他们原先的工作领域或以后想从事的应用领域相结合;在SwE方面有过两年工作经验的人,严格的软件工程训练则更加重要。不同的人有着不同的学习诉求,因此在建设教育知识体系与相关课程方面,良好的灵活性与可伸缩性尤其显得重要,CBOK较好地解决了这一诉求。

  5) 遵从SEEK与CBOK。本文给出的学科教育知识体系以SWEBOK为基础,是用软件工程视角统一规整、重构和求精SEEK与CBOK后得到的,其基础和知识产权均属于SWECC。

  软件工程教育知识体系包括本科生和研究生两个部分,其中研究生教育知识体系完全采用CBOK,本科生教育知识体系在SEEK基础上重构与求精。

  重构的方法是采用软件工程视角全新组织SEEK中的计算基础、数学与工程基础等两个知识领域,重新划分为数学基础、程序设计基础、计算系统基础和工程基础4个知识领域。此外,原计算基础中的软件构造升格为知识领域,原计算基础中构造工具与分布在软件工程各相关知识领域中的工具知识点合并为一个独立的知识领域,后者与系统与应用知识领域一样,不设核心教学课时数要求。

  求精则依据CBOK的研究生准入条件和我国高校对SEEK的五年教学实践。首先,求精软件工程各知识领域和工程基础知识领域中各知识点的本科教学要求;设置核心教学课时数最小值,作为本科毕业生最低教学要求;把SEEK原先核心教学课时数设置为最大值,供部分高校在教学设计时参考。其次,针

  对我国高校计算机一级学科研究生联考的现实,对数据结构、算法、计算机组织结构、操作系统、网络与通信等知识单元进行扩展,SEEK原先核心教学课时数设置为最小值,作为本科毕业生最低教学要求;联考特别要求作为核心教学课时数最大值,给有研究生考试需求的高校参考。

  表4给出了重构和求精后的软件工程专业本科教育知识体系,采用Bloom分类法,知识点的掌握程度用k(知识)、c(理解)和a(应用)标记;重要程度用E(核心)、D(推荐)和O(选修)标记;共有13个基本知识领域,52个知识单元,建议核心学时数最小值为381(E),最大值为520(E+D);另有软件工具和系统与应用两个扩展知识领域。

  求精。用软件工程的统一视角组织、细化和求精本科生教育知识体系,从而使本科生教育知识体系具有较好的灵活性、适用性和可伸缩性,并较好地与CBOK衔接,共同组成完整的软件工程专业教学知识体系,从而能够有效指导我国高校软件工程专业的本科生与研究生教学体系设计。

  [5] 骆斌,丁二玉. 南京大学软件工程专业本科教程[M]. 北京:高等教育出版社,2009.

  [6] 张大良,骆斌. 软件专业应用型人才培养的研究与实践[J]. 南京大学学报:自然科学版,2009(增刊1):1-5.

  随着我国软件产业的不断发展,软件开发方式已经由传统的作坊式逐步升级为工业化、流水线式的生产模式。在这种工业化生产模式下,行业和企业对具备一定软件开发经验的软件工程师、软件项目经理等软件人才的需求日益增加。而目前的软件人才培养现状并不能满足这种社会需求。许多高校在软件人才培养方面与行业现实需求脱离,传统的教育模式中存在一些问题,如教学注重理论知识掌握、教材内容陈旧、教学方法落后、实践训练不足等,导致学生的工程实践能力不足,不能满足企业的实际开发需要。因此,软件人才培养模式有待进一步改革。

  印度的NIIT教育模式是目前公认的IT软件人才培养的成功典范。NIIT教育培养模式注重培养学员的动手操作能力、工程实践能力和设计研发能力。本文在探索NIIT教育理念和教育模式基础上,结合本校计算机科学与技术软件人才培养计划和培养方案,通过构建嵌入式课程体系、有效组织教学内容、改革传统教学方法等途径进行软件人才培养模式改革的探索,对高校培养创新型应用人才具有一定借鉴意义。

  NIIT是印度国家信息学院(National Institute of Information Technology, NIIT)的简称,1981年开始在印度开展IT教育培训。NIIT在发展过程中总结出一套独特、先进、高效的教学模式。在实际教学过程中,通过让学生学习使用主流软件开发方法和技术,注重培养学生的工程设计能力、软件研发能力和实践创新能力。NIIT软件人才培养模式采用以软件订单项目为基础的专业实践能力和操作开发能力培养方式,学生学习时就能参加软件订单和软件项目的设计和研发,毕业后能很快适应企业开发要求,并成为合格的专业技术人才[1]。

  在嵌入式NIIT教育模式的指导下,探索构建适合软件行业要求的课程体系,是培养计划的重要组成部分。针对目前业界对IT人才的需求,NIIT课程体系主要分为Java方向和个方向,以培养学生具有数据库开发能力、J2EE开发能力、.NET开发能力、COM+组件开发能力和移动开发能力的软件工程师为目标。学生通过阶段性循序渐进的学习和实践,掌握软件开发的主流软件和技术。

  因此,我们通过借鉴NIIT教育模式在软件人才培养方面的优势,在制定计算机科学与技术专业软件工程方向的培养计划时,应将以传统学科建设为导向、以追求知识完备为目标的教学转变为以企业需求为导向、以培养学生综合素质和能力为目标的教学。在新培养目标的指导下,我们对原有课程体系进行改革,在原有课程体系中嵌入NIIT部分课程,经过整合,将课程体系划分为公共基础类、专业基础类和专业类三大类,课程体系如图1所示。

  软件工程方向的专业类课程包括专业必修课程、专业限选课程、专业任选课程和认证课程。专业必修课程包括UML统一建模语言、软件项目管理、软件质量保证与测试、软件设计与体系结构和软件需求分析等,作为软件开发和技术知识掌握的基础;在专业限选课程中,嵌入了NIIT的两条软件开发技术方向,即.NET方向和Java方向。NIIT的课程体系基本是循着这两条技术路线搭建的,其特点是由浅入深、由点到面、技术路线明晰。.NET技术路线课程开设C#程序设计、Web应用开发、.NET应用开发等课程;Java技术路线课程开设Java程序设计、J2ME移动应用开发、Java EE应用开发等课程。同时增加了辅助这两条技术线路的专业任选课程,如软件设计模式、软件开发案例分析等。同时,根据软件行业的相关认证,我们开设一些认证课,使学生在获得素质学分的同时得到行业认可。

  嵌入NIIT教育后的课程体系,既符合计算机科学与技术专业规范,又符合行业对软件人才能力培养的实际要求。根据该课程体系构建的人才培养方案,能确保学生掌握主流开发技术.NET和Java之一,毕业后能够很好地适应软件市场对人才的需求。

  教学内容的组织改变了传统注重书本和理论知识的方式。以往学生掌握主要技术知识后,并不能将其很好地应用到解决实际问题的过程中,课堂讲解中的理论和实践分离,学生处在被动状态,没有时间思考,没有机会参与。而嵌入式NIIT教育模式更着重知识的运用和学生实践能力的培养,针对不同课程设计合理的应用案例,这些实例基本上来自于软件生产的实际问题,教师可以根据教学实际自己编写实践教材,修订实践教学大纲,安排合理的实践环境。因此,通过合理组织教学内容,采用适应软件人才培养的教学方法,可以让学生从工程的角度学习专业知识,并有效培养学生的实践操作能力和软件研发能力。

  在教学方法上,NIIT教育模式独创了软件教育的MCLA (Model Centered Learning Architecture),即基于榜样的学习方法。MCLA教学方法是遵循“专家引导―引导实践―引导探索―独立实践”这一完整的工程实践训练过程[2]。在传统教学中,学生学习某个知识点之前,首先掌握一些基本理论和概念,然后通过一些简单的验证性实验或简单实例,达到掌握理论知识的目的,这并没有注重培养学生动手解决问题的综合实践能力。而MCLA教学法以工程项目为载体,经过“学习―实践―提高”,逐步引导学生在学习和完成项目的实战训练中形成知识获取能力、解决问题能力、团队合作能力、创新开发能力。

  采用MCLA教学方法,教师要设计合理的工程案例,这也需要教师有一定的工程背景或经验。然后,教师以本次课程所传授的基础知识为主线,向学生介绍实际问题的相关内容,让学生了解所要解决的问题是什么。接着,进入专家引导,经过教师示范性地使用标准方案解决问题,学生可以进行模仿,并从中掌握必备的知识。最后,开展引导实践环节,学生已经具备一定的知识基础,可以完成一个类似的实际应用问题,通过不断的练习和团队实践,可以巩固所学知识和技术。教师引导学生设计实现相似案例,将及时应用所学理论并很好地巩固,同时引导学生掌握软件开发技能。这样,学生在实践过程中能够逐步独立完成一个新的工程应用项目。

  突出实践技能是NIIT教育模式的侧重点。在嵌入式NIIT教育模式中,特别重视以软件订单项目为基础的专业实践能力和实际操作开发能力的培养[3]。实践可以使学生将理论与解决问题的实践相结合,从大量的实践训练中不断提升软件开发和动手操作能力。根据软件人才培养目标的要求,学校需要加强实践教学环节的设置、构建科学优化的实践教学体系,全面培养学生的综合素质和实践创新能力。

  在教学计划中,我们减少单纯的实验性、验证性的实践课程,增加符合NIIT教育模式的设计性、综合性、工程性、创新性课程。经过对实践教学内容的优化整合,设置了与嵌入式课程体系相辅相成的实践教学环节,包括基础实验环节、工程基础训练环节和综合实践环节。基础实验环节注重学生对基础知识的掌握,注重基本技能的训练。与相关理论教学环节对应,主要开设一些专业课的实验课,为学生掌握扎实

  的专业基础知识并锻炼动手实践能力提供基础平台。工程基础训练环节主要开设专业课程的课程设计、工程实训及一些校企合作课程,开展带有工程性质的工程基础训练。综合实践环节主要开设学年综合设计(或学年设计)、毕业设计(论文)、学生科技创新项目和科学研究训练等。在设计性和创新性实践中,由学生自己实现软件研发的全过程,充分发挥能动性和主体性,提高勇于探索的创新思维和创新能力。通过实践环节的训练,学生的实践创新能力得到逐步锻炼和提升,并且逐步与企业工程环境接轨,可以顺利地从基础实验平台上升到工程实践平台,达到企业对软件工程师的要求。

  通过将适应企业需要的NIIT教育模式嵌入到计算机软件人才教育中,打破传统的以理论知识的渐进积累辅之以实验佐证为主要特征的教育模式,按照企业实际需求培养应用型和创新型软件工程人才,是软件教育改革的一种有效尝试。探索嵌入式NIIT教育模式,对于培养具有较强动手操作能力、工程实践能力的软件人才,具有一定借鉴意义,对于教育部提出的开展“卓越工程师”培养计划,是一种有效的尝试。

  [3] 李洛,古凌岚,罗佳,等. 印度NIIT软件人才培养模式的探索与实践[J]. 广东轻工职业技术学院学报,2003(9):49-52.

  1.课程体系设置软件工程学科正式确立的两个标志性文件是2004年IEEE推出的软件工程知识体(SWEBOK)和软件工程教育知识体(SEEK)。两个文件内容相近,都包含了软件工程核心类的知识领域、基础类或前导类的知识领域,以及其他相关领域的知识[4]。软件工程研究生的培养从原则上说应遵循上述两个文件,围绕上述知识领域进行教学。但由于这两个文件将软件工程的知识体系划分为知识点,各领域之间必然存在重复和交叠。在课程设置上无法照搬上述两个文件。以SEEK为基础,我们对软件工程的课程设置进行规划。整个课程设置被分为五个层次,分别为工程基础课程、计算机基础课程、软件工程核心课程、扩展课程和实践课程,如图1所示。课程开设顺序大体按照五个层次由低到高依次开展。其中,工程基础课程提供软件工程所需数学理论基础、外语能力培养、软件工程文档写作、论文写作基本功训练。计算机基础课程提供软件开发必须的计算机基础知识,如网络、算法和数据库知识。相对于本科课程而言,此类课程讲授内容更深入全面。软件工程核心课程设置了高级软件工程、软件体系结构和软件测试与质量保证三门课程。高级软件工程侧重于软件分析与设计、软件工程过程、软件开发案例分析。软件体系结构侧重于结构风格、案例研究、共享信息系统、结构描述、结构的分析与评估、特定领域的软件体系结构和流行的软件体系结构等。软件测试与质量保证着重于软件质量的改进,讨论如何提高软件质量的方法。扩展课程包含系列领域知识课程,研究生可根据研究方向选择两门;软件开发工具讲授最新流行的软件开发、过程管理所需要的软件工具的使用,以实践教学为主。软件开发新技术研讨课程以讲座形式开展,教师和学生均可作为一个专题的主讲。实践课程包含校内实践、校外实践和毕业设计三个环节。

  2.培养流程与实施教育部明文规定,专业学位研究生学制原则上为两年,同时要求应届本科生进行专业实践不少于一年。一般来说,研究生在校课程学习时间应有一年左右,加上专业实践的一年,如何合理安排学习计划,在两年内完成培养环节成了一个现实的重要问题。我校以周为单位制定了四川师范大学软件工程专业学位研究生培养流程,如表1所示:上表规划了研究生培养中的几个关键环节,依次为报到入学、课程学习、校内实践、校外实践、开题、毕业设计、论文写作和送审答辩。第一学期研究生主要是课程学习,同时在校内导师指导下开展文献阅读和编程能力锻炼。第二学期前半学期结束理论课程的学习。后半学期和暑期开展校内实践和毕业设计开题工作。第三学期研究生到实习基地进行校外实践。从第二学期后半段和整个第三学期,学生在专业实践的同时,需完成毕业设计。从第二个寒假开始直到第四学期前六周,研究生完成毕业论文的初稿。从第七周开始,进行论文修改、、盲评和答辩工作。从培养流程表可以看出,这种安排具有两个显著特点。一是理论课程学习安排在一个半学期完成,二是实践课程分为校内实践和校外实践。研究生理论课程学习任务并不重,完全可压缩到一学期半,同时可为实践提供更多时间。校内实践非常有必要。由于是省属高校学生大多能力一般,为保障学生进入企业能融入研发团队从事技术工作,必须先期培训其实践能力。这种安排时间较为紧凑,也比较合理,符合专业学位研究生侧重于实践能力培养的要求,也在两年的学制内确保了研究生的实践时间不少于36周。

  软件开发能力是软件工程专业硕士必备的核心能力,其能力培养既是对前端课程学习效果的检验,也是后端毕业设计和就业的必然需要。我校将软件工程专业硕士实践能力培养融入了众多环节。从前期的实验型课程教学,到中期的校内实践、再到后期的校外实践和毕业设计。实验型课程教学解决软件设计开发的基础技能,校内实践解决中小规模软件设计开发能力,校外实践和毕业设计解决中大规模软件设计能力。

  1.实验型课程教学包含软件工具的使用训练、软件开发环境的搭建、软件开发案例分析和新技术研讨。软件工具的使用训练学生单个软件开发工具的使用,如项目管理软件Project、开发文档化软件Rational、软件测试工具LOADRUNNER、QTP、TD等。由于这些工具结构分散,还需进行开发环境的搭建训练。开发环境搭建训练内容一为搭建基于微软的VSTS和VisualStudio的开发平台,适合.net方向;内容二位、为搭建基于IBMRSA和Eclipse的开发平台,适合J2EE方向。软件开发案例分析中研究生将自己放在决策者的角度来思考项目所涉及到的具体问题,增强了学生的实际应对能力。新技术研讨促进学生或主动或被动地掌握了一些新兴技术,拓宽了技术领域。

  2.校内软件开发实践采用项目驱动形式开展。要求研究生必须申报各类实际的软件开发项目,如四川省苗子工程、学校研究生科研创新项目、学院研究生科研创先项目。研究生可组织本科生参与项目实施,但必须任项目组长,在项目中担任核心角色,完成软件需求文档审定、软件架构设计、软件详细设计、大部分编码工作、测试方案制定等重要工作。

  3.校外软件开发实践在上述环节经历后,研究生已经掌握中小规模软件开发的基本技能,此时将研究生派到实习基。

Copyright © 2021-2023 雷火电竞(中国)平台网站 版权所有
电 话:13298323885    手 机:13298323885   传 真:13298323885    E-mail:admin@niukid.cn
地 址:河南省郑州市金水区农科路25号院2号楼18层1807号
豫ICP备2021004807号

扫一扫关注微信公众帐号

免费咨询 投诉建议