几种可行的中国软件工程专业核心课程设置方案-几种可行的中

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

几种可行的中国软件工程专业本科生核心课程设置方案南京大学软件学院骆斌,邵栋,王浩然11、引言软件工程是指开发、操作和维护软件系统的系统、规范、可度量的方法。从历史上看,软件工程学科曾是计算机科学的一个分支,长期以来与计算机科学存在很强的联系。卡耐基梅隆大学软件工程研究所认为软件工程是应用计算机科学和数学来寻求在合理成本范围内解决软件问题的工程方法。但软件工程学科是否是计算机科学的一个分支,还是传统工程学科的一个领域,或者它就是一个独立的学科,曾经存在着非常大的争论。IEEE于2001年提出了计算学科的教学规划,把传统的计算机学科上升到计算学科,并把计算学科划分为计算机科学、计算机工程、软件工程、信息系统、信息技术和其他有待发展的学科等子学科,体现了当前国际计算科学界对这个问题的看法,标志着软件工程这个名词作为与计算机科学相对应的各种软件实践技术的总称已经得到世界范围内的公认。中国在80年代就开始了软件工程专业的教学试点,国务院《振兴软件产业与集成电路产业发展的若干政策》明确要求加快多层次软件实用人才的培养,有力推动了我国软件工程专业的建设工作,特别是2001年底教育部推出的示范性软件学院计划进一步促进了我国软件工程专业的迅速发展和成熟。软件工程专业的教育目标定位于面向软件产业培养高素质的工程型软件实用人才。围绕这一定位,软件工程专业的高等教育应该围绕大型软件开发过程中的工程方法、关键技术和相关工具展开。作为一个刚刚起步的专业,研究软件工程专业的核心课程设置显得非常重要。通过详细分析IEEECC2001的软件工程学科教程和认真比对国际国内软件工程专业的课程设置方案,本文提出几种可行的软件工程专业核心课程设置方案,供计算机教育界讨论和参考。2、总论软件工程专业课程体系建设的一个重要原则是:本科生核心课程不是计算机科学专业核心课程和软件工程类核心课程的简单堆砌,而应该对计算机科学核心课程进行有效的裁减和调整。从软件工程专业本科毕业生所应具备的知识体系来看,在大学教育期间,学生应学习的知识大致可以划分为下面6个子类:z基本素质。依据教育部要求所应具备的政治、基础数学、外国语和基本素质知识;z软件基础。从事计算机软件工作所应具备的专业基础知识;z软件工程与软件管理。从事计算机软件工作所应具备的软件工程与软件管理知识;z专业相关的数学、工程和职业基础。从事计算机软件工作所应具备的数学、工程和职业知识;z软件系统与应用。从事某一方面计算机软件工作应具备的专业或领域应用知识;z软件工具与产品。从事计算机软件工作所应掌握的当前主流软件工具与软件产品。从专业基础知识范畴看,软件工程专业本科生核心课程主要涉及软件基础,软件工程和软件管理,数学、工程与职业基础等子类,并可能涉及部分软件工具和软件产品作为教学载体。由于微积分、离散结构、统计与经验方法作为整个计算学科的核心数学课程已经成为定论,为方便讨论,本文在讨论核心课程时不再涉及。针对各个学校软件工程专业的师资力量和办学特色,本文给出以下四种可行的本科生核心课程设置方案:1骆斌,博士,教授,副院长;邵栋,副教授;王浩然,博士,讲师。z模式A:侧重于计算机科学的课程设置模式;z模式B:侧重于软件开发技术的课程设置模式;z模式C:侧重于系统认识的课程设置模式;z模式D:侧重于工程化理念的课程设置模式。课程启动策略对于核心课程设置是非常重要的,不同的课程设置方案需要小心地定义启动课程,以满足整个课程设置的需要。课程组织策略也非常重要,包括:1)基于主题的组织模式,它把知识体系中的每个知识领域组织成一门或几门课程;2)基于系统的组织模式,它把每类计算机软硬件系统设置一门或几门课程;3)混合模式,在课程设计时不考虑区分前两种方法,兼而有之。对软件工程专业而言,一般来说,专业基础课程较为适合按照基于主题的模式组织;专业课程则按照基于系统的模式组织更利于体现工程特色。本专业的特色课程设置也有很多需要注意的地方。特色课程设置策略依据本校的办学特色和研究专长而形成,在计算机科学专业,因研究特长设置特色课程非常普遍,也非常合适。由于软件工程专业的课程规划应强调工程性、实用性和系统性,因此,特色课程设置时要系统地考虑,结合软件工程的若干子领域和软件工程应用的若干子领域,进行全面规划,并较适合于采用基于系统的组织模式。专业实践课程在课程设计过程中也必须提及。此类课程是软件工程专业必须实施的重要课程;独立设置的专业实践课程(如软硬件平台级、个人程序设计级、团队软件工程级、信息系统级实践课程)和工程实习也非常重要。此外,软件产品和工具的知识领域除设置少量课程外,大都应融合在具体课程之中;交流、沟通、讲演、写作和团队能力的培养也是这样。为简化讨论,核心课程设置方案仅涉及主要课程和课程启动策略。各学校可以根据自己的具体情况进行参考,并补充数学课程、专业实践课程、职业课程、特色课程以形成完整的教学计划。3、模式A:侧重于计算机科学的课程设置方法此类课程设置方法侧重于计算机科学专业与软件工程专业的结合,在突出专业的工程特色的同时亦注重软件工程的科学属性,有利于从计算机科学专业到软件工程专业的过渡,适合那些从计算机科学专业转化而来的软件工程专业。此类核心课程设置方法基本类同于IEEE2001SE推荐的计算机科学优先方法,主要核心课程有:程序设计基础、面向对象方法、计算机组织结构、数据结构与算法、操作系统与网络、数据库概论等6门计算机科学核心课程;按照自底向上的方法展开的软件工程概论、软件构造,软件设计与体系结构、人机交互技术、软件需求分析、软件质量保证与测试、软件项目管理等7门软件工程核心课程;工程经济学、团队动力与沟通、软件工程职业实践等3门工程职业课程;软件工程综合实践与毕业设计。课程启动策略建议采用程序设计优先方式,把程序设计基础作为学生的入门课程。特色课程组织建议偏向于软件技术类,根据本校学术特色组织,在课程组织策略上采用混合模式。4、模式B:侧重于软件开发技术的课程设置方法此类课程设置方法强化学生对软件开发技术的要求,并适当简化对硬件和系统软件构造知识的要求,从而简化了模式A中计算机科学核心课程的数量,通过改造部分课程,有利于学生学习的有效性程度。此方法适合那些仅仅从事高层软件开发的学生。核心课程具体描述如下:z新设入门课程:计算机导论。该课程通过广度优先的方法简要而全面论述计算机硬件和系统软件,让侧重于学习软件开发的学生用较小的时间代价掌握对计算机系统的认识。z从计算机科学专业继承来的重要核心课程3门。包括:程序设计基础、面向对象方法、数据结构与算法。z建设一门新课程:系统程序设计。该课程全面介绍操作系统和网络环境下的系统程序设计接口,强调利用这些接口进行应用软件设计和开发。z建设一门新课程:数据库与信息系统。该课程全面介绍利用网络环境下的关系数据库开发接口,强调利用这些接口设计和开发数据库应用系统和信息系统。z按照自底向上的方法展开的软件工程概论、软件构造、软件设计与体系结构、人机交互技术、软件需求分析、软件质量保证与测试、软件项目管理等7门软件工程核心课程。z工程经济学、团队动力与沟通、软件工程职业实践等3门工程职业课程。z软件工程综合实践与毕业设计。特色课程组织建议偏向于软件技术类,根据本校办学特色组织,在课程组织策略上采用混合模式。5、模式C:侧重于系统认识的课程设置方法此类课程设置方法根据软件工程学科对硬件和系统软件的知识要求,重新构造此部分软件基础课程,并强调学生对于计算机系统的系统级认识和对于工程化软件开发方法的认识。同模式B比较,此类方法强化了软硬件基础知识的要求,更适合那些需要全面了解系统软件和应用软件开发的学生。同模式A相比,此方法同样简化了计算机科学核心课程的数量,既有利于学生学习的有效性程度,又有利于学生对知识的掌握程度。核心课程具体描述如下:z新设入门课程:计算基础。该课程采用程序设计与系统级认识双优先方式,从计算的角度组织数字逻辑、处理器、机器级程序设计、Routines和面向过程程序设计,向学生呈现完整的计算概念。z从计算机科学专业继承来的重要核心课程2门。包括:面向对象方法、数据结构与算法。z建设一门新课程:计算机系统基础。该课程从计算机系统构造的角度组织计算机组成、设备与通信、操作系统和其他系统软件设计,向学生呈现全方位的计算机系统组织和构造方式。z建设一门新课程:网络通信系统。该课程全面介绍计算机网络硬件、网络协议与网络操作系统、网络应用系统的构造方法,强调网络软硬件系统的系统级认识、网络工程与组网技术、网络应用系统设计与构造。z建设一门新课程:数据库与信息系统。该课程基本同模式B中对应课程,但讲授过程应侧重于系统级认识。z按照自顶向下的方法展开的软件工程概论、大型软件系统构造与体系结构,软件详细设计、人机交互技术、软件测试、软件过程与管理、软件工程的形式化方法等7门软件工程核心课程。z工程经济学、团队动力与沟通、软件工程职业实践等3门工程职业课程。z软件工程综合实践与毕业设计。特色课程组织建议偏向于软件系统与应用类,根据本校办学特色组织,在课程组织策略上采用基于系统的课程组织模式。6、模式D:侧重于工程化理念的课程设置方法此类课程设置方法根据软件工程学科的知识要求,突出工程理念,以工程化方法为手段,彻底重新构造基础课程,融软件基础和软件工程两个基础知识体系子类为一体,从而简化了计算机科学核心课程数量。此类核心课程设置方法基本类同于IEEE2001SE推荐的软件工程优先方法,主要核心课程有:计算机组织结构、数据结构与算法、操作系统与网络、数据库概论等4门计算机科学核心课程;按照自底向上的方法展开的软件工程与计算导论,软件工程与计算II,软件工程与计算III,大型软件系统构造与体系结构,软件详细设计、人机交互技术、软件测试、软件过程与管理、软件工程的形式化方法等9门软件工程核心课程;工程经济学、团队动力与沟通、软件工程职业实践等3门工程职业课程;软件工程综合实践与毕业设计。课程启动策略建议采用工程优先方式,把软件工程与计算导论作为学生的入门课程。并通过软件工程与计算II,软件工程与计算III两门课程在工程化理念的指导下展开程序设计和面向对象方法教学。特色课程组织建议偏向于软件系统与应用类,根据本校办学特色组织,在课程组织策略上同样采用基于系统的课程组织模式。由于目前有关教学实践较少且变动幅度过大,因此可行性尚需进一步验证。7、部分改造课程和新设课程的简要描述计算机导论:本课程是模式B的入门课程,通过广度优先的方法简要而全面论述计算机硬件和系统软件,让侧重于学习软件开发的学生用较小的时间代价掌握对计算机系统的认识。含:计算的历史;计算机系统的构成;冯.诺依曼模型:基本组件;指令处理;输入与输出:基本I/O;程序设计语言;操作系统原理与构造;系统软件和应用软件;通信与网络基础。系统程序设计:本课程是模式B的重要基础课程,全面介绍操作系统和网络环境下的系统程序设计接口,强调利用这些接口进行应用软件设计和开发。含:操作系统结构;操作系统下的系统程序设计;网络程序设计;并发程序设计;系统设计方法。数据库与信息系统。本课程是模式B和模式C的重要基础课程,该课程全面介绍利用网络环境下的关系数据库开发接口,强调利用这些接口设计和开发数据库应用系统和信息系统。含:数据库系统概论;关系数据库基础;SQL;数据建模;数据库管理;数据库优化;信息系统概论;信息系统分析设计;信息系统应用开发。计算基础:本课程是模式C的入门课程,通过逐次介绍bit、门电路、处理器环境、机器语言、汇编语言、Routine到C语言的基本要素,给初学者建立起完整的计算概念,并使得学生掌握面向目标的程序设计和结构程序设计的基本技巧。计算机系统概论:本课程是模式C的重要基础课程,与计算系统基础相互配合,逐步建立学生对计算机软硬件系统的系统级认识。它以硬件环境为基础,操作系统为核心,关注系统软件的构造技术,全面介绍层次化的计算机系统视图。本课程还介绍并发程序设计、数据库管理系统实现的有关技术。网络通信系统:本课程是模式C的重要基

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功