跳转至

1688975600

软件工程

CS 专业必修

课程学习内容

这门课主要讲授 20 世纪 90 年代软件公司的开发模式,大致可以分成分析、设计和测试三个阶段,以及身为产品经理应该怎么管理团队、管理项目。

  • 分析阶段
    • 将需求分析清楚,开端 - 获取 - 细化 - 协商 - 规格说明 - 确认
    • 四种模型:基于场景 / 基于类 / 行为模型 / 面向流
  • 设计阶段
    • 根据分析结果,进一步设计细化,得知该如何开发
    • 数据 / 类设计,构件级设计,体系结构设计,接口设计
  • 测试阶段
    • 测试战略:单元测试 / 整合测试 / 系统测试 / 验证测试
    • 测试战术:黑盒 / 白盒测试,OOP 测试,安全性测试
  • 管理学
    • 质量管理,软件配置管理
    • 过程管理,项目度量和估量,进度安排,风险管理
    • 团队管理,敏捷团队,开发模式等

任课教师

算是新来的老师,带的第一届是 19 级,第二届是 20 级,他在课上说他带的第一届是均绩最高的,20 级给分似乎有较大波动(本人被绩杀,群内无人谢谢老师,但也有人表示给分不错)。zq 没有翻转课堂,老师人也比较好,讲课也不错,不是照着读 PPT,会尽力把讲课内容串起来让大家能记住,每年都会腾出一节课请大厂不错的程序员来分享经验(也有投递简历的机会)。上课氛围不错,会友好地提问同学,在课堂上不允许使用电脑(但是好多人依旧在用)。另外 zq 几乎每节课下课都要问有没有人愿意去 CAD&CG 实验室。

关于点名和小测,20 级有一次小测一次点名,小测是一个小组交一份能现场查,点名是现场点名。关于大作业,首先 5-7 个人组成小组,然后 3-4 个小组组成大组(人数要求在 20 人左右),完成一个网页或 app 软件(题目给定,做手机 app 能加分);zq 20 级取消了第一次开题展示,只有最后一次的大作业展示,报告从 4 份减为 3 份(需求、设计、测试报告,去除设计模式报告)。

zq 最后一节课会闭麦提一些知识点,可以用纸或者录音等记一下帮助复习。

等待有缘人补充。

软工三大 1 分老师之一。最麻烦的就是 yjw 搞翻转课堂,每节课随机抽学生讲课,相当于你前期每节课都需要认真听翻转课堂备课,然后每节课都要忐忑不安地看会不会被随机抽到。如果被抽到但是没来上课 / 没有备课,就会直接平时分 -3。如果有备课,可以上去讲,讲完之后 yjw 会对你讲的进行补充,在这期间你需要站在 yjw 边上(罚站 x)。

但是客观地说,在一些细节上 yjw 人还算不错,比如对一些大程 pre ddl 根据学生实际情况进行延迟,当然我觉得应该也有助教的因素。以及 yjw 虽然平时分制度整得比较烦,需要人长期备课、踊跃发言,但是后期抽人讲课变成了较为固定的只抽发言比较少的同学,部分同学从不备课只靠发言也算是过得相对轻松。以及 yjw 也善于问一些简单的问题,不吝于让大家水发言分,也算是搞烦的但也不赶尽杀绝了。

但是翻转课堂 + 学生讲课的模式实在太过抽象与令人烦躁,建议能逃 yjw 尽量逃走,为本就压力巨大的大三春夏减轻一些不必要的压力。

等待有缘人补充。软工三大 1 分老师之一。听说事比较少,但是给分不稳定。曾经查老师评分高过。

等待有缘人补充。软工三大 1 分老师之一。是查老师上著名的“谏王七策”的典故的出处。听说事多很少,但是他的小测似乎对于考试还是有帮助。

分数构成

  • 课堂小测(20%)
    • 若本学期点名次数或者随堂测试大于 4 次:4 次或 4 次以上当场未到者,以零分计;少于 4 次者,乘以实到数与应到数的系数
    • 若本学期点名次数 N 少于 4 次但不少于 1 次,则每次分数为 20 / N
    • 若本学期未点名,则全部得满分
  • 大程(40%)
    • 4 个报告:需求报告、设计报告、设计模式报告、测试报告,每个报告 5 分(20 级去除设计模式报告)
    • 2 次展示:总体报告演讲、系统展示演讲,各 10 分,演讲要求:由组长担任,全体到场汇报,缺一人集体扣 2 分(20 级只有最后一次演讲)
  • 期末考试(40%)

等待有缘人补充。

  • 讨论(30%)
    • 随机抽人讲课,抽到不讲 -3,抽到讲得正常 +10 15 分,讲得太烂也要扣分
    • 发言一次 +3
    • 如果明确只抽发言少的人讲课,建议可以多多发言,发言 10 次直接摆烂
  • 大程(30%)
    • 分为分析、设计、测试三次展示
    • 每次会有各组互评和助教评分
    • 猜想可能每次展示各占 10
  • 期末考试(40%):斩杀线 40
  • 特殊规定:如果有人能够在课程期间在给定的软件工程相关的高级会议上发表论文,总评直接 95
    • 20 级没有人去使用这条特殊规定
  • 特殊规定:平时分排名前 5 可以选择给期末考试出题来替代期末考试
    • 20 级这条规定没有实际实施

等待有缘人补充。

等待有缘人补充。

参考资料

课程教材

《软件工程:实践者的研究方法》Software Engineering: A Practitioner's Approach

20 级使用的是第 8 版,作者为 Roger S. Pressman 以及 Bruce R. Maxim。这本教材讲的是 20 世纪 90 年代软件公司的开发模式,很多东西已经非常古老了,实用价值不大。笔者直接看的中文版。

其他资料

除了上课的 PPT 之外,可以参考以下的资料:

求是潮仓库和 98 上的历年卷当然是要看的,重点关注画图题,尽量多熟悉历年卷。如果别的老师有小测可以搞来看看,比如 20 级就考到了 wzy 的小测原题。

学习建议

软件工程是计院课答辩属性的集大成者,由 CS 专业独享,多是一件美逝啊。你将能够在这门课上感受到:

  • 具有二十余年传统的课程内容
  • 毫无营养的讲课体验
  • 毫无激情的组队答辩开发
  • 无从下手的考试准备

所以你所需要做的就是忍过这门课,拿到必修的这两个学分。以下我的建议将分别针对卷王和突击展开:

如果你只想飘过这门课,可以进行如下的操作:

  • 平时水水算了,不需要听课品鉴答辩
  • 组队找大佬,抱紧大佬的大腿,并理解大佬在做什么,大佬需要你写文档 / 打下手就殷勤上手
  • 考前刷课程网站上的题库,并重点突击画图题
  • 刷刷历年卷

如果你希望在这门课上卷个高分,你可能需要:

  • 在课堂上(如果是 yjw,建议在他的翻转课堂上)知识蒸馏得到每堂课的重点
  • 每节课后都做一做课程网站上对应章节的题库
  • 大程认真参与,积极画画几种图
  • 平时做出了这些努力,期末对题库和大部分画图题就都比较熟悉了,只需要再回顾一下这些,刷刷历年卷,学有余力梳理一下 PPT 上每个章节的重点内容和知识框架,就可以冲击 4.8 乃至 5.0

最后为了上课的体验,大家组队的时候尽量找信得过的靠谱的同学,否则你期末可能会破防。