面向AI实践的软件工程基础课程-北京航空航天大学罗杰.md

本文主要是介绍面向AI实践的软件工程基础课程-北京航空航天大学罗杰.md,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

面向AI实践的软件工程基础课程

目录:

  • 面向AI实践的软件工程基础课程
    • 目录:
    • 一、课程基本情况介绍
      • 1. 发展
      • 2. 课程在课程体系中的位置
      • 3. 课程的能力培养目标
      • 4. 课程的组织结构
    • 二、课程内容的建设方案
      • 1. 尽早引入人工智能开发平台与工具
      • 2. 面向智能软件开发的敏捷软件开发流程设计
      • 3. 面向智能软件开发的团队项目设计
      • 4. 课堂实践安排模板
    • 三、课程教学和共建计划

一、课程基本情况介绍

1. 发展

事件
2007首次邀请邹欣老师讲授软件工程
2012再次邀请邹欣老师讲授软件工程
2013基于“做中学”的模式,开始以实践为核心的软件工程课程改革试点
2016软件工程系列课程改革基本完成,软件工程课程改为选修
2017引入翻转课堂,尝试将软件工程课程教学和实践流程规范化
2019-软件工程课程更名为敏捷软件工程,与人工智能软件工程与嵌入式软件工程合并为计算机学院软件工程课程,变为必修,三门课程独立授课

2. 课程在课程体系中的位置

学期课程
大三下敏捷软件工程
大二下面向对象设计与构造
大二上算法设计与分析
大一下数据结构与程序设计基础

3. 课程的能力培养目标

  • 软件能力:按照工程化方法来开发高质量复杂软件系统的能力
  • 软件工程基础课程:通过团队协作使用现代软件工具按照软件工程方法来开发高质量并且可用复杂软件系统的能力
    • 复杂软件系统:具有一定复杂性、需要团队协作来完成的软件系统
    • 团队协作:两人协作、5-7人团队协作
    • 软件开发工具:充分利用现代工具来提高开发的效率和质量
    • 软件工程方法:构建一个有效协作的功能团队,综合运用极限编程、测试驱动、敏捷等软件工程方法和最佳实践,通过有效项目管理按计划的开发满足典型用户需求的可用软件方法
    • 高质量:能够使用技术性手段来确保所开发软件的质量
    • 可用:能够通过技术性手段来证明软件的可用性并获取用户的反馈

4. 课程的组织结构

  • 课堂教学:研讨性教学、课堂练习、作业点评、讨论、团队项目汇报
  • 课后作业:博客作业
  • 项目实践:
    • 结对项目 (2周)
    • 团队项目 (12周)
    • 总结回顾 (2周)
  • 16周左右完成课程

团队项目

  • 目标
    • 练习1对多合作
    • 学习敏捷软件开发方法,软件团队的构建,软件生命周期及各个阶段所用到的工具
    • 开发一个值得骄傲的可用软件
  • 时间
    • Alpha迭代4周,项目评审和反思1周
    • Beta迭代4周,反思1周
    • Gamma迭代4周,项目评审和反思1周

    注:Beta阶段反思与Gamma阶段设计与计划压缩成一周

  • 内容
    • 代码规模在1-2万行左右,面向实际用户的可用软件
    • 在已有软件的基础上进行软件开发,或者提出满足特定用户需求的软件并进行开发
    • 以5~7人团队的形式进行团队协作
    • 通过两轮迭代的敏捷软件开发,体验软件开发的全生命周期
    • 每一轮迭代的流程和任务: |时间|软件开发阶段|博客任务| |--|--|--| |第一周|计划和设计|1. 团队贡献分分配
      2. NABCD需求分析
      3. 功能规格说明书
      4. 技术规格说明书| |第二周|实现(冲刺第一周)|五篇每日例会博客| |第三周|实现(冲刺第二周)|五篇每日例会博客| |第四周|稳定和发布|1. 测试计划和报告
      2. 发布说明| |第五周|评审和反思|1. 维护和反思
      2. 项目展示
      3. 转会人员确定(Alpha)|
  • 要求
    • 团队项目每一项任务都必须有结果
      • 代码签入、博客、文档等
    • 团队项目过程中所有材料公开
      • 每个团队公布可实施的进度表
      • 在冲刺过程中发布每日例会记录
    • 团队项目开发的软件要有真实用户
      • 展示用户数量和对软件的反馈
    • 在每轮迭代之后进行反思
      • 找出自己和团队在本轮迭代之中的不足之处,并提出改进办法
      • 从反思和错误中学习巩固软件工程知识和方法
  • 课程实践安排
    • 以19年上学期为例: 课程实践安排

二、课程内容的建设方案

1. 尽早引入人工智能开发平台与工具

  • 在开课之前,基于微软AI301课程整理出一个基础的人工智能开发平台和工具预训练资料
  • 尽可能早的将资料分享给学生进行预习,使其基本掌握人工智能开发工具的使用
  • 在课程中加入对人工智能软件开发等发展趋势的介绍
  • 为在团队项目实践中引导学生自觉地使用人工智能技术解决实际问题做准备

2. 面向智能软件开发的敏捷软件开发流程设计

  • 在经典的敏捷软件开发流程的基础上,面向智能软件的开发要求和特点进行改造适配

    软件开发流程改进适配计划
    需求分析加入与智能相关需求的
    设计人工智能模型的设计及
    实现人工智能模型的实现、训练及验证
    测试人工智能模型的测试

3. 面向智能软件开发的团队项目设计

  • 智能软件开发项目设计:
    • 从人工智能领域研究者手中获取需求,提升项目类型的多样性
    • 注意与当前先进的人工智能技术和理念相结合,激发学生的兴趣
  • 过程管理机制设计:
    • 在过程管理的结点中加入与人工智能技术相适应的检查结点
    • 加强对技术风险的管控,注意引导学生规避

4. 课堂实践安排模板

时间课堂任务项目作业
第0周第0次个人作业,人工智能开发平台和工具预训练
第1周个人项目
第2周代码复审、结对项目
第3周个人项目点评代码复审、结对项目
第4周案例分析、团队博客作业(团队介绍,采访说明)
第5周结对项目点评团队项目选择:项目建议和NABCD用户需求分析,需求中智能化问题分析,团队贡献分分配方案
第6周审核项目计划计划和设计:功能规格说明书和设计文档,包含人工智能模型设计、训练数据准备方案、技术选择等
第7周规格说明书审核实现(冲刺):发表至少10次每日例会记录,人工智能模型的实现与训练
第8周项目进度追踪
第9周项目进度追踪稳定和发布:测试报告、发布说明,人工智能模块的测试
第10周测试和发布情况推广和收集用户反馈
第11周Alpha阶段项目评审Alpha阶段反思,团队成员转会
第12周反思博客点评,Beta阶段改进计划计划和设计:功能规格说明书和设计文档,包含人工智能模型设计、训练数据准备方案、技术选择等
第13周规格说明书审核实现(冲刺):发表至少10次每日例会记录,人工智能模型的实现与训练
第14周项目进度追踪实现(冲刺):发表至少10次每日例会记录
第15周项目进度追踪稳定和发布:测试报告、发布说明,人工智能模块的测试
第16周测试和发布情况推广和收集用户反馈
第17周Beta阶段项目评审Beta阶段反思

根据学校课程体系的情况,可以依据模板进行若干修改。例如本届北航删去了个人项目,并增加了一个团队开发迭代。

三、课程教学和共建计划

任务时间节点
完成预训练资料并发布2019年1月底
完成团队实践项目开发流程的改造2019年2月
完成面向智能软件开发的团队项目题目设计2019年3月初
《软件工程基础》课程选课2019年3月初
引导学生完成预训练,发布团队项目题目2019年3月底
团队项目选题完成,开始项目计划和需求分析,分享学生的项目计划,需求分析报告和设计文档2019年4月初
项目实践过程和源代码在GitHub公开2019年4月初开始
项目每日例会报告在cnblogs公开2019年4月初开始
分享第一轮迭代团队项目展示以及反思2019年5月初
进入第二轮迭代,优化需求分析报告和设计文档,优化团队项目协作方式和项目管理方式2019年5月初
进入第三轮迭代2019年5月中
分享最终项目展示及总结反思2019年6月中

班级:

  • https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_LJ
  • https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_RJ

这篇关于面向AI实践的软件工程基础课程-北京航空航天大学罗杰.md的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694414

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-