时间:2023-05-28 09:24:40
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件开发基础知识,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:高职;软件开发课程;虚拟实训;实践教学
中图分类号:G712 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02
一、引言
为培养应用型和技能型软件开发人才,在高职软件技术专业中实施三阶段技能递进培养模式,该模式将技能培训分为基本技能积累、专业核心能力培养和综合技能培训三阶段。基本技能积累阶段包含培养学生基本操作技能和编程技能的课程,如程序设计基础等课程;专业核心能力培养阶段包含培养更高一级专业能力的课程,如桌面应用程序开发、web应用程序开发等课程;综合技能培训阶段是在前两个阶段的基础上,开展以提高职业行动能力为目标的综合技术应用训练。
学生在教学阶段递进过程中需要通过大量实践掌握软件开发技能,因此每一门专业核心课程都设置相应的实训课程,这些课程与综合技术应用训练都是以软件开发项目为载体,通过实训,使学生提高实践能力、积累实际软件开发经验。为实现实践教学过程与软件开发过程的对接,必须采用相适应的教学模式以及提供合适的软件开发实训环境。由于培养费用、实践场地的限制,让每个学生都走上实际工作岗位参加真实环境中的项目开发存在很大的困难。在软件开发实训课程中采用基于虚拟实训的实践教学模式可以很好的解决上述问题,虚拟实训作为一种打破时间、空间限制的实训方式在节约教学投资、优化教学情境和实现资源共享等方面均起到十分重要的作用。
二、构建基于虚拟实训的实践教学模式
(一)构建思路
根据对软件开发人员岗位需求的调研,软件产品开发工作过程包括项目立项、需求分析、设计、编码、测试等一系列工作。工作任务对工作和技术的要求为熟悉软件开发流程,掌握相关开发技术,具备良好的代码编码习惯及技术文档编写能力,有较强自学能力、分析和独立解决问题的能力、团队合作精神和沟通能力。
为达到学习过程与工作过程的一致性,引入虚拟公司形式,采用虚拟环境与真实项目相结合、虚拟员工与真实管理相结合的方式,构建基于虚拟实训的实践教学模式。在学校的实训室中,模拟公司的工作环境,以真实项目为载体,按照公司的软件项目开发流程完成项目开发,缩短学生所学知识和应用的距离。通过教师学生员工化,模拟公司开发部的组织结构,教师担任项目经理的角色,完成岗位相应的工作,包括协调人员配置、制定项目解决方案、监控项目执行、提供技术指导、组织项目评审。学生担任开发部普通员工的角色,在软件开发员岗位上完成项目开发各阶段任务,在项目实践过程中熟悉规范的软件开发流程,掌握高效的软件项目开发方法和技能。
(二)内容结构
基于软件开发岗位工作任务的要求,构建具有“工学结合、校企结合、虚实结合”特点的虚拟实训教学模式。该模式主要由四部分组成:知识培训、项目实施、项目管理和项目评审。各组成部分涉及三大类角色:项目经理(教师)、项目组长(学生)、项目成员(学生),项目经理负责完成知识培训和项目管理,项目组长和项目成员负责项目实施工作,项目经理、项目组长和项目成员共同完成项目评审。
知识培训部分:包括专业基础知识、实训项目涉及的关键技术与知识以及项目应用领域知识的培训。专业基础知识培训包含软件工程基本知识、特定语言的代码规范、团队开发规范、技术文档编写、软件测试用例的执行和记录等项目开发支撑知识。关键技术与知识的培训由项目经理根据课程目标和项目特点展开,包括关键技术和常用架构的学习、企业最新技术和开发工具的引入。领域知识培训是指项目应用领域背景知识的介绍,例如财务管理系统的开发背景涉及金融财会的相关知识。
项目实施部分:项目实施是虚拟实训教学的重要组成部分,包括实训任务分解和项目实现。项目组接受来自项目经理的实训任务,由项目组长进行任务分解并分配到各项目成员。项目成员按照企业软件开发流程执行项目实施各阶段的典型工作任务。
项目管理部分:项目管理包括进度控制和过程检查两部分,由项目经理实施以保证实训项目按实训计划、实训大纲的要求如期完成。项目经理指导项目组长制定项目开发计划,根据项目计划监督各组的工作进度。过程检查部分包括设定过程检查点以及阶段通过标准,项目经理按照通过标准审查阶段成果,确保项目完成质量。
项目评审部分:项目评审部分由项目演示交流和项目考核两部分组成。在项目演示交流环节,各项目组介绍开发过程、演示项目运行结果、进行项目答辩。在项目考核方面,采用多元化的考核体系,注重对学生实训过程的评价,在项目经理考核的基础之上,参照项目组长评价,得出最终评价结果。
(三)应用过程
关键词:软件工程教学;案例教学法;问题式教学模式;层次化实践教学
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)02-0042-03
软件工程是计算机科学与技术专业开设的一门核心课程,学生掌握软件开发过程和主流的软件开发方法是软件工程课程教学的基本目标。受教学资源、既定培养方案、学生个人条件等诸多因素的影响,软件工程课程教学中还存在一系列问题。我们根据软件工程课程特点,在近几年的教学实践中,对软件工程课程的教学内容、教学方法、实践教学方式等进行了逐步调整和改进,解决了软件工程课程教学中存在的部分问题。
一、软件工程教学中的问题
软件工程是一门伴随着软件危机的出现而发展起来的、集工程性和应用实践性为一体的课程。由于软件规模不断扩大、软件环境更迭频繁、软件危机的表现形式多样,致使软件开发的新方法、新技术层出不穷,软件工程课程的内容处于一种不断改进和发展的状态。但目前软件工程教材内容相对滞后,且多以软件开发理论和设计原则的形式呈现,软件开发案例等应用性内容偏少。在教学过程中,受教材内容影响,教师习惯从软件开发理论、软件设计原则出发安排教学内容,忽视软件开发案例在教学中的支撑作用,教学内容与实际应用脱节。软件开发过程包括软件体系结构设计、数据库系统设计、应用程序设计、软件系统实施等多个环节,所以软件工程教学内容还涉及除软件工程之外的其他多门软件类课程。受教学资源和课程计划学时等因素的制约,软件工程的教学内容往往缺乏相关软件类课程之间的实质性联系,且实践教学内容和时间相对不足。加之学生少有软件项目开发的机会和经历,致使学生感觉软件工程课程内容难以理解、不够实用,缺乏整体感和系统性。针对上述问题,我们将新的教学内容注入软件工程课程;通过案例教学强化软件工程课程的实用性特色;以层次化方式组织实践教学,使学生在软件开发基本技能、综合分析问题能力、软件系统开发经历、团队协作意识培养等方面得到系统训练。
二、软件工程教学的改革思路
1.调整教学内容、注入教学案例。在教学内容方面,对较陈旧的教材内容进行精简,并增加与现代软件开发方法和技术紧密相关的教学内容。针对软件工程教材内容普遍重视理论、实用案例不足的状况,将案例教学法[1]引入课堂教学中,通过案例分析对抽象内容进行诠释,帮助学生理解软件开发理论和原则。
2.贯通学科知识、突出综合特色。软件工程课程内容覆盖面较宽,与数据库系统原理、程序设计语言、算法设计与分析等软件类课程内容交织,为了实现相关课程之间内容的贯通、拓展学生的学科知识、提高学生综合分析和解决问题的能力,将专题学习(Project-Based Learning)[2]、任务学习(Task-Based Learning)[3]和基于问题的学习(Problem-Based Learning)[4]等教学方法不同程度的引入课程教学中,突出软件工程课程的综合性、实践性特色。
3.拓展实践环节、培养工程能力。软件工程实践教学直接影响学生的软件开发能力,学生软件开发能力的提高是一个循序渐进的过程。在常规的软件工程课程培养方案中,主要安排了基础实验内容,对学生的工程化意识和综合实践能力的培养重视不够。采取分层次、分步骤安排实践教学内容,由基础实验逐步过渡到综合实践的教学方式,可以将软件工程学科概念和学生的软件项目研发能力逐步整合在一起,使学生在软件工程实践过程中逐步掌握学科知识、提高软件项目的分析设计和实施能力。
三、软件工程教学改革的实践
1.课堂教学中的案例教学。案例教学可以强化软件工程理论与实际应用问题的结合。通过典型案例分析,可以对抽象的软件工程原理和准则进行直观诠释,帮助学生理解课程内容。
教学案例通常不是孤立的个案,一组精心设计的教学案例可以帮助学生理解基础知识、掌握基本技能、提高运用知识的能力。以软件需求建模为例,在讲述软件系统行为模型的描述工具状态转换图时,使用几个不同的教学案例,由浅入深地分析状态转换图的作用、使用规则以及如何描述系统的行为三个方面的问题。首先,以学生比较熟悉的操作系统中的一个进程为例,通过状态转换图形象的描述了进程的就绪、运行、等待和完成四个状态及其转换关系,着重说明状态转换图的作用。第二个案例是机票预订系统的行为模型创建,介绍状态转换图的画法规则。机票预订系统行为涵盖机票查询、机票预订、订单支付等几个分支,比较完整地展现了状态转换图中的图符及使用规则。实际的软件项目通常比较复杂,软件需求建模要考虑多种条件、各种异常状态,所以将复印机控制程序作为第三个案例,其状态转换图包括复印机正常工作流程、中断处理流程(比如复印过程中复印纸用完等情况)、硬件故障处理流程等几种系统行为。
2.问题式教学模式的运用。软件开发过程是一个综合性的系统工程。软件工程课程内容与多门先修的软件课程密切相关,软件开发项目是一个多学科贯通的综合实践问题。对于软件工程课程,从教学内容到教学形式都应该倡导调动学生的主动学习情绪,即学生能够基于自己的思考和实践解决问题。我们在软件工程教学改革实践中,提出了一种主动式、知识探究型的教学模式——问题式教学模式。问题式教学活动中,教师依据课程内容和学生的知识结构、设计具备一定挑战空间的非良构问题;将学生组织成学习团队;学生通过分析、解决紧密联系实际的非良构问题来探究问题背后隐含的概念和原理、拓展学科知识、提高实践能力、培养团队协作意识。[5]问题式教学方法注重教学内容的实用性,在一定程度上激发了学生的学习主动性、强化了学生的软件开发实践能力。
3.实践教学环节的调整。从学生运用软件工程基础知识的能力、系统化的个人职业技能训练、软件项目的开发能力和团队协作意识四个层面出发,将软件工程实践教学划分为基础实验和综合实践两个层次。
基础实验培养学生对软件生命周期组成阶段的理解,重点训练学生对需求分析、软件设计和软件测试阶段相应开发技能和工具的掌握。基础实验的内容偏重于设计型,实验形式又具有验证型的特征。基础实验是课堂教学中案例教学法的延伸和应用,教师在课堂上通过教学案例阐述如何运用软件工程理论、技能和工具;学生在实验过程中,模拟解决与教学案例类似的软件问题,以实践的方式体会和巩固软件工程知识。基础实验强调对每个学生进行软件工程基本技能的完整训练,学生通过实验获得软件开发过程的认知、掌握软件工程的理论和方法,提高个人的软件项目能力。
软件工程综合实践侧重对学生软件项目开发能力和团队协作意识的培养,是一个系统化的工程实践活动,实践内容涵盖软件项目开发的完整过程。学生可以通过综合实践环节获得较真实的软件项目开发经验。
在综合实践环节,教师要为学生提供兼具普适性和创新性特色的综合实践题目。普适性意味着实践题目要具备明确的可操作性,学生能够通过综合实践活动体验软件项目开发的基本规范、经历软件开发的完整过程、巩固软件工程理论知识和技能。所以综合实践题目应该与现实中的实际需求密切相关,这类需求明确具体,学生的感性认识深刻。考虑到学生组织成不同的软件开发团队、每个团队要完成各自独立的软件项目开发工作,实践题目还应该具备在知识需求上基本相同、但应用背景不同的特点,使学生容易借鉴类似的软件开发案例、从中汲取直观具体的软件设计和实现经验。题目的创新性特色体现在软件开发技能方面引导学生温故知新、举一反三;即对满足普适性要求的实践题目,进行适当的需求扩展和功能延伸,要适当保持问题的非良构性、保留一定的不确定性和疑点,留给学生思考空间。在综合实践题目的创新性层面上,学生需要在问题的牵引下去适当学习专业以外的知识、搜集提炼信息、补充项目本身缺失的条件,最终制定可行的软件项目实现方案并解决软件实施问题。综合实践题目的创新性特点,可以在一定程度上激发学生的创造性思维潜力、扩展学生的专业视野。
软件工程综合实践环节是学生对软件开发过程的模拟体验,现代软件开发工作多以团队协作方式进行。所以对学生而言,需要组建软件项目开发团队并进行成员角色分配。组建项目团队时要考虑学生的认知优势、学习习惯、学习兴趣、动手能力、逻辑思维能力,性格特点等因素,引导学生按照既发挥个人特长、又优势互补的原则进行团队组建和工作分工。
四、结语
将精心设计的典型教学案例注入软件工程教学内容中,可以有效改善软件工程教材内容偏重软件开发理论和软件设计原则、弱化软件开发实践的状况。知识探究型为主要特点的问题式教学模式可以激发学生的学习主动性、拓展学生的学科知识、提高学生综合分析和解决问题的能力。基础实验与综合实践相结合的层次化实践教学方式,将学生的软件工程基本技能和软件项目研发能力整合在一起,使学生在软件项目的分析设计和实施能力的训练、团队协作意识的培养方面获得完整体验。
参考文献:
[1]Hay·P,Katsikitis·M.The expert in problem-based and case-based learning:necessary or not?[J].Medical Education,2001,35(1):25-30.
[2]Robert Michael Capraro,Scott?W.Slough.Project-Based Learning:An Integrated Science,Technology,Engineering,and Mathematics(STEM)Approach[M].Sense Publishers,2009.
[3]B·R,Simone Grin Verlag.New Media and Task-Based Teaching/Task-Based Learning:Web Quests[M].Grin Verlag,2010
[4]Boud·D& Feletti,G.I.(eds.).The Challenge of Problem-Based Learning,2nd Ed[M].London:Kogan Page Ltd.,1997.
[5]卢莹,林荫.问题式教学模式研究[J].计算机教育,2011,(14):98-101.
[论文关键词] 企业信息化 信息管理与信息系统 企业资源计划 ERP沙盘
[论文摘 要] 本文通过分析企事业单位信息化建设人才的需求,探讨高校信息管理与信息系统专业人才职业定位,研究信息管理专业人才知识体系构成,提出信息管理专业人才培养新模式,为信息管理与信息系统专业人才走出就业瓶颈提供可参考的人才培养新思路。
1现状分析
高校的专业设置受到社会分工的直接影响。一般说来,高校的专业设置主要以满足社会已有专业分工为原则,使大学生一毕业就能很好地适应专业工作岗位。
然而,信息管理与信息系统(以下简称信息管理)专业的设置却有些特殊。中国信息技术发展与应用起步较晚,远远落后于发达国家。为了尽快与发达国家接轨,加快国家信息化建设的步伐,在社会专业岗位并不清晰的情况下,中国高校纷纷开设信息管理专业。
从20世纪80年代开始,信息管理专业从无到有,发展非常快,至今已遍布全国各大高校。信息管理专业的职业定位从建立至今始终处于探索状态,虽然国内外学者一直在研究探索信息管理专业的教学体系、职业定位,但是大多没有系统化地从信息管理专业社会职业定位的角度来反思学生的知识构成与专业技能,使得教学体系的改革始终与学生就业脱离,没有从根本上实现信息管理专业学生专业培养与将来就业的直接接轨。
从理念上说,信息管理专业是一个管理学与计算机科学交叉的专业,所学的课程一般包括管理学相关课程、计算机相关课程和信息管理相关课程等。学生的就业方向可以是管理、计算机和信息管理,侧重在信息管理。
但从实际就业情况来看,信息管理专业毕业生应聘工作岗位时,往往会出现这样的情况:管理技能不如管理专业的学生,计算机技能学生不如计算机专业的。人才市场上提供的信息管理岗位需求比较少,且多数是要求从事电子化办公秘书工作,没有多少专业技能可言,这样的岗位各专业的本科生都可以胜任。由此反映出现行的信息管理专业在职场上没有体现其特有的、有别于其他专业的自身职业素质和技能,这是影响信息管理专业实现可持续发展的关键问题。
2信息管理专业人才职业定位分析
教育部在《普通高等学校本科专业目录和专业介绍》中对信息管理与信息系统专业的业务培养目标做了明确规定:本专业培养具有现代管理学理论基础、计算机科学技术知识能力,掌握系统思想、信息系统分析和设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门、工商企业、金融机构、科研单位等从事信息管理及信息系统分析、设计、实施管理和评价等方面工作的高级专门人才。
根据上述培养目标来检索具体的社会岗位需求,发现国家企事业单位或部门在招聘的时候很少提供信息管理专业岗位需求,即使提到也是等同于计算机相关专业要求。
国家企事业单位信息化建设已经进入高速发展轨道,信息化战略地位、信息化推进组织体系、 信息化政策规划体系、信息化基础设施等已初步建立。信息化建设已经成为衡量企事业单位核心竞争力的重要指标,我国现阶段正处于信息化建设期,毫无疑问,社会需要信息化建设人才。
以企业信息化建设为例,其信息化人才需求包括技术领域、制造领域、管理领域等方面信息化建设人才,同时需要计算机硬件系统购置与维护、软件系统开发与维护、网络环境维护、信息化建设规划等方面人才。
技术领域信息化建设主要要求计算机辅助设计专业;制造领域信息化建设主要要求计算机辅助制造专业或自动化专业;管理领域信息化建设一般要求计算机及相关专业。
很明显,信息管理专业岗位应该在管理领域(覆盖政府机关、工商企事业单位等各行业管理领域)信息化建设,重点要放在信息化建设规划,管理信息系统分析、设计与开发,信息系统软件引进、实施与维护上。
从我国信息化建设现状来看,企业内部在信息化建设方面的岗位需求没有进行专业细分,它将管理信息系统软件的分析、设计、开发、引进、实施、维护和信息管理等工作需求统归为做软件。因此,企业招聘应届毕业生的入门要求就是能够编程,包括企业内部覆盖销各职能部门的信息系统软件,也包括企业各层次网站系统开发。而政府机关、事业单位则以网站系统开发和工作流管理为主。
也就是说,信息管理专业人才进入企事业单位的基础技能是软件开发,这一点与计算机软件专业毕业生就业要求相近。但在开发过程中,信息管理专业人才优势逐渐显露出来。即在系统需求分析过程中,信息管理专业学生更容易理解管理者的要求,对管理理论思想方法的掌握使其能够在理解现行管理系统的同时提出更高的管理信息化建设思路。
根据上述分析,信息管理专业人才要在信息化建设中找到合适岗位,软件开发技能培养是未来就业的敲门砖,而管理理论思想和方法的掌握则是其未来成为企业CIO的奠基石。
3信息管理专业人才知识体系构成
信息管理与信息系统专业培养的专业技术人才既不是计算机软件开发人员,也不是管理人才,它不同于计算机科学与技术专业,也有别于工商管理等管理专业。它的专业知识体系是二者的融合,与二者有很多交叉,又有很大差别。在基础理论上它强调管理学基础,在应用技能上则强调信息系统软件开发能力,编程能力将是其走入社会成功就业的基本要求。
应对现行的社会需求,信息管理专业人才知识与能力的构成至少要包含下述几个方面:
(1) 经济学、管理学等方面理论知识
要求信息管理专业学生学习掌握经济学的基本理论与分析方法,掌握企业管理相关理论知识,知识面涉及企业计划、采购、生产、财务、销售、人力资源等多方面管理理论知识。
(2) 计算机科学与技术方面基础知识
要求信息管理专业学生学习掌握计算机基本组成、操作系统、数据结构、数据库原理、程序设计基础、网络基础知识等。
(3) 管理学思想理论方法综合应用能力
要求学生能够综合运用所学的管理学理论与方法、经济学理论与方法、运筹学方法、应用统计学方法解决实际管理问题,这需要在教学过程中以案例引导方式培养学生自主思维、自主学习、自主解决问题的能力。
(4) 信息系统软件开发能力
要求学生在掌握计算机科学与技术知识的基础上,综合运用数据库技术和相关开发工具,实现信息系统软件的开发。
(5) 应用信息技术解决管理问题的能力
要求学生能够综合分析现行管理存在的问题,借助信息技术的应用,结合管理流程再设计,提出管理信息系统综合解决方案。
作为一个从事管理信息系统分析、设计、开发和维护的信息化建设人才,要掌握必需的管理学理论知识,并在此基础上强化信息系统分析、设计与开发能力。对于信息技术的掌握,不能只是认识和了解,必须经过信息系统软件开发的磨炼,形成系统化应用信息技术的能力,才能支持学生进入信息化建设行业中,胜任信息化建设规划,管理信息系统分析、设计与开发,信息系统软件引进、实施与维护等信息化建设工作。
4建立信息管理专业人才培养新模式
为了能够适应当前社会需求,信息管理专业人才培养必须以就业为导向,将理论教学和实践教学密切结合,将信息管理专业学生培养成为既有扎实的理论知识,又有一定专业实践技能的跨学科复合型人才,真正实现信息管理专业人才培养与社会岗位需求的零距离对接。 信息管理专业人才培养需要分阶段确定培养目标,通过各阶段学习与积累,逐步达到人才培养目标。
(1) 信息管理专业管理学基础能力培养
以理论教学为主,结合案例教学,培养学生管理学基础。参考教育部规定,开设下述课程:经济学、会计学、市场营销学、生产与运作管理、组织战略与行为学、管理学原理、应用数理统计、运筹学等。
(2) 信息管理专业管理运营技能培养
以提高学生的运营管理方面专业素质为目标,在掌握管理学基础知识的基础上要求学生掌握经营管理的综合运用能力。开设ERP沙盘模拟演练实验课,通过实际运营的模拟演练,将学生对理论知识的掌握上升到实际运用阶段。同时,通过运营能力的竞赛激发学生专业学习兴趣,培养学生系统管理思想,提高学生综合运用管理知识的能力,使学生建立立体的管理学思维方式。
(3) 信息管理专业计算机基础能力培养
在管理学基础知识培养的同时,培养学生计算机基础能力,主要开设下列课程:计算机导论、数据结构、操作系统、数据库原理与应用、程序设计语言、网络工程、软件工程等。
以提高学生的计算机技术方面专业素质为目标,要求学生掌握简单软件开发能力。结合信息系统分析与设计课程,建立软件开发基础实验室,通过对数据库、程序设计语言的综合运用,提高学生对计算机技术的基础应用能力。
(4) 管理信息系统分析与设计思想的培养
在管理学基础知识和计算机基础能力培养的基础上,开设企业资源计划(ERP)原理与应用课程,开设ERP系统操作实验课,培养学生将管理学知识与计算机知识综合应用能力,强化学生管理信息系统集成设计思想,提高管理信息系统分析设计能力。
(5) 管理信息系统软件开发能力的培养
开设信息系统分析与设计课程,开设软件开发实训课程,要求学生完成一个管理信息系统的开发,提高学生的软件开发能力。结合学生的毕业设计,要求学生完成管理信息系统分析、设计、实施全过程中,使学生具备信息化建设人才岗位需要的能力。
5结束语
当然,信息管理专业人才培养新模式的推出将对旧教学体系有很大冲击,特别是对本专业专任教师的知识构成和技能要求非常高。
学生专业思维方式的形成是通过每一门课程的学习、每一位授课教师专业思维方式的渗透而逐步形成的。这涉及专业人才队伍知识构成的改变,涉及整体教学课程的调整,对师资力量提出了有别于管理专业和计算机软件专业的、更高的专业技能要求。
信息管理专业专任教师的知识构成要兼有管理学知识和信息技术技能,同时要求进行过管理信息系统软件开发,否则很难在学生的4年学习过程中逐步引导学生建立系统分析、设计、实施,用信息技术工具解决管理问题的完整的、系统化的专业思维方式。特别是学术带头人应该具有实际管理信息系统开发经验和大型软件实施经验,能够从专业发展角度引领信息管理专业人才培养方向,达到高质量、高目标的专业人才定位。如果以管理学方面教师或计算机方面教师作为学术带头人,由于其专业思想的局限,会导致专业发展向某一方面侧重,造成信息管理专业学生只懂管理、计算机相关技能很差,或者有一定的计算机相关技能、管理理论基础却很薄弱的情况。
另外,在实际教学过程中,虽然将编程作为学生的基本技能培养,但更要注重学生的分析与设计能力的提高。编程能力是信息管理专业学生就业的基础,而在信息管理专业人才未来的职业生涯中,能够助其良好向上发展的应该是分析与设计能力。
在当前学生就业形势非常严峻的大环境下,如何最大限度满足社会对专业人才的需求,合理调整专业人才培养体系,实现教育与就业的近距离对接,这是当前高校专业教育必须思考的问题。从本科生职业定位入手,研究适合学生专业的社会需求,明确岗位所需要的专业技能,针对不同学习阶段,确定不同的相互关联的人才培养目标,形成完整的教学体系,将是未来高校专业人才培养体系调整的新思路,也是解决高校教育与社会就业脱离的人才培养新模式。
主要参考文献
[1] 中华人民共和国教育部高等教育司.普通高等学校本科专业目录和专业介绍[Z].北京:高等教育出版社,1998.
[2] 胡昌平.面向21世纪的中国信息管理类专业教育[J]. 情报学报,1999,18(1):3-9.
关键词:软件工程;实训;课程体系
实训是一种新的实践教学形式,最早在职业技术教育中开展,其目的是解决毕业生走向职业岗位时达不到岗位要求的问题。由于职业教育的定位是面向岗位的职业技能教育,培养生产一线的操作人员,所以实训教学以系统地训练岗位技能和技术运用为主。近几年,高校为了解决毕业生由于不能适应工作岗位技能要求导致就业不畅的问题,加强了以培养学生实践能力为主的实践教学改革。许多院校的软件工程类专业(方向)在学生进入实习之前,增加了实训教学环节。由于对实训教学目标定位的认识不同,导致在实训的时间长度、内容、要求和管理上有很大差异,对实训教学的研究和建设投入不足。本文结合我校计算机科学与技术专业(软件工程方向)人才培养的实践,以及我们对本科软件工程实训的认识,介绍我校软件工程实训的目标定位和对相应课程体系的探索、实践情况。
1软件工程人才培养课程体系
我校是以教学为主,培养应用型人才的地方本科院校。我校的计算机软件工程人才培养定位是:“掌
握计算机科学与技术学科的基础知识与技能,具有一定的工程技术基础和较强的实践动手能力,具有创新精神、竞争意识和良好的团队合作能力,能够适应技术进步和社会需求变化,能够从事计算机应用软件开发与管理的高素质软件工程人才”。根据国家对本科人才培养“宽口径、厚基础、强能力、高素质”的总体要求,和教育部高等学校计算机科学与技术教学指导委员会的软件工程专业规范[1],我们构建了简称为“211”结构的课程体系,它主要包括大学基础教育、专业教育、职业技能与技术应用教育、综合素质培养四大板块。即在大学一、二年级,用两年的时间进行大学基础教育,包括人文社科、身心健康、工具(外语、计算机、文献检束等)、专业基础等,以学生长远发展需要,提升基础知识层面和综合素质,为后继的专业课程学习做铺垫为目标;三年级进行系统的专业教育,以专业核心知识和基本能力培养为主,以提升学生专业知识层面和专业基本能力为目标,同时开启必要的专业方向课程,为后继的职业技能培养做铺垫;四年级进行面向岗位的专业职业技能培养和技术应用创新教育,以学生就业为目标,其主要的教学形式是实践教学。课程体系结构如图1所示。
图1人才培养课程体系结构示意图
2目前国内软件开发实训存在的主要问题
目前国内开展软件实训的机构主要有三类:企业或软件行业协会投资的社会培训机构;由政府、企业等多方投资建设,独立运营的实训机构;校企合作共建的实训基地,这中间又有两种,一种是以学校投资为主,实训基地建在校内;另一种是学校进行必要的投资,实训基地建在企业。实训开展形式主要有三类:1)学校将实训委托给社会培训机构或企业,由他们负责学生实训教学;2)学校与社会培训机构或企业合作,派出实训指导教师与承担实训教学任务的机构共同实施实训教学;3)由学校自己组织在校内进行实训教学。由于承担实训任务的主体各自的利益目标不同,各自的擅长不同,实训对象所拥有的基础不同和各自对实训的理解不同等多种原因,造成目前软件实训存在以下主要问题:
1) 实训的内容体系设计单一,通常只要求通过训练掌握某项具体的开发平台技术,追求的是程序代码的实现。
2) 用于实训的软件开发项目小,软件开发过程的控制与管理、软件质量控制与保证、团队的合作与协调等软件工程的重要内容和思想体现不出来,使得学生在实训之后,没能体会到软件工程的特点和重要性。
3) 实训指导教师的软件项目开发经验少,工程素质不高,同时缺乏相关的教学经验,不能保证软件工程的思想、技术、方法和要求在实训中得到贯彻落实。高校教师在软件开发的工程能力和经验上缺乏,而来自企业的指导教师在软件工程理论和实训教学方法上存在明显不足。
4) 实训所需的工具、平台等条件不足,不能保证实训目标全部实现。
5) 实训的团队合作、团队目标管理往往被忽略,这使得经过实训之后,学生的团队意识,与人沟通、协调、合作的能力没有明显的提高。
6) 实训中学生对新知识、新技术学习的能力培养没有得到应有的重视和训练,鼓励创新的机制和措施不够,这使得经过实训之后,学生除在具体某项技能方面有所收获之外,在学习能力、技术应用能力、接受新事物和创新意识等方面收效甚微。
3软件工程实训课程体系建设
实训是一个综合、系统的工程,其目的是提高学生的知识、技术应用能力,积累工程实践经验,从而提高职业技能,实现从学生向职业工作者的转化。对于以上存在的问题,我们认为师资、课程体系是核心和基础,实训项目是关键,在干中学,在学中干是行之有效的方法。以下仅就软件工程实训课程体系的建设进行探讨。
3.1目标定位
课程体系反映了对人才培养的知识和能力要求[2]。本科软件工程型人才的实训定位应该从软件开发企业的岗位要求、学生职业发展空间、初步能够适应多种岗位需要等多方面考虑。从学生初次就业的岗位看,软件开发人员的主要岗位有程序员、测试员等。这类人员需要有良好的理解设计和程序的能力,能够在一种开发平台上熟练地进行规范的程序设计和相应的程序测试,能够清楚自己所做工作与他人工作之间的关系,理解自己所做工作在整个(或局部)设计中的作用。从职业发展空间看,软件开发人员经过2~3年的实际工作锻炼,应能够承担软件工程师的角色,承担必要的分析、设计、任务分解、技术指导、协调和管理任务。所以,本科的实训目标定位既要面向现实,又要给学生发展的潜力和意识。我校的软件工程实训的目标定位是提高软件开发程序实现技能,提高软件工程知识、技术应用能力,积累软件工程实践经验,实现从学生向软件职业工作者的转化。具体要求是:
1) 熟练掌握一种软件开发平台及相关技术,能够用它们进行规范的程序设计。
2) 掌握软件测试的方法,初步能够设计测试方案,用测试数据集完成相应的软件测试工作。
3) 理解软件生命周期中各环节的主要概念,初步掌握各环节的主要工作、所采用的技术和实施方法,初步掌握有关工具的使用,能够用它们完成相关的分析、设计工作。
4) 了解软件开发的过程控制、质量保证和管理的方法和特征,理解它们的重要性。
5) 理解团队及各种角色的作用,掌握交流勾通、协调合作的必要方法,形成团队意识。
6) 形成快速学习专业知识和技术的能力,查阅相关技术资料(含英文资料)的能力。
7) 了解、体验软件企业的工作环境、形式和要求。
3.2构成原则
实训以项目为载体,以软件开发的工作流程为驱动实现知识、技术、能力和素质的全面提高。实训课程体系作为实现实训目标,制定实训计划的基础和核心,应坚持以下原则:
1) 以企业实际需求为导向,以能力培养为核心,以学生适应软件技术岗位为目标,以职业岗位技能为重点,兼顾长远发展。
2) 注重知识、技术、能力、素质的协调发展,使学生通过实训既学习了知识和技术,又提高了应用知识、技术的能力,升华了自身的素质。
3) 以职业技能训练为重点,突出技术应用能力培养,强调在应用中创新,通过解决问题来体现技术和人的价值。
4) 课程体系应具有开放性、灵活性,能够即时反映软件技术的发展。
5) 课程体系要与人才培养方案的课程体系衔接,有明确的应用软件开发领域,体现自身特色。
3.3课程体系内容
我校的计算机专业软件工程方向人才培养计划课程设置以计算机科学优先,接着是软件工程基础和软件开发平台技术基础课程,将软件工程的技术与方法、软件开发的管理、软件开发平台技术的深化、职业综合素质等方面的课程统一综合到实训课程体系中;以互联网应用软件开发为平台,以管理信息系统和电子政务/电子商务为应用领域。实训过程以软件项目开发工作流程为主线,内容涵盖项目开发的全过程,保证学生能够体验到软件开发的全过程。实训以职业技能和技术应用为重点,教师讲解不超过总时间的20%。软件工程实训课程体系如图2所示。
1) 在实训之前开设软件工程与技术基础课程群。它主要是为学生进入实训之前奠定必要的技术、
图2软件工程实训课程体系示意图
工程和应用领域知识基础。主要课程有软件工程导论、面向对象设计方法、信息管理系统设计与开发、C#语言程序设计、.Net架构程序设计(或Java语言程序设计、J2EE架构程序设计)、XML语言、Linux操作系统(或Unix操作系统)、电子商务、电子政务等。
2) 开发技术平台课程群。它是在.Net开发平台(或J2EE开发平台)基础之上进一步深化、细化有关技术,提高在开发平台上的软件实现能力的一组课程。主要课程有人机交互与界面设计、数据库程序设计、数据接口程序设计、Web Services设计、应用安全程序设计、动态服务组合、新技术介绍等。
3) 软件工程技术与方法课程群。它是一组提高学生软件工程意识、技术和方法的课程,是学生今后向高层次软件职业人员发展必备知识和能力。它培养学生具有软件工程的理论知识,能够应用它们指导软件开发的实践。要求学生掌握常用的需求分析与设计工具,具备一定的软件分析与设计能力,了解软件开发的管理过程和技术。主要课程有:软件需求分析、软件设计与体系结构、软件详细设计、软件测试与质量保证、软件过程与管理、软件分析与设计工具等。
4) 职业综合素质课程群。它是一组提高学生非技术方面的综合素质的课程。它培养学生团队意识、沟通合作能力、专业资料获取与专业外语应用能力,使其具有良好的职业道德和一定的工程经济概念,了解现代软件企业的运行与管理。主要课程有团队激励与沟通、工程经济学概念、信息社会与职业道德、软件成熟度模型与软件企业管理等。
在课程体系中,开发技术平台课程群是学生实习、初次就业体现自己的技术和能力的主要内容,同时它是更好地理解、掌握软件工程技术与方法中诸课程的基础。所以,它是实训的重点。软件工程技术与方法是中、高级软件职业人员必备的知识和能力,需要在大量的工程实践中去提高认识和积累经验。它在实训中以体验、领悟为主,重点是训练分析、设计的方法和相关文档的规范表达。职业综合素质课程群的知识对于学生步入社会,在职场上取得成功很重要,并且它是实训取得成功的基础性知识,要贯穿整个实训过程。
3.4评价指标
实训所包涵的内容和重点是实训成功的核心和
基础。为了科学评价与不断优化实训内容与重点,通过向行业专家咨询和实践,我们初步建立了一个实训课程体系评价指标体系[3]。它主要由职业技能、工程实践、专业知识和职业综合素质几个方面构成。评价指标体系如图3所示。
图3课程体系评价指标体系
4结语
我校从2005年开始,通过与微软合作,引进微软职业技术教育课程,开始在计算机本科教育中用一定的时间进行职业技术教育。通过对两届学生的教学实践,我们感到微软职业技术教育课程相对本科人才培养存在着软件工程方法、技术方面内容薄弱,而微软
开发技术内容过细的问题。2007年,我们通过对有关教学内容的调整补充,整合成软件工程实训。实训大大提高了学生软件开发技术的掌握和应用能力,增强了学生的就业能力和质量。2007、2008届参加软件工程实训的学生,90%以上到软件开发企业就业。学生的知识结构、技术水平和能力、综合素质等得到企业好评。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M]. 北京:高等教育出版社,2006:12.
[2] 舒蔚,万常选. 计算机专业程序设计课程体系架构的研究与实践[J]. 吉林大学学报:信息科学版,2005(8):1-4.
[3] 韩春燕,高晓兴,姜慧妍,等. 软件工程专业课程体系优化方法研究与实践[J]. 计算机教育,2009(4):70-73.
Research on Curriculums in Software Engineering Training
YUAN Lei, HUANG Jian, NING Bin
(Mathematics and Computer Science College, Xiangfan University, Xiangfan 441053, China)
关键词:软件工程;课程体系;培养方案
软件工程教育兼属科学教育和工程教育范畴,软件工程的科学教育属性主要是引导学生对人类意识与智慧进行科学理解、增强运用软件本质特性(构造性与易演化性)和解决具体问题的能力;而软件工程的工程教育属性主要是引导学生综合应用计算机科学、数学、管理等科学原理,借鉴传统工程的原则、方法,提炼和固化知识,通过创建软件来达到提高质量、降低成本的目的。然而,McKinsey Global Institute2005年10月发表的一份报告称,我国2005年毕业的60多万工程技术人才中适合在国际化公司工作的不到10%,主要原因是中国教育系统偏于理论,学生在校期间几乎没有受到Project和团队工作的实际训练,这对我国高等院校工程教育改革与创新提出了挑战,也为软件工程专业建设指明了方向。
合理的课程体系是高等院校保证培养目标和形成办学特色的重要手段。目前,我国1900多所普通高校中虽有100多所院校开设了软件工程专业,但与当前软件工程技术发展差距较大。为了培养出既有理论知识又有应用技能的工程型实用软件人才,软件工程专业课程体系必须进行改革。对此,本文结合CC2005、SE2004、SWEBOK、国内软件工程专业课程设置现有的研究成果,探索软件工程专业本科教学课程体系建设问题。
1 软件工程专业课程体系设计策略
计算学科本科教学常用的课程体系设计策略主要划分为:课程启动策略、课程组织策略、特色课程设置策略。课程启动策略主要包括:1)围绕算法设计展开的算法优先策略;2)自底向上展开的硬件优先策略;3)从计算机导论展开的广度优先策略:4)强调编程能力的程序设计优先策略;5)强调系统使用命令优先策略;6)从面向对象展开的对象优先策略。
课程组织策略主要有:1)基于主题的组织模式,它把知识体系中的每个知识域组织成一门或几门课程;2)基于系统的组织模式,它把每类计算机软硬件系统设置成一门或几门课程;3)混合模式,在课程设计时不考虑区分前两种方法,兼而有之。特色课程设置策略主要依据本校办学特色和研究专长来确定。
由于软件工程教育兼属科学教育和工程教育范畴,其科学属性和工程属性决定了软件工程专业本科教学课程规划,一方面要强调工程性、技术性、实用性、系统性、综合性和复合型,另一方面要强化基础软硬件知识在解决复杂软件构造和应用方面起到的关键作用。对于课程启动策略而言,传统计算机科学专业的课程启动方式并不适合于本专业,但工程优先策略似乎也不适合于没有任何计算机基础的本科生;同样,在课程组织策略上,基于主题的组织模式更多地具有科学研究属性,而基于系统的组织模式又不利于基础知识强化;此外,特色课程设置时,有时会缺乏全面综合考虑,因人设课会造成特色课程系统性差问题。因此,在软件工程专业课程体系设计策略方面,应根据软件工程学科自身属性,综合考虑以上各种策略特点,全局思考,统一规划,避免课程系统性差、教学内容重复和遗漏并存等现象。
2 软件工程专业课程体系架构模型设计
根据软件工程专业本科教学的培养目标及规格要求,其课程体系采用“夯实基础教育、提高系统认知、强化软件开发、推进工程实训”为主线的设计思路,构建了“分层次、互动式、工程化”的课程体系架构模型(如图1所示)。该模型共分为四个层次,即基础知识教育层、系统认知教育层、工程设计开发层和工程实践训练层。各层次不是相互独立的,而是相互关联、相互影响、逐层递进的演进关系。该模型简化了计算机科学核心课程数量,突出基于主题的组织模式,沿着由浅入深、循序渐进的认知路径,力图实现“基础与编程一体化、编程与系统一体化、系统与工程一体化、工程与职业一体化”四位一体的工程型实用软件人才教学目标。
2.1 基础知识教育层
基础知识教育的设计思路,强化学生的基础知识和编程意识,实现“基础扎实和编程意识强”两个目标。基础知识教育层结构具体划分为:数学基础类课程模块、外语类课程模块、软件基础类课程模块、其他公共基础类课程模块。根据各模块自身特点,全面考虑各模块之间的关联性,做好彼此之间的衔接。在课程启动策略方面,主要采取基于基础的编程优先策略。在数学基础类课程模块中确定一门衔接较好的基础课作为软件基础类课程模块的启动,软件基础类课程模块率先启用软件设计基础课程,力图达到“基础与编程一体化”的教学目标。在课程组织策略方面,采取基于主题的组织模式,有利于学生掌握基础理论知识。
2.2 系统认知教育层
系统认知教育的设计思路:强化学生的编程能力和对软件系统的认识能力,实现“编程能力强和系统级认知”两个目标。根据软件工程专业对硬件系统和系统软件的知识要求,系统认知教育层结构划分为:数据库系统类课程模块、网络系统类课程模块、操作系统类课程模块和编译系统类课程模块。在课程启动策略方面,主要采取基于编程的系统优先策略。通过软件基础类课程模块的数据结构等课程和系统认知类课程模块的数据库原理及应用等课程,进一步强化学生的编程能力,并以程序设计为主线引导学生的系统级认识能力,实现“编程与系统一体化”的教学目标。在课程组织策略方面,采取基于系统的组织模式,简化计算机科学核心课程数量,提高学生学习的有效性和对知识的掌握程度。
2.3 工程设计开发层
工程设计开发的设计思路:以工程化方法为手段,依托项目培养学生的“工程”意识,锻炼学生对软件系统的设计与开发能力,进一步强化学生的系统级认识,实现“更完整的系统级认识和软件系统工程化设计开发技术”两个目标。根据软件工程项目开发流程,工程设计开发层结构划分为:软件过程类课程模块、软件设计类课程模块、软件架构类课程模块、软件测试类课程模块、人机交互类课程模块、特色项目类课程模块、可扩充类课程模块。该层综合考虑核心专业课程和特色项目课程设置,基于专业方向设置若干动态可扩充课程,全面考虑课程之间的关联,强调统一设计、统一规划。学生在这个层次必修一些工程设计开发系列课程,选修可扩充类课程,达到“系统与工程一体化”的教学目标。课程启动策略采取基于系统的工程优先策略。课程组织策略采取项目的组织模式,以此来提高学生的软件系统设计与开发能力。
2.4 工程实践训练层
工程实践训练总体设计思路:通过实验训练、专业实习、项目实训、毕业设计等教学环节,依托校内 外实习实训基地,采用校外实习实训、自主实习实训、校内实习实训和外聘软件工程师等形式,强化学生的工程能力,培养学生的职场素质,实现工程与职业一体化的教学目标。工程实践训练层结构具体划分为两大类,一类是实验与实习类课程模块,另一类是工程实训与毕业论文类课程模块。其中,实验与实习类课程模块的具体设计思路,通过基础实验、系统体验、编程能力训练三个环节,进一步夯实学生的基础知识,完善学生的系统级认识,强化学生的开发技能;而工程实训与毕业论文类课程模块的具体设计思路,通过“软件工程项目实训”这个载体,采取“企业+实训+论文+就业”捆绑的运作模式,与多家国内知名IT公司合作,让学生到企业进行实际项目综合训练,并完成毕业论文设计工作,实现理论与实践结合、技巧与职业素质结合的教学目标,同时也为学生就业提供一个良好平台。
上述四个教育层是彼此联系和互动发展的,在课程体系设计中充分考虑衔接性、系统性和创新性。交流、沟通、讲演、写作的培养更多体现在第二课堂科技学术活动中。
3 软件工程专业核心课程设置
3.1 课程设置原则
软件工程专业课程设置遵循六个基本原则,即先进性、灵活性、复合性、工程性、创新性和模块化。1)先进性:课程设置和课程内容需反映国际上先进的软件技术发展成果和软件企业对先进技术的需求,以及相关的基础理论。2)灵活性:课程设置需具有灵活性,应根据软件技术的发展及时调整。3)复合性:课程设置需包括技能、工程、管理等方面的教学内容,使学生具有必要的综合技能和基本素质。4)工程性:课程设置面向软件工程实践,强调工程实践能力培养,使学生能够自觉运用先进的工程化方法和技术从事软件开发和项目管理,具有团队协作精神。5)创新性:课程设置应倡导学生自主学习,并给予必要的指导,从而培养学生自主学习和自我提高能力,以及勇于开拓和善于创新能力。6)模块化:课程应按照模块化准则设计,课程模块设计可以交叉。根据软件技术最新发展、当前市场需求及专业培养方向、学生目前具备的领域知识等,灵活调整课程设置和课程内容。
3.2 核心课程模块设置
1)软件基础类课程模块设有:计算机硬件基础、软件设计基础、数据结构、计算机组织原理、面向对象程序设计、算法分析与设计等课程。2)操作系统类课程模块设有:操作系统原理、LINUX系统基础、嵌入式系统基础等课程。3)网络系统类课程模块设有:计算机网络、网络规划与集成、网络安全检测与防范技术、网络协议与网络软件等课程。4)数据库系统类课程模块设有:数据库原理及应用、ORACLE数据库、数据仓库与数据挖掘技术等课程。5)编译系统类课程模块设有:编译系统原理、编译技术等课程。6)软件过程类课程模块设有:软件工程、需求工程、软件项目管理、软件建模技术UML等课程。7)软件设计类课程模块设有:C++高级程序设计、J2EE与中间件、.NET架构技术、设计模式等课程。8)软件架构类课程模块设有:大型软件系统构造、软件体系结构等课程。9)软件测试类课程模块设有:软件测试技术、软件测试与评估等课程。10)人机交互类课程模块设有:人机交互技术等课程。11)特色项目类课程模块设有:软件工程项目案例解析、大型软件工程项目实训等课程。12)可扩充类课程模块设有:手机游戏开发、网络游戏开发、计算机图形学、嵌入式Linux网络及GUI应用开发、嵌入式Linux驱动开发、手持设备软件开发等课程。
4 软件工程专业培养方案制定与实施
软件工程专业培养方案制定是基于软件与工程的复合,将软件工程与领域应用相结合,强调计算机科学和数学基础的同时,将专业课程重点放在软件新技术和软件工程新技术方面,通过对实践类课程工程化改造,增设软件工程项目实训环节,开设部分技能课程,试图使学生的基础知识、专业技能、创新能力、工程能力和职业素质都能得到全面均衡发展。具体措施如下。
4.1 建立英语为主日语为辅的外语教学体系
根据IT市场的实际需求,软件工程专业培养方案制定,除正常开设四个学期大学英语外,增开两个学期标准目语和一个学期专业英语,坚持外语学习四年不断线,旨在为学生选择日企或对日外包企业就业提供方便。
4.2 建立工程化实践教学体系
建立“四年不断线、三个层次相呼应、两大措施为保障”的工程化实践教学体系。“四年不断线”是指实践环节四年不断线,每个学期至少有一个集中性的实践教学环节,体现“全过程”实践;“三个层次相呼应”主要是从实践教学内容设计上考虑的,包括第一层次教学实验,第二层次课程设计及专业实习,第三层次工程项目实训与毕业设计;“两大措施为保障”主要指教学计划保障和考核制度保障。
4.3 设置专门的实践课程
针对工程化软件人才应具备的个人开发能力、团队开发能力、系统研发能力和设备应用能力,以必修课和选修课形式,开设四类特色化、阶梯状工程实践学分课程,即程序设计类实践课程、软件工程类实践课程、项目管理类实践课程和网络平台类实践课程,构成了系统全面的学生实践能力训练体系。
4.4 提高专业课程教学中的实验课时量
除个别侧重理论教学的专业课程外,80%以上的专业课程包含实验或实习环节,实验或实习成绩占总成绩的30%以上,一部分实践性较强的课程是以上机考试和答辩作为最终考试方式。
4.5 开设部分技能课程
在技能课程中,与该领域内具有国际领先水平的企业在课件共享、教师培训和资源投入等方面展开合作,共同设计、讲授和评估课程。鼓励学生参与企业提供的专业认证考试,或参加国家相应的专业资格考试,对此,学院将计算机网络、Oracle数据库、J2EE与中间件等认证课程纳入本科教学计划中,全面体现学生的“多证多能”。
关键词:应用型;基于项目;实践训练;答辩考核
随着我国高等教育改革的进一步深化,由教育部提出针对在校大学生的创新型人才和创业型人才的培养正逐渐成为应用型院校转型的目标。那么如何让在校大学生具备软件项目开发的技能和知识也是软件工程专业的培养目标之一。培养学生软件开发的应用能力已经成为软件工程专业的人才培养的首要目标。[1]《软件工程导论》课程的教学任务也由原来软件开发理论知识的讲授转变为软件开发基本技能和文档撰写能力的训练和培养,通过学习这门课使学生能够了解软件开发的流程,并且知道在开发的过程中每个阶段都做什么和怎么去做,让学生能够直接进入到项目组里,参与软件项目开发。这样改革的好处是多样的:1.这样除了对学生应用能力进行了培养,而且让学生对软件项目的了解进一步加深,后续为以后的其它专业课的学习也打下了基础;2.在同步开设的其他课程中,进行横向联合,让学生都针对同一项目进行训练,让学生能够学有所用,大大提高了学习兴趣和积极性;3.对各门专业课的教学内容和方式都有所触动,促进了教学改革的深入。目前,国内各个高校的软件专业中都开设有《软件工程导论》这门课。多数学校还是当作一门专业基础理论课来讲授,这样的学校大多是研究型大学,学生基础比较扎实,对枯燥的理论可以接受,但是只学理论没有实践造成的后果是学完就忘,学生只会答题;还有一些学校对《软件工程导论》课程进行了一些改革,比如将理论基于一种开发环境的软件开发,试图将理论和实践相结合,但是多数是面向对象开发方式,理论多实践少,落到实际课堂教学上还是教师说的多,学生做的少,对学生实践能力培养并没有多大的改变。对课程的教学改革主要包括教学内容的改革,教学方式方法的改革,考核方法的改革。
一、教学内容的改革
目前《软件工程导论》课程的教学内容包括:软件开发基础知识,需求分析,总体设计、详细设计、编码、测试[2]、项目管理这些内容,采用的是结构化的软件开发方法。之前我们只讲理论知识,特别是开发过程中的一些技术和软件,但是学生学完即使会做题也不会开发项目。现在,我们将教师实际参与开发的项目带领学生从需求开始分析,进行总体设计和详细设计加入到授课内容中,结合实际的项目开发的内容,把理论和实践相结合。学生边学理论知识,边完成自己的项目,可以将学到的知识应用到项目中,做到学有所用。希望培养学生整体软件开发的方法、软件项目管理能力、软件需求分析能力、数据库设计能力、人机交互设计能力、软件测试计划及方案的制定能力、课程报告撰写能力、学习态度等各方面能力。
二、教学方式方法的改革
《软件工程导论》是一门理论课,多数是在多媒体教室由教师讲授为主进行授课。现在,在开课之初,我们要求每个学生申报一个题目,整个学习过程中学到哪个阶段,学生就自己去完成所申报题目的该阶段的任务,这样课堂上老师讲怎么开发软件,在课下布置了大量的阶段性文档要求学生去完成,而且各个阶段所采用的方法也不同,随着各阶段任务的完成,学生也体会到了项目开发的过程、方法。为了保证学生提交的阶段文档的质量和保证学生的项目能够顺利进行,我们将阶段评审添加到了教学过程中。学生需要提交的阶段任务文档有:《软件需求规格说明书》、《软件概要设计说明书》、《软件测试报告》和《课程综合报告》。其中《课程综合报告》中要求按照毕业论文的格式要求去排版和完成,希望同学们通过这样的训练能够在毕业设计中取得较好的效果和成绩。在教学改革时我们还尝试着和同时开设的《数据库原理与应用》、《面向对象程序设计》等课联合起来,分别针对同一题目进行阶段训练,在最终答辩的时候由三门课的老师同时参与答辩,答辩成绩被记入到三门课的最终成绩里,比如《数据库原理与应用》课学习如何设计数据库就应用在了《软件工程导论》课的总体设计阶段,学生需要画出E-R图,给出主要表结构;《面向对象程序设计》课最终就是根据《软件工程导论课》分析和设计的结果用JAVA语言开发出一个小项目,这样学生不仅写出了阶段文档,最终还能做出一个实际的项目,增加了完整性和学习积极性。
三、考核方法的改革
原来我们都是采用试卷考核的方式,但是试卷考核只能考察学生的知识掌握能力,并不能考核学生的实践应用能力,而我们希望通过这门课程让学生具备一定的软件开发实践能力,所以由试卷考核改为答辩考核和平时阶段性评审。[3]这也要求在开课之初就制定出比较详细和全面的考核方案,我们的考核方案从课程报告、答辩平时表现这三大方面出发进行考核,具体考核标准如表1。而且,在课程报告提交时,我们有统一的文档格式和内容要求,包括需求分析报告,概要设计报告、测试报告、课程设计报告,在平时授课阶段就需要提交上来;而答辩时,将学生答辩的项目原型与学生之前提交的需求、设计进行对应,审核是否是按照需求和设计进行的开发;而且在近几次的答辩中,我们将答辩所占的比重逐步增加,这样可以看出学生的表达能力、思维能力、项目综合运用能力的高低。《软件工程导论》课程改革的目标就是希望将枯燥、抽象的理论课变成充满趣味和挑战的实训课,让学生通过本课程学习能够知道项目开发各阶段的工作内容,且能够开发一个简单的项目,避免在毕业设计时犯一些软件开发的常识性错误,比如项目开发流程弄错,如何进行分析和设计等等。同时为了提高学生的创新能力,让学生自己申报题目,从需求分析到最终分析设计结束都需要学生自己动手来做,通过学习软件工程思想和方法去完成软件开发过程,可以调动学生的主观能动性,真正做到独立思考,能够激发学生的潜能和创新性,为创新型和应用型人才的培养打下坚实的基础。
参考文献
[1]王菁华.地方高校向应用型转型必须实现三个根本转变[J].职业教育,2016.
[2]韩万江.软件工程实例教程[M].机械工业出版社,2014,3.
随着全球信息技术的快速发展,全球产业转移正快速地由制造业转向到服务业,服务外包因此得到了极大的发展空间。近些年来,参与服务外包的发展中国家越来越多,服务外包产生的影响也越来越受到人们的重视[1]。
近几年中国政府对服务外包的发展极为重视。财政部、国家税务总局等五部委的《关于技术先进型服务企业有关税收政策问题的通知》(财税[2009]63号)文件明确规定了ITO、BPO及KPO范围。信息技术外包ITO(Information Technology Outsourcing)包括软件研发及外包、信息技术研发服务外包和信息系统运营维护外包等;商业流程外包BPO(Business Process Outsourcing)包括企业业务流程设计服务、企业内部管理服务、企业运营服务和企业供应链服务等;以及外包演变过程中出现的新形式—— 知识流程外包KPO(Knowledge Process Outsourcing)包括知识产权研究、工业设计、分析和数据挖掘、工程设计等。其中信息技术外包ITO是最基本的外包方式,技术及数据的处理一般都属于信息技术外包ITO范围,信息技术外包(ITO)仍占主导地位,主要集中在软件研发外包和信息系统运营维护外包。而且2009年教育部、商务部在联合的《关于加强服务外包人才培养促进高校毕业生就业工作的若干意见》中早就指出:高校要根据服务外包产业快速发展的需要,调整服务外包人才培养结构,扩大服务外包人才培养规模,着力提高人才培养质量。
因此,软件工程专业建设中,首先要在设计或制定专业人才培养方案时从专业人才培养方案的基本要素来寻找一些切入点,来更好地实现高等教育及职业教育为社会及行业发展的基本服务和基本支撑。
1 人才培养目标
人才培养目标就是依据社会需求和自身特点所确定的,在一定时期内的人才培养定位及服务面向。以我校拟申报软件工程本科专业为例,首先,要根据学校的办学定位和专业设置部门的实际情况,设定基本知识和能力要求;其次,是有针对性对具体服务面向提出要求。
自2009年,国务院批准武汉成为中国服务外包示范城市以来,武汉已成为中国软件及服务外包业增长最快、集聚度最高的城市之一。仅2014年全市的服务外包产业营业收入就达1020亿元,同比增长41.8%。其中离岸服务外包业务合同金额达5.6亿美元,同比增长10%。全市从事服务外包的企业已达900家,员工数量超过20万人。作为武汉实施光谷和硅谷“双谷合作”战略的核心启动项目—— 武汉软件新城,也同时获批为服务外包示范基地。该软件新城位于花山生态新城,于2012年5月开工建设,总面积约3.4 km2,是中部最大的软件开发、服务外包基地[2]。
作为武汉地区的一所高校,加强服务外包在软件工程专业建设中的地位尤其重要。于是,我们的专业人才培养目标可以大致确定为:本专业按照软件行业和现代服务业发展对人才的要求,立足武汉,面向湖北地区,培养适应软件市场发展需要,德、智、体、美全面发展,掌握自然科学和人文社科基础知识,掌握计算机科学基础理论、软件工程专业的基础知识及应用知识,具有软件开发能力以及软件开发实践的初步经验和项目组织的基本能力,能够在软件行业和信息技术外包ITO企事业单位,从事软件设计、开发、管理、服务等工作的应用型高素质人才。
2 人才培养规格及特色
人才培养规格是实现人才培养目标的工作细化,主要说明本专业毕业生应具备的专业知识、专业能力和专业核心能力、基本素质等[3]。
根据我们与IT企业多年合作的经历,我们认为当今IT行业对毕业生的能力需求有:(1)学生应掌握IT行业中使用的主流软件开发平台与工具,这包括:(1)C语言和VC++;(2)JAVA语言或基于JSP或SSH的WEB开发技术,甚至是基于.NET的WEB开发技术;(3)近年来需求旺盛的手机软件开发技术;同时对掌握嵌入式软件开发和软件测试技术与工具的学生的需求量也很大。同时,IT行业也十分看重学生具有的软件项目开发经历。除此之外也比较看重学生的外语水平和人际交往能力。于是结合服务外包的具体要求,我们可以从以下几个方面来展示特色。
(1)知识结构包括基础理论知识水平、专业知识与技能要求、综合应用知识要求。除专业相关的内容外,可以强调的是:了解软件服务外包的全过程,掌握信息技术外包ITO的JAVA方向基本知识 。
(2)能力结构包括社会能力(语言文字表达能力、信息获取与处理能力、组织协调与现场处理能力、沟通交流与社会适应能力等),专业能力(专业基本能力、专项能力、岗位综合能力等)。强调:具备从事软件工程实践所需的实际专业能力;能阅读本专业的英文文献资料,具备一定的外语应用能力;具备团队协作能力、人际交往和沟通能力以及一定的组织管理能力;了解软件工程学科的前沿技术和软件行业的发展动态,具备一定的创新意识和创新能力;具备终身学习的能力。
(3)素质结构包括的基本素质有政治素质、人文素质、科学素质、心理素质、身体素质等;专业素质有法律意识、职业道德、安全质量意识、环境意识、敬业精神、团队精神等。强调:具有健全的人格、强壮的体魄,良好的道德修养、心理素质和行为习惯,具有诚实守信、热爱劳动、遵纪守法、自律谦让、团结协作的品质。使学生具备工作岗位需求的基本素质和特殊素质。
(4)职业资格要求主要要求本专业学生必须积极参加各类综合素质培养及教育活动,并至少获得一定的学分才能毕业。如要求参加全国计算机技术与软件专业技术资格(水平)考试,或者全国服务外包岗位专业考试至少取得以下一项专业相关从业资格证书:软件设计师、软件测试师、信息技术外包ITO软件工程师、信息技术外包ITO软件测试工程师等。
3 人才培养模式
人才培养模式主要是结合计算机类专业特色定位,从“校企合作、产学研结合、学工交替、订单培养”等方面提炼出的专业人才培养模式[4],主要是实现人才培养目标通过的途径。经过我们研究和讨论,要特别加强学校与学生未来就业行业的沟通。我们的人才培养模式可以概括为:通过校企合作,构建“123”人才培养模式,即1个培养目标,以培养从事软件设计、开发、管理、服务等工作的应用型高级专门人才为目标;2个主要就业面向,将信息技术外包ITO企事业与移动互联网软件开发企事业的岗位要求和行业的职业标准融入课程体系,提高学生上岗后的适应能力;3个评价主体,由学生、学校、企事业单位共同参与教学质量管理制度的制定,以及教学过程的监督与评价。
4 课程
课程是融入服务外包行业特色的具体体现,其中包含课程的名称,设置相关课程的目的。根据课程的分类我们可以从以下几个方面进行。
(1)通识课。通识教育有两层意义:其一是指一种通才的教育;其二是指一种全人的教育。通识课主要是指高等学校根据各专业培养目标而开设的自然科学和人文社会科学基本理论、基本技能的课程,它具体体现在前面所述的人才培养规格及特色中。
(2)学科基础课。学科基础课由各院系根据专业人才培养目标及主干学科的基本要求来拟定的,由学校教学主管部门如教务处来统筹协调。同一学科类的各个专业,基础课程大体相同。为达到软件工程专业的人才培养目标和基本要求,本专业的基础课都规定为专业必修课。为提高教育质量,使软件工程专业的学生具有适应社会发展的能力,学校都很重视加强学科专业基础课程的教学,往往会选派经验丰富、水平较高的教师担任基础课教学工作,对专业学生发展起到引领作用。
在具体设置中,可以考虑服务外包概论,甚至信息技术外包ITO接包操作实务之类的课程。以适应服务外包行业的需要。
(3)专业课专业课(含专业拓展课及综合应用课)一般由院系根据专业人才培养目标和特色定位自主拟定。
专业课与通识课、学科基础课只是相对而言的。专业课是指高等学校根据所制定的培养目标而开设的专业知识和专业技能课程,设置专业课的是让学生掌握必需的专业基本理论、专业基本知识和专业基本技能,以达到让学生了解专业的前沿科学技术与发展趋势的目的,通过专业培养,提高学生分析、解决本专业范围内一般问题的能力。
因为计算机类学科的发展比较迅速,且专业知识的范围也广泛,在多数情况下,专业课的设置并非一成不变。因为在学校里只能打下一定专业知识基础,而更专业或特殊的知识,需要我们的学生在未来的实际工作岗位上继续学习。因此,软件工程专业的课程设置及主要的课程内容,应在一段时期内具有一定的稳定性。
在专业必修课的具体设置中,可考虑如信息技术外包ITO其一方向的相关课程的嵌入,如:面向对象编程、Java程序设计、Java EE应用开发技术、软件体系结构与设计、软件测试、软件项目管理等。
在专业拓展课具体设置中,可考虑如信息技术外包ITO未来面对的形形的开发对象的嵌入,如:网页与网站建设、商务信息管理系统设计与实现、移动网络应用开发、嵌入式系统开发等。
在专业综合应用课具体设置中,可考虑如信息技术外包ITO其一方向的系统训练课程的嵌入,如:服务外包项目实务、软件项目综合开发实践等。
5 结语
根据国家商务部2014年公布的数据:2014年1~8月,我国承接离岸信息技术外包(ITO)、知识流程外包(KPO)和业务流程外包(BPO)执行金额分别为169.3亿美元、108.7亿美元和45.6亿美元,占比分别为52.3%、33.6%和14.1%,同比分别增长23%、32.4%和28.5%。信息技术外包仍占主导地位,知识产权研究、分析学和数据挖掘、动漫及网游设计研发、工业设计等知识流程外包业务增长迅速[5]。正是基于这样的考虑,我们在进行计算机类专业为服务外包行业/软件行业服务的研究同时,不仅仅局限在计算机类专业人才培养方案这个层面上,而是应将软件工程专业建设放入一个更广的社会背景中去思考。根据高等教育的目的,不断研究专业人才培养模式,从课程嵌入、校中厂(在校内用企业标准培养学生)、厂中校(在企业中进一步加强学生能力的提高)三个不同层次上进一步拓展计算机类专业发展为服务外包行业的发展提供支撑,以及学校与服务外包企业的融合。
一、建立“企业ERP系统”
会计电算化发展到今天,已不是单纯的会计与计算机的简单结合,而是已经发展成为一门延伸到通信学、企业管理学、市场运筹学等学科的综合性学科;它的推广应用不再是单纯的财务管理系统,而是正朝着企业资源计划管理系统(ERP)方向发展,甚至发展成为不同企业之间跨地区、跨行业相互链接的大网络系统。
通过几年来在基层从事会计电算化工作所积累的经验,要想实现真正的财务管理现代化,必须在企业内部建立以财务为中心的“企业ERP系统”。通过把企业内部相关部门的计算机连接起来,建立企业内部综合信息管理网络系统,在业务量比较大的几个部门建立独立的资源子网。比如:财务管理信息子网、物资管理信息子网、生产管理信息子网等。各子网要以财务资源子网为中心,通过网间联合与财务管理局域网相连接,其它部门可采用电信线路用单机挂接方式或者通过光缆与财务管理局域网连接。同时,制定一套“财务管理局域网管理规范”,规范各资源子网的数据结构、操作规范,安全规范、职业道德规范等一系列管理制度,确保“企业ERP系统”运行畅通无阻,实现网上信息资源在各部门之间的相互沟通和资源共享。
二、以商品化软件为契机,开发更具实用性的会计软件
目前,我国工业企业财务部门使用的会计软件,一种是外国公司开发的经过汉化的会计软件,是按照国际会计准则设计的,适用于西方资本主义管理体系,而不适用于我国企业管理模式;另一种是国内企业开发的商品化会计软件,这种软件由于受知识产权的影响,价格比较昂贵,而且商品化软件维护起来比较麻烦,使用它势必造成人力和物力的极大浪费。当然后一种商品化软件是由各方面专家共同开发的,软件比较规范、功能比较齐全、操作也相对简便,而且软件实施周期短、见效快,因此,对于缺乏软件开发队伍的单位采用商品化软件是比较明智的。另外,我们还可以在同行业之间组织力量开发适用于某行业的会计电算化软件,实行集中开发、集中管理和维护,共同使用,这样可以节省大量的资金,而且行业之间提供的会计信息资料共上级部门可直接进行汇总处理,而不必再开发专用的汇总软件,这是我们开展会计电算化工作既经济又适用的捷径。
充分利用计算机技术和财务会计知识,建立一套科学的财会综合管理体系和会计电算化软件发展规划,采用在行业内部或同行业之间选拔优秀的计算机人才,建立行业计算机技术开发公关小组,开发适合行业内部管理需要的会计电算化软件,在企业各财会部门推广应用。达到集中开发共同使用的目的,缩短软件开发应用的周期,同时在应用管理上也可纵观全局,从长远利益出发,制定一套完整的会计电算化工作的长远发展规划。走出仅限于统计报表管理和数据存储管理的初级探索阶段,向大规模数值计算的专用软件、面向问题和过程分析及判断推理的高层次软件综合开发阶段迈进。由单机单用户、联机终端网络向标准化网络体系结构发展,充分利用计算机的网络结构,更大程度地共享计算机的硬件、软件及数据资源,建立一套完善的计算机辅助管理专家系统和智能系统,使计算机在财务管理工作中的应用向更广泛更深层次发展。为企业领导和决策者提供准确可靠的信息情报,编制出合理的企业生产经营计划报表及财务报表。有效地控制企业生产经营中的资源浪费,加快资金流通,降低资金占用消耗和产品生产成本,提高企业经济效益。开创以商品化软件为契机,以自己的软件开发队伍为中心,实现企业自己的智能化信息与专家系统的会计电算化发展新路子。
三、搞好计算机技术培训工作,走“全员化管理”的道路
会计电算化工作的关键是应用,特别是从事具体管理工作的人员,他们的会计电算化水平决定本企业会计电算化管理的水平,他们中有多少人会使用计算机,能够利用计算机进行辅助管理工作,甚至有多少人会进行简单的计算机软件编程工作都对会计电算化的顺利实施起着至关重要的作用。所以说会计电算化工作要得到全面的发展,必须走全员化管理的道路。
全员管理就是动员企业内部从事各项管理工作的工程师、会计师、管理师、统计师、会计员、技术员及一般管理人员等在搞好本职工作的同肘,协同从事计算机程序设计的人员一起研究学习计算机技术基础知识和其它管理科学的知识,应用计算机去从事各项管理工作。把计算机同现代化的管理科学融合在一起,培养出大批能从事多种工作的复合型人才,形成一个企业内部全体上下相互协作,同心协力的全员学电脑、用电脑的局面,让更多的人去学习计算机知识,用学到的知识去为管理服务,提高管理工作的水平和质量。
【摘要】根据高职软件技术专业人才培养合格率低,培养方式落后的普遍现象,本文以长沙民政职业技术学院软件技术专业为例,通过对专业课程体系工程化改造的探索与实践,提出了课程工程化改造的思路与措施,实践证明效果显著,具有一定的借鉴意义。
【关键词】软件技术;专业课程;工程化
信息产业的迅速发展对软件技术从业人员提出了更多要求;尽管国内高校软件人才的培养数量不断攀升,但真正能够融入软件开发团队的人并不多,这严重阻碍了我国信息产业的发展。造成这一现象的主要原因是软件技术相关专业的人才培养模式落后,基础理论+实验室上机实践构成了教学的主体,普遍缺少对学生素质和工程化实践能力的培养,同时也缺乏工程化[1]实训必备的教学环境,因此很难培养出符合软件公司要求的实践型技能型软件人才[2]。长沙民政职业技术学院软件技术专业教师团队通过对学生职业素质和核心技能培养方面进行了一系列的探索与研究,通过对高职软件技术专业课程进行工程化改造的探索与实践,在教学过程中产生良好的教学效果。本文以长沙民政职业技术学院为例对此教学探索实践活动做了一个阐述与总结。
本院软件技术专业培养目标通过对面向对象的软件工程方法、数据库、.Net/Java/移动应用/WindowsStore/云应用开发技术、软件测试技术等专业理论基础知识的学习,使学生掌握程序员及相关岗位必备的理解软件设计、掌握从事软件开发先进技术、熟悉测试、实施以及现场管理等专业理论基础知识,具备良好的职业道德、职业素养,培养德、智、体、美全面发展,心理健康,具有“爱众亲仁”道德精神和“博学笃行”专业品质和较强学习能力、创新能力的高素质技术技能型软件技术专门人才。本专业教学团队通过对北京中软强网、杭州TCS公司、上海汉得信息技术有限公司等数十家公司核心岗位所需人才的能力需求调查分析与研究,发现IT行业人才所需能力主要分为三类:职业核心能力和职业核心素质。其中职业核心能力主要包括软件分析能力、软件设计能力、数据库编程能力、界面编程能力、程序编码能力、软件测试能力和系统维护能力;职业核心素质主要包括分析与解决问题能力、自主学习能力、团队合作能力、表达沟通能力、探索创新能力和抗挫抗压能力。本专业教学团队根据调研情况,对课程进行工程化体系[3],为了实现教、学、做一体化的教学目标,在讲义或教材的运用上重点阐述项目实施的方法和步骤,按照软件开发过程对教学内容进行了重构,形成新的“工程化”课程体系。
在本专业教学中采纳特色教学法ISAS教学法、项目教学法和榜样教学法。工程化课程内容组织循序渐进,从简单到复杂,从实践到理论,再到实践不断循环,使学生对技术的应用能力不断提升。项目实践划分为“四个应用层次”:①验证性项目:学生在解决一个与教师示范或操作规程中类似的、或更复杂的问题,学以致用,巩固基础知识。②训练性项目:学生借助相关辅助工具完成的项目,主要培养学生的对技能的熟练程度。③设计性项目:设计性项目是在一个训练单元结束进行的综合性项目,由学生综合运用本单元所学理论解决实际的问题,主要培养学生的分析问题、解决问题的能力和必备专业核心技能。④创造性项目:创造性应用层次是在课程结束后给出课程的课程设计题目,由学生综合运用本课程所学理论解决实际的问题,主要培养学生创新能力和抗压抗挫的能力。基于工程化的课程体系的改革与实践成果为培养更多优秀人才和提高专业人才的合格率奠定了坚实的基础。
通过多年的课程工程化改革的探索与实践,我院软件技术专业以就业为导向,紧跟行业的发展方向,依据行业人才的需求特点,全面实施学院与市场对接、学生与社会对接、教学与就业对接的培养机制,加强实习实践环节,分期分批安排学生到企业实习、实训,毕业生就业竞争优势明显,专业就业对口率显著提高。
参考文献
[1]梁艳华,潘银松,党庆一.“工程化”的应用型人才培养模式在计算机教学中的应用.四川职业技术学院学报,2015,2.
[2]臧斌宇,赵一呜,李银胜,叶德建,朱军国.际化、创新型软件工程特色专业建设.中国大学教学,2008(11).
[3]何婕.对高职院校软件技术专业人才培养模式的研究与实践.科技信息,2010(15).
作者:唐一韬 单位:长沙民政职业技术学院
关键词:专业方向;课程设置;问卷调查;访谈;职业教育
中图分类号:TP3-4
众所周知,职业教育与高等教育之间存在巨大的差异性:高等教育培养人才的基本单位是专业,培养目标要求学生比较系统地掌握本学科、专业必须的基本理论、基础知识,掌握本专业必要的基本技能、方法和相关知识,具有从事本专业实际工作和研究工作的初步能力。职业教育则是专业定向教育,直接面向就业岗位,具有职业性、社会性、和实践性,培养目标要求学生必须掌握就业岗位必备的技能。
高等教育在计算机专业的方向上侧重研发能力的培养,比如系统分析能力、程序设计能力等,课程设置必然就重视坚实的基础理论知识,比如计算机原理,数据结构、数据分析等。
技工学校属于职业教育范畴,作为技工学校计算机应用专业方向上必然需要面向就业岗位。社会是动态发展的,职业岗位也会随着社会的发展出现变化,因此通过调查来确定技工学校计算机应用专业方向和课程设置很有必要。
1 技工学校计算机应用专业方向调查
对技工学校计算机应用专业方向的调查采用两种方式:(1)对技工学校已毕业就业的学生的问卷调查;(2)对软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的访谈调查。具体实施情况如下:
1.1 通过对技工学校已毕业就业的学生的问卷调查来收集职业岗位信息。2014年初,本人对我校2012和2013届两届计算机应用专业毕业的学生共计130名学生通过QQ发出问卷进行调查,回收有效问卷85份,回收率65.4%。在85份有效问卷中,有56名学生在宽带公司从事宽带安装维护服务,占65.9%;有8名学生在移动通讯公司从事基站维护,占9.4%;有5名学生在广告公司从事广告设计和网页制作工作,占5.9%;有4名学生在网络游戏公司从事网络游戏推销工作,占4.7%;没有学生在软件开发公司工作,占0%;有3名学生在其他相关公司从事客服工作,占14.1%。
详细数据分析:
1.2 通过对软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的访谈调查来收集职业岗位信息。2014年初,本人分别与软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的技术主管进行访谈,归纳整理如下:
软件开发公司:目前公司很需要Java编码人员,由于本科以上计算机专业毕业的人员要求的薪资高,造成成本高,使得公司的生存压力大。如果技工学校能提供胜任Java编码的学生,公司就可以较低的薪资和较低的成本面对市场竞争。唯一遗憾的是目前技工学校培养的学生还不能胜任Java编码工作。
广告公司:随着个人自主创业淘宝网站的蓬勃发展,广告公司除了传统的平面广告设计和电视媒体广告设计外,大量增长的是网页制作业务,目前公司的员工大部分是广告设计专业的学生,也有少数是计算机应用专业的学生,因为计算机应用专业的学生能熟练运用计算机多媒体技术,在网页制作领域可以有很大的发展空间。
宽带公司:随着光纤宽带进入千家万户,宽带安装维护服务需要大量的具有网络安装与调试知识以及计算机维修知识的技能型人才。技工学校的学生大多来自农村(特别是国家出台农村学生就读技工学校免学费政策后)具有吃苦耐劳的精神,非常适合宽带安装维护服务,因此长期以来,本公司的生力军都是技工学校计算机应用毕业生。
移动通讯公司:移动通讯要保证信号全覆盖,无发送接收死角,离不开基站的稳定工作,非常需要设备维修技术人员24小时值班,而本公司大多数基站维修人员都是来自技工学校计算机应用毕业生,只要稍加培训即可胜任工作。
网络游戏公司:本公司的业务主要是在网络上向互联网用户推销网络游戏,需要沟通能力强,有亲和力,能吃苦耐劳,具备一定的计算机基础知识和营销知识的人员。
1.3 对1.1中数据的统计分析和对1.2中信息的整理分析确定专业方向如下:(1)宽带网络方向;(2)网页制作方向;(3)程序编码方向(尽管目前我校计算机应用专业没有毕业生从事程序编码岗位,但因为软件开发公司有Java编码人员的需求,并迫切希望技工学校能提供Java编码人员,所以从适应未来需求考虑,把程序编码作为一个具有前瞻性的方向在本文中提出来)。
2 技工学校计算机应用课程设置调查
对技工学校计算机应用课程的调查采用两种方式:(1)对技工学校已毕业就业的学生的问卷调查;(2)对软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的访谈调查。具体实施情况如下:
2.1 通过对技工学校已毕业就业的学生的问卷调查来收集课程设置信息。本人把宽带安装维护服务和基站维修岗位对应为宽带网络方向,其64名学生中有60名学生认为“计算机硬件维修”课程“很有用”,占93.8%;有4名学生认为“有用”,占6.3%;没有学生认为“基本没用”。
64名学生中有34名学生认为“市场营销”课程“很有用”,占53.1%;有22名学生认为“有用”,占34.4%;有8名学生认为“基本没用”,占12.5%。
由于目前我校计算机应用专业没有毕业生从事程序编码岗位,因此无法通过对毕业学生的问卷调查获得程序编码方向的课程设置数据。
2.2 通过对软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的访谈调查来收集课程设置信息
2014年初,本人分别与软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的技术主管进行访谈,归纳整理如下。
软件开发公司:目前公司对Java编码人员的招聘条件,熟练掌握Java Script和Java的编码规则,如果能掌握C++当然更好,但考虑到技工学校的学生数学和英文基础较薄弱,C++涉及指针、堆栈等抽象概念相对他们来说很难掌握。当然VB是最基本的程序设计语言,那是肯定要掌握的。
广告公司:目前公司对制作人员的招聘条件,熟练掌握Dreamweaver,Photoshop,CroelDraw,Flash,可以用ASP,如果能掌握Java Script更好。
宽带公司:目前公司对宽带安装维护人员的招聘条件,熟悉网络布线,熟悉路由器,熟练掌握计算机维修技术,沟通能力强,能吃苦耐劳。
移动通讯公司:目前公司对基站维护人员的招聘条件,熟练掌握计算机维修技术以及通讯设备的维修,能吃苦耐劳。
网络游戏公司:目前公司对网络游戏推销员的招聘条件,沟通能力强,有亲和力,能吃苦耐劳,具备一定的计算机基础知识和营销知识的人员。
通过以上访谈信息分析,确定程序编码方向,主修课程有VB,Java Script,Java;确定宽带网络方向,主修课程有网络安装与调试,计算机硬件维修,选修课程有市场营销;确定网页制作方向,主修课程有Dreamweaver,Photoshop,CroelDraw,Flash,ASP,选修课程有Java Script和市场营销;
3 结束语
本人通过对技工学校已毕业就业的学生的问卷调查,对软件开发公司、广告公司、宽带公司、移动通讯公司、网络游戏公司的访谈,收集第一手资料,为技工学校计算机应用专业方向和课程设置的确定提供有价值的数据支持,并经过统计分析确定专业方向和课程设置如下:(1)宽带网络方向,主修课程有网络安装与调试,计算机硬件维修;(2)网页制作方向,主修课程有Dreamweaver,Photoshop,CroelDraw,Flash,ASP;(3)程序编码方向,主修课程有VB,Java Script,Java。
参考文献:
[1]广东省职业技术教研室.职业教育学[M].
[2]广东省职业技术教研室.职业技能教学[M].
[3]谢安邦,教育部人事司 组.高等教育学(第2版)[M].北京:高等教育出版社,1999.
关键词:Java 教学;第一堂课;学分置换;多媒体教学;实践教学
Java是1995年由Sun公司组织开发的一种编程语言。时至今日,Java已经发展为一个覆盖面广、效率高、易用性强的技术平台,它不仅可以用来开发大型的桌面应用程序,而且特别适合于Internet的应用开发,是一门正在被广泛使用的编程语言。Java是面向对象编程语言,涉及到网络、多线程等重要的基础知识,而且很多新的技术领域都涉及到了Java语言。学习和掌握Java已成为共识,国内外许多大学已将Java语言列入了本科教学计划,IT行业对Java人才的需求也在不断地增长,一些软件公司对其开发人员周期地进行Java的基础培训工作。在IT行业发达的北美洲,有将近60%的软件开发人员在使用Java完成他们的工作。在我国,IT行业对Java开发人员需求量大,已和.NET需求量相当,就业前景广阔,很多高校将Java列入必修课程[1-3]。但由于Java语言的实践性强和开发环境的特殊,怎样让学生更好地学习Java程序设计课程,便成了计算机教学中一个探讨与研究的热点和焦点。本文结合我院教学实践谈几点分析。
1上好Java程序设计第一堂课
通常一个完整的教学过程包括:1)制订课程教学计划;2)准备教案;3)组织授课;4)批改作业;5)辅导学生;6)考查成绩;7)分析质量;8)教学总结。课堂教学质量的提高与前3个环节紧密联系。其中教学计划和教案是教学内容的体现,而组织授课是提高教学质量的关键。在组织授课过程中,课程第一堂课的重要性不言而喻,授课教师借助它来激发学生学习本门课程的兴趣和热情,既要把相关知识传授给学生,激发学生的好奇心,又要尽力促使学生对后续学习充满期待和向往。笔者就Java程序设计课程近年来的教学体会,针对第一堂课的教学内容谈几点经验。
Java程序设计课程第一堂课的内容设计包括4方面:课程的概述、教学安排(包括收缴作业、辅导、答疑等安排)、对学生学习的要求、学习的方法与大学生活的指导。
在课程概述中,笔者主要就如下几个方面进行介绍。
1) 课程的主要内容以及内容间的关系。本课程的主要知识点包括Java概述、语言基础、类和对象、异常处理、输入输出流、多线程、图形用户界面(GUI)设计、Applet开、JavaBean、JDBC、XML、网络编程等。课程先修课程:C语言。后续课程:数据结构(Java版)、Java高级编程、软件体系结构、Java EE编程。
2) 课程的发展历史及发展趋势。
3) 与学生专业的关系:计算机科学专业与软件工程专业必修课程。
4) 与其他课程的联系:软件工程,数据结构算法实现,电子商务系统实现。
5) 课程的教学目标:通过理论和实践教学,使学生理解和掌握Java语言的基本语法和语义,掌握面向对象编程的开发方法和过程,熟练Java的应用技术,熟练使用Eclipse/MyEclipse、JBuilder等集成开发环境,进行J2SE开发。
教学安排,包括收缴作业、辅导、答疑等安排。总学时为30学时(20学时理论+10学时实验);作业包括3次书面作业+5次实验报告+2个软件系统(2~3人协助开发);考试形式为期末上机考试。
对学生学习的要求:强调理论+实践,注重动手实践、学以致用,深入到编程内部去。首先,要熟练掌握基本概念和原理;其次要求学生学会查询各类技术文档,解读经典案例,注意知识点的总结;再次,模仿练习,通过大量的实践应用加以熟练,并能够举一反三;最后,能够2~3人一组,协作完成2~3个软件系统,形成一整套开发思路,构建完善的知识体系。
第一堂课还应包含教师对学生学习方法以及大学生活的指导。笔者所在学校为普通二本学校,学校以农学为特色。针对学生存在的专业课学习困难和就业自信心不足的畏难心理,笔者从正面引导学生,树立他们的自信心和自豪感。让学生从第一堂课就明白,Java程序设计一点也不难学,理论知识掌握之后,再加上足够的实践练习肯定能学会、学好Java语言。学生不是没有工作机会,更多的时候是有了机会但却不完全具备从事相应工作的技能,如果我们平时学好了专业课,有了一技之长,就等于增加了技能,求职的自信心和成功概率也会相应增加。对于有天赋的学生,鼓励他们考取研究生继续深造。要求学生在平时学习过程中诚实刻苦,课堂下应认真独立完成作业,不会做的可以说明情况暂时不交以后补交,但是坚决不允许抄袭别人的作业。
2企业联合培训学分置换
为了培养学生独立分析问题和解决问题的能力,我校和中唐国际软件培训公司合作,暑假期间对大二、大三学生进行60学时的培训。参加培训的学生分为多个独立的项目开发小组,以小组为单位布置软件开发项目。培训公司按照软件企业中软件开发团队运作的模式对各个开发小组的学生进行培训,小组中的成员通过分工和协作完成整个软件项目开发过程从需求分析、设计到代码编写和测试的各个环节。培训结束时学习成绩优异者可以置换3个选修课学分。通过假期培训学习,一来增强了学生软件开发实战经验,培养了他们的职业素质,二来置换为选修课学分后可减轻学生课堂学习的学业压力。这一举措为我校特色,深受学生好评。
3重视理论基础,加强Java类库教学
在Java程序设计教学中,正确引导学生建立面向对象的思维方式,是教学的重要环节之一。另外,对Java基础知识的熟练掌握和灵活应用,也是Java程序设计教学的重点内容之一。我们在讲授类、对象、封装、继承、多态、抽象、接口、包等基础知识时,除了概念本身的讲解,更辅助大量的验证性程序、案例性代码,确保学生完全掌握这部分基础知识和基本概念。为加强学生对Java 基本语法的掌握,我们在Java 教学中开发环境首选记事本,要求学生首先学会手工配置环境变量,用命令行的方式调试Java程序,这样就迫使学生在学习过程中注重Java基本语法、基本概念的准确应用。随着学习的深入,再递进为:Jcreator、Jbuilder、Eclipse等,如果一开始就利用Java 的集成开发环境进行教学,不利于对基本语法、基本概念的掌握[4]。
在Java程序设计教学中,有人认为Java 的基本类库不需要学习,因为可以随时查看类似“Java 大全”的资料或者利用集成开发环境下的联机帮助来获取相关用法。根据笔者的开发经历和教学实践来看,学生应该对基本类库有整体的了解。这不是要学生熟悉每个类的用法,记住每个类有哪些属性和方法,而是要学生知道每个包由哪些方面的类构成,这些类的用途是什么,最核心的几个类分别是完成什么功能的。当遇到实际问题时,学生能够知道哪个类或者哪几个类的组合可以解决这个实际问题就可以了。在我校特色的学分置换企业联合培训环节中,软件开发公司人员结合公司研发项目,重点讲解研发人员的切身感受,这其中很大一部分就涉及到Java基本类库的学习和应用。学生在学习过程中,积极性非常高,他们觉得这样比单纯地听语法、理论要点要好很多,能够学以致用。
4加强实践教学,提高应用能力
Java程序设计是一门集知识和技能于一体,实践性很强的课程,除了理论授课过程中教师应分析讲解代码,演示程序编写调试过程外,实践教学中更应注重要求学生上机实践。学生上机练习的过程既是对理论课程内容的实践,也是应用编程的开始。学生在学习过程中经常阅读一些优秀的源码,对自我提高、开阔视野非常重要,但一定要多动手才能真正把别人的东西消化掉。很多学生学Java就是看书、听课,当时是明白了,觉得没有问题,过后马上就忘记,典型的例子就是学习完全部Java 程序设计课程以后,编写最简单的“hello world”应用程序都不能调试通过。如果学生自己不愿意敲键盘,就不如不学。即使有时候所敲的代码不太明白,可以先运行,看看结果,增加感性认识,然后上升到理性认识。我们通过上交书面作业,完成实验报告,多人组成小组构建软件系统等多种方式让学生切实提高动手编程能力,而且每一次活动都和学生平时成绩挂钩,便于期末评定学生学习效果。
在Java 程序设计实践教学过程中,还有一个值得一提的好工具:Robocode。它是2001年在IBM的Web alphaWorks上的坦克机器人战斗仿真引擎,是MatNelson 用Java 语言创造的一款专为Java 程序员设计的游戏半成品。与通常游戏不同的是:参赛者必须利用Java 语言对机器人进行编程,给机器人设计智能来自动指挥它,而不是由键盘、鼠标简单地直接控制。教学实践证明,Robocode的出现,给枯燥的Java 编程学习注入了动力与激情,可以让学生在娱乐的同时学习提高Java技术。
5传统教学手段和多媒体教学并用
我们既采用传统教学手段,又充分利用现代化的多媒体教学方式。相比传统的“粉笔+黑板”教学方式,多媒体教学可提供多种感官的综合刺激,有利于知识的获取与保持。利用图像、声音、动画等多种手段,多媒体教学能为学生创造一个能听、能看的环境,显然,这样的教学环境要优于传统的“粉笔+黑板”。但是要避免“老师对着电脑讲,学生盯着屏幕看”的情形。我们在Java程序设计课程教学中,理论课以多媒体教学为主,适当辅助传统教学手段增强师生间的交流和互动,上机实践课则完全采用多媒体手段,要求学生在程序调试过程中眼到、手到、心到。在考试环节中,针对Java程序设计课程的特殊性,摒弃了以往课程考试纸质试卷考试形式,组织学生上机考试,切实考察学生的动手实践能力。
6结语
本文针对Java程序设计课程教学,强调了第一堂课的重要性,给出了一些具体可行的措施,提出重视Java 基础教学的观点,建议加强实践教学和联合培养的措施,以切实提高学生对Java 语言的综合应用能力。这些措施都是根据笔者在实际教学中的问题总结而来,并且已经在Java程序设计课程教学实践中实际运用,取得了良好的效果。希望该文能对从事 Java 程序设计课程教学的人员有一定的借鉴作用。
参考文献:
[1] 郑莉. 计算机入门语言讲什么?[J]. 计算机教育,2006(7):25-26.
[2] 马迪芳,宋泾舸,王芳. Java程序设计实用教程[M]. 北京:清华大学出版社,2005:317.
[3] 施霞萍,张欢欢,王瑾德,等. Java程序设计教程[M]. 2版. 北京:机械工业出版社,2006:319.
[4] 向模军,刘松青. Java 教学的探讨和实践[J]. 计算机教育,2006(7):104-105.
Teaching Analysis of Java Program Design
SHI Lei, HU Xiao-hong,XI Lei, ZHANG Hao
(College of Information and Management Science, Henan Agricultural University, Zhengzhou 450002, China)
关键词: 软件开发; 课程群; CDIO; 教学改革
中图分类号:G433 文献标志码:A 文章编号:1006-8228(2014)12-64-03
Research and practice on teaching reform of CDIO mode in software development course group
Shao Lanjie, Ma Rui, Lu Xiaoli, Mu Lili
(College of Information Science and Technology, Yanching Institute of Technology, Hebei, Langfang 065201, China)
Abstract: The ability of software development is a key factor in measuring students' computer professional level and affecting students' employment rate. In order to improve the software development capabilities of students majoring in computers, under the guidance of advanced CDIO engineering education concept, combined with the market needs of the software industry, the problems in the construction of software development course group are discussed. The CDIO engineering teaching mode in courses group are researched, which has obtained a good teaching effect.
Key words: software development; course group; CDIO; teaching reform
0 引言
CDIO工程教育模式是国际工程教育改革的最新成果,其愿景是为学生提供一种强调工程基础的、建立在真实世界的产品和系统的构思(Conceive)-设计(Design)-实现(Implement)-运行(Operate)过程的背景环境基础上的工程教育[1]。该模式于2009年在我国展开试点,目前已掀起全国性的研究浪潮。针对目前高校计算机专业人才培养与市场人才需求脱节的问题,在CDIO理念指导下,以培养适应社会经济发展和满足软件行业人才需求的专业基础知识扎实、专业技能过硬、具有创新能力和团队合作精神的复合应用型人才为目标,对计算机专业软件开发类课程进行课程群建设和CDIO模式教学改革,培养社会所需的高素质工程型人才,是国内外从事计算机专业教育工作者都在关注的课题。
1 软件开发类课程群建设
所谓课程群,是指以现代教育思想和理论为指导,把属于同一能力培养范畴、纵向有承启关系、横向有内在逻辑联系的一类课程进行重新规划设计和整合构建的课程集合[2-3]。课程群的构建,需在CDIO理念指导下,打破单一软件开发类课程内容的归属性,从软件开发能力培养的角度出发,对软件开发类课程进行课程群建设,搭建合理的课程群体系架构。
1.1 课程群建设小组
针对我校计算机专业(Java技术方向)的软件开发类课程群建设,为了建立起更加合理的课程体系,成立了专门的软件开发类课程群建设小组,设立课程群负责人、CDIO教学实践项目负责人、课程负责人和授课教师岗位。其中,课程群负责人的主要职责是进行课程群的总体规划,课程教学大纲、教学用实践项目的审核、课程群团队管理等工作;项目负责人的主要职责是完成教学用实践项目的设计、项目内容安排、项目进程控制、指导授课教师和学生完成项目实践;课程负责人的主要职责是撰写自己所负责课程的教学大纲、审核授课教师编写的教案、授课及安排其他授课教师根据制定好的课程大纲和能力培养目标同时进行授课,完成课程教学改革;授课教师的主要职责是接受课程负责人安排,进行授课,是课程教学改革的践行者。
1.2 课程群体系结构
课程群小组在我校计算机专业“3+1”人才培养模式框架下,依据软件开发能力的不同培养阶段[4],选择对学生软件开发能力培养起关键作用的课程组成软件开发类课程群,课程群主要由以下课程组成。
⑴ 基础阶段:将C语言程序设计I、C语言程序设计II、C++面向对象程序设计,归为入门级专业基础课程。开设目的是让学生熟悉一到两门计算机高级程序设计语言,了解程序的基本结构,掌握面向过程和面向对象两种程序设计方法,对学生进行一定程度上的逻辑思维能力的培养,为下一阶段的课程学习打下语言和编程思想方面的基础。
⑵ 提高阶段:数据结构、数据库原理与应用、算法设计与分析、Java程序设计I、Java程序设计II、网页设计与制作基础。其中,前三门课属于核心专业基础课程,数据结构课程主要培养学生的数据抽象能力,数据库原理与应用主要培养学生的数据库应用系统开发能力,算法设计与分析课程主要培养学生的算法设计能力、算法分析方法。后三门课属于专业方向课,开设目的是让学生熟悉当今主流软件开发语言。
⑶ 高级阶段:软件工程、Web开发原理、J2EE程序架构与程序设计、移动应用开发、系统分析与建模技术、软件测试技术。除软件工程属于核心专业基础课外,其余课程属于专业方向课。软件工程课程的开设目的是让学生掌握软件开发的方法、技术、流程、工具、规范等内容,使学生的软件开发能力无论在理论上还是在实践上都得到升华。对于该阶段专业方向课,其设置一定要与时俱进,以软件行业人才需求为导向,让学生学习市场流行软件开发技术,熟悉大型软件的开发方法和开发平台,使学生的软件开发能力符合市场需求,提高学生的就业竞争力。
⑷ 实践阶段:数据结构课程设计、应用软件课程设计、系统软件课程设计、企业级项目实训、毕业设计。该阶段开设的课程全部属于实践性课程,目的是使学生在项目实践中进一步理解和巩固所学专业知识,重点培养学生的工程实践能力、自主学习能力、独立分析和解决问题的能力、创新能力、团队协作能力。
2 软件开发类课程群CDIO模式教学
2.1 理论教学
软件开发类课程群强调一体化建设,注重课程的知识重组、知识融合。对课程间重复知识点的处理,做到明确其划分,消除重复。如C++和Java程序设计这两门课皆为面向对象的程序设计语言,对于这两门课程的重复知识点――面向对象程序设计的关键技术(抽象、类、继承和多态),我们的办法是把该内容的教学放在C++中去重点讲授,而在Java教学中对这部分内容进行弱化,留给学生自学,并让学生在项目实践中进行消化吸收。把Java程序设计的教学重点放在Java的可视化编程、多线程编程、网络编程、数据库编程、设计模式方面。又如软件工程、系统分析与建模技术、软件测试技术这三门课,也存在交叉的教学内容。一般来说软件工程的教学内容涵盖面向对象的系统分析与建模技术和软件测试技术,我们的办法是把软件工程的教学重点定位在面向过程的软件开发理论与实践,而把面向对象的软件开发放在系统分析与建模技术课程中讲授,把软件测试放在软件测试技术课程中讲授。
在教学用实践项目的选择方面,我们以涵盖尽可能多的知识点、贴近企业实际项目、有一定综合性且难度适中、项目应用领域学生比较熟悉为原则,由课程群项目负责人和校企合作单位共同研讨决定。教学实践表明,对同一门课程的不同知识点或不同的课程,能选用一个项目的就选用同一个项目,这样教学效果较好,更能让学生体会学习同一课程每一知识点或不同课程的意义所在。如C和C++的教学,我们都选用针对学校图书馆使用的图书管理系统,在C语言学习过程中,要求学生用面向过程的程序设计方法去开发,而在C++学习过程中,要求学生用面向对象的程序设计方法再一次开发此系统。学生通过对同一系统不同程序设计方法的比较,在亲身实践中体会到了面向过程和面向对象两种编程思想的根本区别、二者的优缺点。对于后继或高级阶段很多课程的教学,同样可以继续选用该系统。如在软件工程教学中,继续选用该系统,让学生把之前开发流程不规范的部分按规范开发流程补全各阶段资料。这个过程可以让学生发现规范理论指导的意义所在。
在课程教学中,引入CDIO工程教育理念,以项目为主线,以学生为主体,以教师为主导,让学生学中做,做中学。教学方法以项目教学法为主,案例教学法、问题驱动教学法、任务驱动教学法、讨论法、翻转课堂教学法等为支撑。这些教学法在调动学习兴趣,培养自主学习能力、独立思考能力、工程实践能力、创新能力、团队合作能力等方面都发挥着积极作用,教学效果较好。
2.2 实践教学
课程群实践教学分为五个层次:课程实验课程设计综合课程设计企业项目实训毕业设计。软件开发类课程是实践性很强的一类课程,每门课程都安排有课程实验,核心专业课程则专门开设课程设计,如数据结构课程设计。而综合课程设计可以锻炼学生综合、灵活运用专业知识的能力,培养学生的创新能力,如应用软件课程设计、系统软件课程设计[5]。企业项目实训为学生提供企业环境背景下的项目实践锻炼,所从事的是企业实际项目开发,其在提升学生就业技能方面有举足轻重的作用。毕业设计是学生四年学习成果的结晶,毕业设计质量的高低直接反应教学质量,是教学改革的助推剂。
2.3 考核方式改革
对课程群课程实施CDIO模式教学后,课程考核方式也要相应进行调整,从传统终结性考核(期末考试)方式修改为形成性考核和终结性考核相结合的方式[6],从教学过程的各个环节对学生进行全方位的考核。表1以面向对象程序设计C++课程为例列出了课程考核具体细则,以供参考。
表1 面向对象程序设计C++课程考核细则
表1中,期中/期末考试可根据课程的性质予以取舍,对于实践性较强的选修课及课程设计,可以取消这两项考核,相应加大其他考核项的权重。
3 特别强调的问题
3.1 师资队伍建设
师资队伍建设是课程群建设的基本保证,以软件开发能力为培养目标的课程群对任课教师的要求是,应具备较高的软件开发能力,有较丰富的软件开发实践经验。为此,我们引入校企合作企业的软件工程师参与课程授课;加大“双师型”教师的培养力度,每学期有计划地安排教师深入生产第一线,接受一段时间的实践锻炼,提高实践操作能力;鼓励教师参加技能培训。
3.2 教材建设
高水平的课程群建设应该有一系列高质量的教材相配合。我们的教材建设包括对优秀教材的选用和自编教材。在自编教材建设中,我们已出版三本教材:C语言程序设计、C++程序设计、数据结构(C语言版),把课程群教学实践中积累的优秀教学项目写进教材,受到选用教材兄弟院校的好评。
3.3 校企合作
校企合作在CDIO工程教育模式中起着至关重要的作用。合作企业为学生提供企业实践环境,并在培养学生方面做到了应社会所需,与市场接轨。我校计算机专业目前已与北京东方尚智公司、紫光软件集团、达内集团等建立了长期校企战略合作,建立校内企业实训基地两个,校外实训基地五个。
3.4 教学平台建设
课程群小组搭建了计算机专业CDIO模式教学改革网站,包括教学资源模块、答疑模块、论坛模块、作业管理模块、在线测试模块、学生优秀项目作品展示模块等。在实践教学平台建设上,除学校和校企合作企业为学生搭建的实践教学平台外,我们还借助“挑战杯”、“蓝桥杯”大赛等平台,锻炼学生的算法设计能力,培养学生的创新能力。
4 结束语
CDIO理念指导下的软件开发类课程群体系结构的搭建必须以学生软件开发能力的形成为依据,同时又要考虑软件开发市场需求,对软件开发类专业方向课的设置实时更新。在此思想指导下,我校CDIO课程群建设小组对计算机专业软件开发类课程的体系结构进行了调整,并进行实践教学,取得了良好的效果,学生的工程实践能力明显提升,基本达到预期目标。当然,还有诸多问题值得进一步研究,特别是课程群建设和教学改革主力军的“双师型”教师队伍培养问题。
参考文献:
[1] CDIO在中国[OL]. http:///vNews.asp?typeID=
36&parentID=29.
[2] 王海舜等.基于程序设计能力培养的软件设计类课程群架构[J].计算
机教育,2012.3:23-26
[3] 郭红等.基于CDIO软件工程专业课程群建设的研究与实践[J].牡丹
江师范学院学报(自然科学版),2013.4:52-54
[4] 程凡.面向卓越工程师的软件工程专业课程体系建设[J]. 宜春学院学
报,2014.24(6):106-112
[5] 马睿等.基于CDIO模式的软件工程专业培养模式的探索[J].内蒙古
师范大学学报(教育科学版),2013.26(9):83-85