研一的所有课程都是我自己选的,其中软件构造这门课,是选得比较好的一门课,这门课的课程内容是Software Construction on MIT OpenCourseWare,是MIT开放式课程在2016年春季的一门课,课程的中文名称叫做软件构造。
老师的上课形式也比较好,因为选课人数很少,所以每位同学分一个课题,然后在课下花40h以上的时间去准备,准备PPT和工程案例,每节课两到三名同学进行分享,并且给其他同学布置一个实践的作业,以此来让所有同学对于不是他自选课题的内容也都有理论的学习(听PPT并讨论)和实践的过程(做作业)。
课题列表如下:
01: Static Checking
02: Basic Java
03: Testing
04: Code Review
05: Version Control
06: Specifications
07: Designing Specifications
08: Avoiding Debugging
09: Mutability & Immutability
10: Recursion
11: Debugging
12: Abstract Data Types
13: Abstraction Functions & Rep Invariants
14: Interfaces
15: Equality
16: Recursive Data Types
17: Regular Expressions & Grammars
18: Parser Generators
19: Concurrency
20: Thread Safety
21: Sockets & Networking
22: Queues & Message-Passing
23: Locks & Synchronization
24: Graphical User Interfaces
25: Map, Filter, Reduce
26: Little Languages
27: Team Version Control
我做的课题是Parser Generators,对于这部分因为当时投入了大量的时间,所以还比较深刻,但是对于其他的课题,我都忘得差不多了.. 觉得还挺可惜的,所以现在总结回顾一下,发誓要和艾宾浩斯遗忘曲线抗争到底!(╯#-_-)╯~~~~~~~~~~~~~~~~~╧═╧
这个课程提出了好的软件应该具有的三个特点,之后的每一个课题到最后都会与它挂钩,所以这里先说一下,那就是:
- Safe from bugs
- Easy to understand
- Ready for change
Let's get started~
网友评论