软件工程专业国家精品课程建设software.nju.edu.cn/jiaochengpdf/d10 2-1-3...
TRANSCRIPT
软件工程专业国家精品课程建设软件工程专业国家精品课程建设
计算系统基础: 陈道蓄 王浩然 骆斌 等计算系统基础: 陈道蓄 王浩然 骆斌 等
计算与软件工程:骆斌 邵栋 丁二玉 等
全国高校软件工程教育年会(2009)
2009年11月1日
背景1:指导性专业教育规范背景1:指导性专业教育规范
软件工程专业教育规范给出了我• 软件工程专业教育规范给出了我国软件工程专业核心课程设置的准则
1 高等学校计算机科学与技术专业1. 高等学校计算机科学与技术专业发展战略研究报告暨专业规范—软件工程专业规范 齐—软件工程专业规范,2006,齐
治昌等
2. 中国软件工程学科教程,2005,刘强等刘强等
背景1:规范建议核心课程背景1:规范建议核心课程
计算机科学优先课程 软件工程优先课程计算机科学优先课程程序设计基础(CS101)
面向对象方法学(CS102)软件工程导论(SE201)
软件工程优先课程软件工程与计算I(SE101)软件工程与计算II(SE102)软件工程与计算III(SE200)软件工程导论(SE201) 软件工程与计算III(SE200)
数学基础课程 技术基础课程 非技术基础课程离散结构I(CS105) 数据结构和算法(CS103) 工程经济学(NT272)离散结构 ( 0 ) 数据结构和算法( 0 ) 工程经济学( )离散结构II(CS106)计算机体系结构(CS220) 团队激励和沟通(NT181)
操作系统和网络(CS226) 软件工程职业实践(NT291)数据库(CS270)
共性专业课程共性专业课程人机交互的软件工程方法(SE212) 软件工程综合实习(SE400)
软件工程核心课程组合I 软件工程核心课程组合II软件工程核心课程组合I软件代码开发技术(SE211)
软件设计与体系结构(SE311)软件质量保证与测试(SE321)
软件工程核心课程组合II大型软件系统设计与体系结构(SE213)
软件测试(SE221)软件详细设计(SE312)软件质 保证与测试
软件需求分析(SE322)软件项目管理(SE323)
软件详细设计软件工程的形式化方法(SE313)
软件过程与管理(SE324)
背景2:南京大学的研究预案背景2:南京大学的研究预案
• 《软件专业• 《软件专业应用性人才培养的研究培养的研究与实践》项目研究报告,南京大学,南京大学,2005‐2006,详见论文集详见论文集第1篇
背景2:该预案的课程设置背景2:该预案的课程设置• 初级课程:计算
系统基础 计算系统基础、计算与软件工程I/II/实践、离散数学、数据结构
• 中级课程:计算机组成原理、操机组成原理、操作系统、计算机网络、数据库系统统
• 软件工程高级课程:软件需求工程、软件系统设计与体系结构、软件构造、软件测试与质量
• 信息技术高级课程:web系统与技术、系统管理与维护、信息保障与安全
共享课程 人机交互的软件工程方法 软件过程与管理 统• 共享课程:人机交互的软件工程方法、软件过程与管理、统计与经验方法
南京大学的实践方案南京大学的实践方案
以教育部专业教育规范为准则• 以教育部专业教育规范为准则
• 以应用型软件人才培养预案为基础以应用型软件人才培养预案为基础
• 以软件工程人才培养为核心,并覆盖
一个简单的信息技术人才培养方案,
构成南京大学软件工程学科教程 本构成南京大学软件工程学科教程‐本
科生培养方案2006/2008科生培养方案 /
• 南京大学软件工程专业本科教程,高
等教育出版社,2009
南京大学实践方案:核心课程南京大学实践方案:核心课程
南京大学实践方案:初级课程南京大学实践方案:初级课程
构建逻辑概念上相对完整的初级课程群
扩充最基本的计算系统概念扩充最基本的计算系统概念
扩充对非技术课程中基础内容的融合
培养“系统级认识”的观念培养“系统级认识”的观念
培养“工程”观念
软件工程优先
理论教学与实践教学相融合理论教学与实践教学相融合
开发活动与职业素质相融合
南京大学实践方案:初级课程南京大学实践方案:初级课程
规范初级课程 规范其他课程 南大初级课程规范初级课程 规范其他课程 南大初级课程
程序设计
基础
计算机中级课程基础:
玩具式计算系统模拟
计算系统
基础基础 玩具式计算系统模拟 基础
面向对象
方法学
计算与
软件工程I
计算与
软件工程II
计算与
软件工程
导论
团队激励
和沟通计算与
软件工程实践软件工程专业实践:
本科二年级可实施部分
数据结构 数据结构数据结构
和算法
数据结构
和算法
离散 离散离散
结构
离散
结构
南京大学实践方案:初级课程南京大学实践方案:初级课程
算系统基础• 计算系统基础
• 计算与软件工程I课程名称
每学期课时分布
1 2 3 4
• 计算与软件工程II
• 计算与软件工程实践
计算系统基础 64
计算与软件工程I 48
计算与软件工程II 48• 计算与软件工程实践
• 离散结构
计算与软件工程 48
计算与软件工程实践32
离散数学• 数据结构与算法
离散数学数据结构与算法
4848
• 详见本次会议论文集第7篇论文:《人家工程
专业初级课程的改革与实施》专业初级课程的改革与实施》
计算系统基础:设置思路计算系统基础:设置思路
• 软件工程专业入门课程
– 融硬件基础与系统软件基础为一体
– 系统级认识和编程能力双优先
建立完整的计算概念和系统级认识– 建立完整的计算概念和系统级认识
• 2008年国家精品课程• 2008年国家精品课程
计算系统基础:课程内容计算系统基础:课程内容• 主题:计算机硬件和系统软件基础、软件工程主题:计算机硬件和系统软件基础、软件工程
方法指导下的结构化程序设计
• 采取系统级认识和编程能力双优先的策略,基于自底向上的教学模式,围绕一个简单的假想的计算机进行从比特到高级语言(C语言)的全面 系统的介绍 为初学者建立起完整的计算面、系统的介绍,为初学者建立起完整的计算概念
• 包括数据的机器级表示 数字逻辑 冯•诺伊曼• 包括数据的机器级表示、数字逻辑、冯•诺伊曼模型、机器语言、汇编语言、输入和输出、Trap机制和子程序、结构化程序设计与C语言,Trap机制和子程序、结构化程序设计与C语言,以程序设计为主线并引导学生的系统级认识
计算系统基础:课程实施计算系统基础:课程实施
• 重点
– 为初学者建立对计算系统的初步认识为初学者建立对计算系统的初步认识,同时掌握面向过程程序设计
– 在解决问题时具备将硬件与软件相结– 在解决问题时具备将硬件与软件相结合的思想
难点• 难点
– 课程内容涉及广泛,需要很好的把握涵盖尺度,避免大而全的教学方式。
计算与软件工程:设置思路计算与软件工程:设置思路
计算与软件工程I 计算与软件工程II 计• 计算与软件工程I、计算与软件工程II、计算与软件工程实践
融程序设计与软件工程为 体– 融程序设计与软件工程为一体• 软件工程优先 :“工程”观念指导下的程序设计
融理论教学和实践教学为 体– 融理论教学和实践教学为一体• 强调实践能力的训练:个体级实践 团队级实践(模拟)真实项目环境实践模拟 真实项目环境实践
• 强调工具的使用
– 融知识能力培养与职业能力培养为一体• 开发活动中融入职业技能
• 实践中强化职业素质
• 2009年国家精品课程
计算与软件工程:课程内容计算与软件工程:课程内容
• 计算与软件工程– 以工程理念为指导,系统讲授:
• 面向对象程序设计,
• 分析、设计、测试等软件工程方法,
项目管理方法• 项目管理方法,
• 文档写作、交流沟通、团队合作等职业技能,
– 强调软件工程工具的使用和实践能力的训练– 强调软件工程工具的使用和实践能力的训练
– 综合培养程序设计能力、软件工程技能、职业素质,建立工程化软件开发观念业素质,建立工程化软件开发观念
– 课程分为三学期实施教学
计算与软件工程:课堂教学计算与软件工程:课堂教学
算与软件 程 个典型的软件 程• 计算与软件工程I:以一个典型的软件开发过程为线索讲授基本的软件工程方法和基于JAVA语言的中小规模软件开发 强调个体级软件开发能力的中小规模软件开发,强调个体级软件开发能力
• 计算与软件工程II:讲授经典的软件工程方法,并涉及软件工程历史和职业技能 教会学生使用并涉及软件工程历史和职业技能,教会学生使用软件工程理念指导程序设计,以小组方式进行中大规模软件开发
• 计算与软件工程实践:以团队实践和阶段交换为特征,通过开发一个中等规模软件系统的方式,培养学生对程序设计和软件工程方法的实际运用能力,同时强化学生的职业技能和项目管理能力
计算与软件工程:实践教学计算与软件工程:实践教学• 计算与软件工程I计算与软件 程
– 验证性实验:分主题进行,训练面向对象的程序设计能力
– 设计性综合实验
• 培养学生在软件工程方法指导下进行程序设计的能力的能力
• 把一个软件开发项目分解成3-4个子项目(如:3人合作的网络智能五子棋项目,4人合作的网3人合作的网络智能五子棋项目,4人合作的网络加密通讯录管理项目),同时把学生平均划分为3-4组,每组的学生在规范的软件工程方法指导下独立完成 个具体的子项目的简单分析指导下独立完成一个具体的子项目的简单分析设计和编程实现工作。从理论上来说这些子项目可以拼接成一个软件系统,以备在《计算与目可以拼接成 个软件系统,以备在《计算与软件工程II》的实验中印证和检讨
计算与软件工程:实践教学计算与软件工程:实践教学
计算与软件 程• 计算与软件工程II
– 设计性综合实验:与计算与软件工程I联合设计
培养学生综合掌握软件工程方法与中等规模软件• 培养学生综合掌握软件工程方法与中等规模软件程序设计的能力
• 分布在计算与软件工程I综合实验各组中的学生分布在计算与软件工程I综合实验各组中的学生结队,站在整个软件开发项目的高度重新审视这个项目的分析、设计、实现和实施。
• 计算与软件工程实践:设计性综合实验
– 以软件工程方法和程序设计方法的联合使用为基础目标基础目标
– 以职业素质和项目管理方法的培养为强化目标
建立了真实的项目环境 强调团队协作 重视– 建立了真实的项目环境,强调团队协作,重视标准和规范使用,要求大量辅助性的课外阅读
计算与软件工程:课程实施计算与软件工程:课程实施
• 重点• 重点
– 面向对象程序设计的知识与能力;
– 分析、设计、测试等软件工程方法;分析、设计、测试等软件工程方法;
– 项目管理,文档写作、交流沟通、团队等职业技能
• 难点难点
– 增加学生对软件工程的感性认识,建立起工程化软件开发观念
– 在正确软件工程方法指导下进行程序设计与软件开发
在学校实验环境中模拟管理– 在学校实验环境中模拟管理
– 在本科教育阶段培养职业技能
训练学生的自学习能力和对未来工作环境的自适应– 训练学生的自学习能力和对未来工作环境的自适应能力
总结总结
• 南京大学软件工程初级课程规划方案
– 以计算系统基础和计算与软件工程为代表
– 从“系统级”认识和“工程”观念等角度进
行了全新规划设计行了全新规划设计
– 取得了明显效果,有良好反馈
下 步建设方向• 下一步建设方向– 丰富教学资源、教学方法与教学手段
– 调整和完善课程内容
谢谢!