面向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

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、