Withthedeepeningofourreformandopeningtooutsideworld,wehaveachievedagreatdealineconomicdevelopment.Meanwhile,ourcountry'seducationareenjoyingrapidgrowth.Inschooleducation,especiallyinguidingstudentstocurriculumdesign,weareoftenusedsoftwareengineeringtechnology.Andalsowearefeeltechnologyinsoftwareengineeringcurriculumdesignandtheapplicationstatusisconstantlyincreasing.Sotheauthoranalysestheapplicationoftechnologyinsoftwareengineeringcurriculumdesignandanalysisofrelevantproblems,combiningwithhissupervisionexperienceandresearch.
Keywords
Curriculumdesign,softwareengineering,application,problems
一.前言
二.课程设计中存在的问题
1.不重视可行性分析和需求分析
2.软件设计呈无序状态
软件设计一般要求进行概要设计、详细设计,以及必须的模块设计,才能进行编码,而课程设计中大部分同学的软件开发跨越了概要设计、详细设计以及必须的模块设计,直接进行编码,这种无序的软件设计只能带来人员组织的混乱、功能代码的重复开发,并导致系统最后可集成性差.
3.系统的使用说明书不正规、不完善
软件系统质量的优劣主要取决于用户的评价.目前,大多数课程设计做的软件虽然都采用了直观易学的图形窗口界面和菜单驱动技术,大大方便用户使用,但由于课程设计系统用户类型多样,理解的程度不尽相同,除一般的操作帮助外,解释清晰、内容全面的数据字典和使用手册是必不可少的.否则用户感到使用起来很不便,觉得难于操作.
4.系统开发过程中文档不完备
软件工程要求系统开发过程中的文档必须和所开发的软件完全一致,要清楚地说明系统开发到某一阶段时已经做了什么,下一步应该做什么,以及算法的精确描述或出处等,以便课程设计小组成员之间进行有效的交流,同时这些文档也是备忘录,对系统的维护和更新意义重大.不合格、不完备的文档给开发人员内部的工作交流带来了诸多不便.更严重的是如果没有准确的文档,诸如修改系统中的错误、改进和增添新功能、移植到其它软件环境等这些工作将非常难做.
1.合理选择课程设计的题目
2.摆正程序编写工作在软件工程中的位置
学生在做软件工程课程设计之前,已经做过一些课程设计。比如在学习C、C++或Java之后,利用C、C++或Java所做的课程设计。那些课程设计内容是使用高级语言设计和编写小软件,在那些课程设计中,程序编写是一项非常重要的工作,因为那些课程设计是以熟练应用某高级语言为目的。而在软件工程课程设计中,编写程序工作与需求分析、总体设计和详细设计等工作相比较,重要程度降低了。因为软件工程课程设计不是以熟练运用某高级语言为目的,而是以熟悉和运用软件工程知识为目的。实际上,按照开发软件的过程,当需求分析、总体设计和详细设计等开发过程完成后,用哪种高级语言来实现软件系统已经不是重要问题了。
学生往往认为程序编写工作重要,而认为需求分析、总体设计和详细设计等工作无关紧要,这是没有领会软件工程思想的表现。当确定课程设计题目后,有些学生不认真作需求分析、总体设计和详细设计等工作,匆匆忙忙开始编写程序,这种行为与软件工程课程设计的目的不相符。
3.熟悉常用技术和工具
按照软件工程课程设计的要求,学生在课程设计结束时,要完成全部的软件设计开发任务,不但要交出一个能运行的软件,还要交出设计过程中所形成的文档材料,包括需求分析材料、总体设计材料、详细设计材料、测试材料等。要做好这些文档材料,需要在课程设计中引导学生熟悉软件工程中常用技术和工具的使用方法。
例如,在制作需求分析材料时,涉及到实体关系图、数据流图、状态转换图、IPO图的使用;在制作总体设计材料时,涉及到模块化技术和层次结构图的使用;在制作详细设计材料时,涉及到传统流程图、盒图、PAD图、判定表、判定树的使用;在制作测试材料时,涉及到白盒技术、黑盒技术的使用。如果采用面向对象方法进行系统分析和设计,则要涉及到UML中的用例图、类和对象图、顺序图、活动图、协作图、构件图、部署图的使用。
四.结束语
综上所述,软件工程技术在课程设计中占据着十分重要的地位,并且其应用也是十分广泛的。因此,应该加强对软件工程技术的应用研究,加大其在课程设计中的应用范围和频率。
参考文献:
[1]王延青;李海峰;林森;朱素霞;倪泽辉软件工程系列课程设计的分组及选题策略框架计算机教育2008-04-25期刊
[2]庞希愚;王成在课程设计中培养软件人才工程素质的研究与实践中国科教创新导刊2012-08-01期刊
[3]廖江福;王宗跃软件工程专业课程设计中的双语教学集美大学学报(教育科学版)2012-07-28期刊
1.自我探索方面
人-职匹配理论是基于特质因素论而发展的生涯理论,特质因素论的最大成功之处在于开发了一整套用于发现个人特质的测评工具,包括能力倾向测试、兴趣量表和价值观问卷等多个大类。通常在现有的生涯规划课堂上最常用到的测评包括基于霍兰德兴趣分类理论的自我职业兴趣量表、基于舒伯职业价值观理论的价值观量表等。为了提高学生的参与感,除了直接在课堂上使用量表之外,根据这些理论设计的如“兴趣岛幻游”、“价值观拍卖”等课堂活动也被广泛采用。然而,这些活动的最大问题在于,无法要求个体超越自身经历来进行自我判断。如果问一个现代人:“你喜欢吃大象肉吗?”答案一定是:“不知道。”原因很简单,几乎没有现代人吃过大象肉,所以当然不知道是否喜欢。“兴趣岛幻游”中描述的六个度假岛屿和“价值观拍卖”中罗列的类似“取之不尽的银行卡”,对于大部分选课学生来说就是所谓的“大象肉”,完全超越他们的实际经验,也就难以作出类似“好或坏”、“喜欢或不喜欢”、“合适或不合适”的判断。即使测评或课堂活动最后给出了兴趣偏好或价值取向偏好的结果,这个结果对于学生来说也会因为缺乏切身的经验体会而没有实际意义。
2.职业探索方面
现有的课程设计中职业探索主要围绕职业分类理论和职业探索方法展开。这个部分的困境在于:如何在2~4个课时内将浩瀚如海的职业世界完整地展示给学生,即着手点或突破口在何处?以学生所学专业为起点,要求学生在所谓“专业对口”的范围内探索职业世界,是通常的做法。这个思路确实帮助学生找到了突破口,但问题在于:首先,专业和职业的关系不是一对一或一对多的简单线性关系,而是纵横交错的多重复杂关系,一次活动或几次课显然无法有所深入;其次,不容回避的是,许多学生在高考进行专业选择时经历的并不是真正意义上的理性决策,因而对于自己的专业缺乏认同,在这种情况下以“专业对口”为着力点很大程度上变成了无用功。
3.自我探索与职业探索的关系
在目前很多高校的课堂上,先讲授自我探索,然后再讲授职业探索,至于自我探索的结果与职业探索的结果之间有何关联,课堂教学并不会有所涉及。这种教学安排的结果将自我探索与职业探索割裂开来,不利于学生深入地认识自我和了解职业。自我探索与职业探索在教学中出现“两张皮”的情况,根本原因依然在于课程的设计脱离了学生的实际经验。通常来讲,课程设计的理论取向包括基于学科知识体系的学术理性主义取向、基于学生兴趣与需求的人本主义取向,以及基于社会文化需求的社会重建主义取向等多种。现有生涯规划课程的设计,在自我探索与职业探索的模块,遵循的是知识体系的内在逻辑,以特质因素论和职业分类理论为主要的理论基础,根据这部分理论的内在逻辑来组织课堂材料,而忽视了理论与授课对象的经验和需求如何有机结合。
4.职业决策方面
二、高校生涯规划课程设计的解决思路
1.坚持课程形式的生涯教育
2.梳理课程设计的理论基础
3.摆脱课程设计目标模式的束缚
4.强调学生经验的课程设计取向
5.加强课程评价的研究与实践
摘要:本文探讨了我院编译技术可扩展式课程设计改革中的编译技术与工程的关系、可扩展式课程设计改革指导思想与内容、实施方案和评价体系。
关键词:编译技术;可扩展式课程设计;软件工程
中图分类号:G642
文献标识码:A
编译技术课程设计的目的是进一步培养学生编译器设计的思想,加深对编译技术和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
1问题的提出
长期以来,许多学校在开设此课时,虽然开设了实验课及相应的课程设计,但只是对编译理论中的某些算法单纯地实现,缺少或根本没有实际背景,存在着以下问题:
(1)在现行的教材中,大部分都是从编译技术本身的角度来思考的,为的只是让学生掌握编译的基本理论与思想,学生易感觉太抽象;
(2)重理论轻实践,将语法技巧理论的讲解作为主要部分,与实际工程联系少,缺乏活力,学生易产生“学而无用”的思想;
(3)与实际工程鸿沟大,学生易产生惧怕思想。
为了有效地解决这些问题,结合工程应用实际,我们提出了编译技术可扩展式课程设计的思路。
2编译技术与工程的关系
第一个编译程序的出现是在20世纪50年代早期,多数早期的编译工作是将算术公式翻译成机器代码,奠定了对高级语言编译系统的研究和开发的基础。20世纪50年代中期出现了FORTRAN等一批高级语言,相应的一批编译系统开发成功。随着编译技术的发展和社会对编译程序需求的不断增长,20世纪50年代末有人开始研究编译程序的自动生成工具,提出并研制编译程序的编译程序。它的功能是以任一语言的词法规则、语法规则和语义解释出发,自动产生该语言的编译程序。目前很多自动生成工具已广泛使用,如词法分析程序的生成系统LEX,语法分析程序的生成系统YACC等。20世纪60年代起,不断有人使用自展技术来构造编译程序。自展的主要特征是用被编译的语言来书写该语言自身的编译程序。1971年,PASCAL的编译程序用自展技术生成后,其影响就越来越大[1][2]。编译技术与工程的关系如表1所示。
表1编译技术与工程的关系
随着并行技术和并行语言的发展,处理并行语言的并行编译技术,将串行程序转换成并行程序的自动并行编译技术也正在深入研究之中。另外嵌入式应用迅速增长的需求,推动了交叉编译技术的发展,还有系统芯片设计方法和关键EDA技术的研究,也带动了专用语言VHDL等及其编译技术的不断深化。
3可扩展式课程设计改革指导思想与内容
编译技术课程设计教学是工程类本科教学中的重要环节,具有很强的综合性和实践性,组织实施好课程设计教学,已成为教学改革的重要课题之一。与一般本科院校相比,我们应当更加注重技术层面的提升,培养学生具有更强的技术操作水平和解决实际问题的能力;和高职高专相比,又应该有更宽、更深一些的专业理论基础,以培养有较强的创新能力和实践能力,能适应实际工作需要的高级应用型人才。因此编译技术课程设计教学应充分考虑到社会对人才的全方位要求以及为学生未来的可持续发展奠定良好的基础[3]。
课程设计改革的重要特征之一就是面向社会,面向市场,面向生产,编译技术课程设计要具有一定的实用性、可行性。编译技术课程设计题目的选择直接影响到学生完成的情况和教学效果,对提高学生的能力大有裨益。学生参与课程设计,首先就要开始参与课程设计的选题,以教师确定的指导为前提,强调学生在课程设计中的主体地位。让学生们明确自己是这个实践活动的主体,从领会课程设计的目的、任务,到理解课程设计的步骤、方法和注意事项,因此确定课程设计的题目必须让学生唱主角,消除学生们的依赖心理,发挥他们的主动性和创造性,学生通过查阅资料、调查等多途径接触社会实际提出题目,在教师的参与指导下结合课程理论进行可行性分析讨论,筛选出适合于课程设计的题目。这样的课题结合了社会实际,考虑到学生的实际能力,结合了编译技术课程理论,结合了学生的兴趣,学生的积极性在课程设计中将获得的充分的激发和保护,既不会因课题枯燥无味而淡漠,也不会因难度较大而畏缩不前。编译技术可扩展式课程设计改革内容如表2所示。
编译技术可扩展式课程设计的特点是以编译技术理论与编译实验为基础,结合实际工程和科研的需要,由学生提出合乎自己实际能力的课程设计的课题,并尽力发挥其创造力,向工程方向扩展。
4可扩展式课程设计施实方案
4.1设计内容具有开创性和实用性
4.2设计小组采取优化组合的方法
在设计前,将全班学生按平时主干课程的成绩分为上中下三个等级,然后每一个小组中三个人刚好可以按不同等级各分配一人,以成绩较好的学生为小组组长,负责小组内的工作,小组中每个人都可以按自己的设计思想完成同一任务,在最后整体连接时,可选择各组中较好的程序。这样既保证了最后的程序质量,同时又使同学之间可以互相探讨,取长补短,效果较好。
4.3选用合适的激励机制
为把编译技术课程设计做好,我们选用了以下激励机制:其一是合理的成绩分布,让真正做出了东西的人得到较高的成绩;其二是引入竞赛机制,对优秀者进行奖励;其三是以适当的资金进行资助,以达到其实用的目的。
5可扩展式课程设计评价体系
编译技术可扩展式课程设计评价体系注重过程考核,通过过程的监控手段实现教学目标,原则上多种方式并举,如下所述。
5.1形成式考核
与传统考核模式的区别在于:形成式考核的过程贯穿于整个教学过程;考核的形式是多样化的;考核的内容除知识点外,还包含学生学习过程中的表现,学生完成课程任务过程中表现出来的分析与解决问题的能力等多方面,是对学生的全方位的考察,是一种更科学的评价体系。
5.2答辩形式进行考核
实践的目的是培养学生综合应用所学知识解决问题的能力,因此考核的重点应该放在对学生把握问题、分析问题以及解决问题等诸多方面的能力上面。实践证明,通过答辩能充分反映学生的全面素质,同时,通过答辩过程中学生对问题的回答,也能较为准确与全面地了解学生对知识点的掌握情况。
5.3软件系统评价方式进行考核
对于工程型课程,教学的目的是让学生最终能开发出一套能满足实际需要的、规范的软件系统,最好的考核方式就是评价学生所开发的软件系统。因为这类作品不是能在1~2小时内能完成的。这种考核方式可大大发挥学生的积极性和主动性。实践证明不少学生的软件系统几乎达到了实用产品的程度。我们要相信学生的创造力。
编译技术可扩展式课程设计结合以上几种方式对学生进行综合考核,从以知识考核为中心转向以能力考核为中心,以一纸报告为评价标准转变为以过程评价为标准。从整体设计结果来看,大部分学生的思维方式是多样化的,编程能力是可开发的,如果我们能充分调动他们的积极性,一定会使课程设计变得具有实际意义和可观的教学效果。
6结束语
通过编译技术课程设计的实践,我们总结出的经验是:编译技术课程设计要具有可扩展性,向工程方向扩展,要尽量鼓励学生勇于探索新思想,注重培养每个学生的理论联系实际的能力和独立工作的能力。经过教学实践证明,编译技术课程设计的改革是圆满成功的,是指导教师、实验室教师和学生共同努力的结果。只要认真研究,勇于创新,不断改进,就一定能够将编译技术课程的设计搞得更好。
参考文献
[1]胡燕京,李彩霞,周子琛,罗海宁.编译技术研究与逆向工程实践[J].现代电子技术,2007,(16):99-102.
[2]张红霞,王宝库,陈郭成.编译方法课程设计的改革实践[J].东北大学学报,2000,(2):117-118.
TheExtensibleCurriculumDesignReformforCompilerTechnology
TANGShi-xi
(YanChengNormalUniversityInformationScience&TechnologyCollege,YanCheng,China)
关键词:课程建设;课程设计;计算机软件
作者简介:张艳(1976-),女,河南南阳人,上海理工大学光电信息与计算机工程学院,讲师。(上海200093)
计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的发展战略研究报告中也指出:计算机专业的人才应该被分为科学型、工程型、应用型三类,而绝大多数应该是工程型和应用型的。许多高校注重学生专业能力的培养,纷纷开设实践类课程以满足信息社会对实用型人才的需求。因此,如何建设实践类课程无疑是摆在每位一线专业教师面前的重要课题。本文以“应用软件课程设计”课程的建设为主要探讨对象,介绍了该课程的设置意义、教学方法和实施细则,希望能对计算机专业实践类课程的建设和教学以及学生的就业有所帮助。
一、课程设置的重要意义
“应用软件课程设计”课程面向大三的学生开设,在计算机科学与技术专业四年本科教学中,是以前期的“数据结构”、“计算方法”、“离散数学”、“软件系统”(包括编译原理,操作系统)、“软件工程”、“程序设计”、“数据库原理”以及“计算机网络与通信”等课程为基础的一门软件开发技术综合应用的专业课程。该课程让学生综合运用专业知识,通过动手实践,以团队协作的方式根据软件工程的原理选择难度适中的课题,完成网络环境下基于B/S架构的综合应用软件的系统设计与实现任务。课程设置的目的就是通过本课程的系统学习与实训,达到全面提升学生综合应用软件的实际开发能力和团队合作能力,以解决传统教学中理论学习与工程应用相脱节、单门课程孤立地学习与缺乏正确运用学科体系的理念来指导学生实现综合技术全面应用的突出问题,以期有效地实现计算机科学与技术专业本科学生的培养目标。
课程开设近10年的实践证明,学生综合运用计算机专业基础知识,科学设计、开发软件,合理进行软件开发的能力得到全方位的、实战型的锻炼,不仅实现了专业理论知识与实践有效地相互结合,而且很好地锻炼了学生的动手实践能力和团队协作能力,为日后的择业起到很好的铺垫作用。
二、“应用软件课程设计”的教学内容
三、应用软件课程设计的实施方法
1.本课程的实施原则
实践类课程不同于其他计算机专业课程,主要以实践为主,这就比较难控制进度和公正地评价学习成绩,因此笔者制定了如下实施原则:
2.本课程的教学安排
(3)课程设计第三阶段(4周):本阶段是项目开发的实质性阶段,对整个项目所有模块进行开发并进行代码集成测试、完善整个软件产品。在本阶段结束时,向指导教师提交课程设计末期的个人和小组的报告。
(4)课程设计第四阶段(3周):完成全部代码的开发工作,检查并汇总本课题小组成果,课题小组完成项目开发总结报告,个人完成各自的课程设计个人报告。在本阶段结束时,向指导教师提交课程设计个人与小组的报告以及小组的完整的、可供运行的代码文档。
(5)最后是课程设计综合评价阶段(2周):对本课题设计项目综合评价,最后进行大组公开演示和答辩,检查程序运行效果;全体指导教师根据答辩情况、提交的报告质量与平时的上机情况集体打分,综合评定出每位学生的最终成绩,力求公平、公正。
另外,在课程结束后会召开师生座谈会,集中讲评、总结课程的教学、学习情况,征求学生对课程和教学方面的建议和意见,同时给学生指出专业学习的努力方向,学生给教师提出今后课程需改进的地方,使教与学相互促进从而不断完善该课程。
四、结论
“应用软件课程设计”在上海理工大学已经开设10年,是上海理工大学精品课程与上海市教委重点课程建设项目,它很好地体现了计算机专业课程的系统性、完整性、科学性和原理性,有效锻炼了学生的动手实践、软件开发和团队协作能力,对提高学生的专业能力和专业素质起到了关键作用。任课教师在教学实践中付出了很大的努力,不断完善课程的教学模式和评价手段,积累了大量经验,该课程多次受到学生的好评,很多已就业的学生反馈的信息表明:该课程对学生专业素养的培养和从学校到职场的衔接起到了很好的作用,为计算机专业的实践教学探索出一条切实可行的道路。
关键词:计算机专业程序设计课程群
1程序设计课程群中存在的问题
1.1现有情况
目前大多数高校针对计算机开设的以C语言为基础的程序设计类课程有:C/C++语言程序设计、数据结构、面向对象程序设计等。不少高校采用以课堂教学为主,实验教学为辅,再配合课程设计的教学模式。分析程序设计课程群的教学现状,可以发现在程序设计课程群中主要存在以下几个问题(图1)。
1.1.1规程程序化
课程定位和课程目标不够明确。旧的人才培养模式对应用型人才培养模式仍然有一定的影响,程序设计类课程教学大纲不能满足应用型人才培养的目标。课程定位和目标中未能明确规定课程教学要达到的效果。在课程教学和人才培养目标关系的认识上存在偏差。
1.1.2课程体系松散缺乏连贯
程序设计类的课程在知识结构和教学结构上缺乏一条明确的主线,结构松散,不能前后连贯。教师教授各自为战,没有形成很好的向上递进关系,造成学一门是一门,到处是树叶,而形不成树枝和树干。
1.1.3教学内容抽象难懂,教学方法单一
程序设计语言的教学以语法教学为主线,很多情况下采用了在课堂中讲语法、上机调程序的教学模式。课堂举例往往针对语言的某个概念进行简单编码,即对实际程序设计过程进行了简化,忽略了问题分析、算法设计和程序测试与调试等重要过程。在程序设计教学中少有贯穿软件工程的思想,难以做到重点介绍解决问题的方法和思路,把重点放在问题分析与算法设计上。因此,目前在教学中普遍存在着一种现象:学生上课能听懂,但害怕写程序,碰到实际问题时无从下手。往往是经过一个学期的学习,还是不会编写程序,反映了程序设计能力的不足,当然更谈不上实际的应用开发了。
1.1.4课程的实践效果不理想
1.1.5考核方式过于单一
课程考核方式仍然采用笔试方式,许多考试的笔试基本上是考语法,为了提高应试能力,导致程序设计的教学把注意力放到了语法的细节上,忽视了学生的实际程序设计能力的培养,有部分课程虽然初步探索采用上机考核,而考核内容局容局限于课本知识,未能考核学生编程能力和综合实践能力。
鉴于上述问题,有必要改革现有程序设计课程的教学内容和教学模式,为培养学生的程序设计能力、应用开发能力探索出切实可行的思路和办法。
2程序设计课程群建设与研究的内容:
2.1现有情况
第三,研究程序设计课程群中各门课程的考试内容和考试方法。
第四,研究程序设计课程群的教师队伍的建设与培养。
第五,不断跟踪研究程序设计课程群的教学与软件产业人才市场的需求关系。
第六,如何借助“挑战杯”“全国信息技术大赛”“蓝桥杯”“ACM程序设计大赛”等平台培养学生创新能力。这些大赛均是有影响力的大赛,竞赛题目大多是实际工程应用中遇到的问题,将大赛的一些基础实验和算法设计实验题目改编成适合学生使用的题目,学生可以通过这些平台来学习和分析问题,然后再进行设计。通过这个过程不仅学生可以提高自己的学习能力,教师也可以即时掌握学生对课堂知识的理解和掌握程度。
3程序设计课程群建设与研究的方法
课程群建设是专业建设的一部分,计算机专业人才培养方案应瞄准专业定位,与行业现状和发展相适应,才能明确知识点、课程和课程群的具体内容。同时,课程群建设应当注重课程的知识重组、知识融合,是对单独课程的教学大纲、实验大纲等教学内容的重新设计。从计算机应用软件人员的基本知识结构要求出发,本文提出的程序设计课程群应当以“程序设计”为核心,注重实践与方法,走“实践—抽象—设计—再实践”的路子,尊重客观的学习规律,注重学习兴趣的培养,在不断实践的过程中体会程序设计的方法,加深对程序设计理论的理解。本文提出建设课程群的方法如下。
4结语
软件开发与设计是现代计算机技术中非常重要的应用领域。程序设计课程群的培养目标是培养高水平的软件设计开发人才,培养学生的程序设计能力和编码能力。我们分析了程序设计课程群的教学现状,指出了程序设计课程群在教学过程中存在的问题。通过问题分析及教学过程的经验总结,给出了程序设计课程群建设与研究的基本思路:明确培养目标,并将目标细化至课程章节;采用项目驱动为主的教学模式。辅以各种先进教学手段,培养学生程序设计能力;加强实践教学过程,培养学生的实际动手能力;加强教材建设,编写适于学生实际情况的项目驱动模式的教材;加强师资培养,提高教师的程序设计能力和教学能力;改革传统考试方式为上机考核。
[1]徐克奇.程序设计实践与分析课程建设的改革与探索[J].计算机教育,2009,6:63-66.
[2]马伟锋,雷运发,孙晓勇.应用型软件人才培养方案的关键问题研究[J].浙江科技学院学报,2009(21):69-71.