Course Summary
This course teaches software engineering principles and techniques, including agile development, software design patterns, and refactoring. Students will learn how to write high-quality code, work in teams, and use tools like Git and GitHub.Key Learning Points
- Learn software engineering principles and techniques
- Develop skills in agile development, software design patterns, and refactoring
- Gain experience working in teams and using Git and GitHub
Related Topics for further study
Learning Outcomes
- Develop a solid understanding of software engineering principles and techniques
- Gain experience working in teams and using Git and GitHub
- Learn how to write high-quality code using software design patterns and refactoring
Prerequisites or good to have knowledge before taking this course
- Basic programming knowledge in a language such as Java, Python, or C++
- Familiarity with Git and GitHub
Course Difficulty Level
IntermediateCourse Format
- Online Self-Paced
- Video Lectures
- Hands-On Projects
- Quizzes and Assessments
Similar Courses
- Software Engineering Essentials
- Agile Development
- Object-Oriented Design
Related Education Paths
Notable People in This Field
- Martin Fowler
- Robert C. Martin
Related Books
Description
欢迎大家选修北京大学开设的软件工程MOOC课程。
Outline
- 软件工程概论和软件过程
- 课程宣传片
- 课程简介
- 软件的定义及特点
- 软件工程的起源和概念
- 软件开发的本质和基本手段
- 软件工程框架
- 软件生存周期过程的概念
- 软件生存周期过程的分类
- 软件生存周期模型的概念
- 常见的软件生存周期模型
- 软件的定义及特点测验
- 软件工程的起源和概念测试
- 软件开发的本质和基本手段测验
- 软件工程框架测验
- 软件生存周期过程的概念测验
- 软件生存周期过程的分类测验
- 软件生存周期模型的概念测验
- 常见的软件生存周期模型测验
- 软件需求
- 需求的作用
- 需求的定义
- 需求的分类
- 需求发现
- 需求规约的概念和格式
- 需求规约的作用
- 【补充】项目的需求及需求规约
- 需求的作用测验
- 需求的定义测验
- 需求的分类测验
- 需求发现测验
- 需求规约的概念和格式测验
- 需求规约的作用测验
- 结构化方法-1
- 结构化分析方法的概念
- 结构化分析模型
- 结构化分析过程
- 需求规格说明书
- 【补充】结构化分析案例
- 【补充】需求验证
- 结构化设计概念
- 初始模块结构图的设计
- 初始模块结构图精化的原则
- 【补充】总体设计案例
- 结构化分析方法概念的测验
- 结构化分析模型的测验
- 结构化分析过程的测验
- 需求规格说明书测验
- 结构化设计的概念测验
- 初始模块结构图的设计测验
- 初始模块结构图精化的原则测验
- 结构化方法-2
- 初始模块结构图精化的启发式规则
- 接口设计
- 数据设计
- 详细设计工具
- 软件设计规约
- 结构化方法总结
- 【补充】软件设计评审
- 课程实践题目
- 第一次课程实践示例
- 初始模块结构图精化的启发式规则测验
- 接口设计测验
- 数据设计测验
- 详细设计工具测验
- 软件设计规约测验
- 结构化设计方法总结测验
- 面向对象方法-1
- 面向对象的概念
- UML的概念
- 表达客观事物的术语——类
- 表达客观事物的术语——接口及其他
- 控制复杂性的术语——包
- 表达关系的术语——关联
- 表达关系的术语——泛化、细化、依赖及如何使用
- 面向对象的概念测验
- UML概念测验
- 表达客观事物的术语-类测验
- 表达客观事物的术语-接口和其他测验
- 控制复杂性的术语——包测验
- 表达关系的术语——关联测验
- 表达关系的术语——泛化、细化、依赖及如何使用测验
- 面向对象方法-2
- UML的模型表达工具_概述
- UML的模型表达工具_静态建模——类图
- UML模型表达工具_动态建模——用况图
- 顺序图
- 状态图
- UML总结
- UML的模型表达工具-概述测验
- UML静态建模-类图测验
- UML动态建模-用况图测验
- UML动态建模-顺序图测验
- UML动态建模-状态图测验
- UML总结测验
- 面向对象方法-3
- 面向对象分析概述
- 识别类
- 识别属性和操作
- 识别对象之间的关系
- 面向对象设计概述
- 问题域部分的概念
- 如何进行问题域部分的设计
- 第二次课程实践题目
- 第二次课程实践示例
- 面向对象分析概述测验
- 识别类测验
- 识别属性和操作测验
- 识别对象之间的关系测验
- 面向对象设计概述测验
- 问题域的概念测验
- 问题域部分的设计测验
- 面向对象方法-4和敏捷开发方法
- 人机交互部分的设计
- 控制驱动和数据管理部分的设计
- 程序设计范型和面向对象编程语言的特点发展
- 如何选择编程语言
- 敏捷开发概述
- 极限编程
- 敏捷设计
- Scrum模型
- 人机交互部分的设计测验
- 控制驱动部分和数据管理部分的设计测验
- 程序设计范型和面向对象编程语言的特点及发展测验
- 如何选择编程语言测验
- 敏捷开发概述测验
- 极限编程测验
- 敏捷设计测验
- Scrum模型
- 软件测试
- 软件测试的概念
- 软件测试过程模型和原则
- 白盒测试技术
- 黑盒测试技术
- 软件测试的步骤
- 软件测试的概念测验
- 软件测试过程模型和原则测验
- 白盒测试技术测验
- 黑盒测试技术测验
- 软件测试的步骤测验
- 软件项目管理
- 项目管理的概念
- 项目管理框架和要素
- 软件项目管理的概念
- CMM概念及发展
- CMM的基本内容
- CMM五级标准
- ISO9000标准
- 软件项目开发计划示例
- 项目管理的概念测验
- 项目管理的框架和要素测验
- 软件项目管理的概念测验
- CMM概念及发展测验
- CMM的基本内容测验
- CMM五级标准测验
- ISO9000标准测验
- 软件开发工具与环境
- 软件开发工具及环境的定义
- 工具集成模型
- 常用的软件开发工具和环境
- 软件开发工具和环境的定义测验
- 工具集成模型测验
- 常用的软件工程开发工具和环境测验
Summary of User Reviews
Key Aspect Users Liked About This Course
The course provides a comprehensive overview of software engineering concepts and practices.Pros from User Reviews
- Engaging and knowledgeable instructors
- Well-structured and easy to follow course material
- Practical assignments and projects that help reinforce learning
- Great community support and feedback
- Good balance between theory and application
Cons from User Reviews
- Some technical issues with the online platform
- The course may be too basic for experienced software engineers
- Not enough emphasis on modern development tools and technologies
- Occasional lack of clarity in instructions and assignments
- Limited opportunities for peer-to-peer interaction