课程介绍
这是一门关于如何写出高质量代码的课,课程介绍中说这门课的目标是:
The prime objective of 6.031 is learning how to write code that is:
- safe from bugs (SFB),
- easy to understand (ETU), and
- ready for change (RFC).
Every idea and skill in the course is calibrated against those goals. Specific objectives include:
an understanding of key software engineering ideas, including interfaces, representation independence, specifications, invariants, abstract data types, design patterns, and unit testing(了解软件工程的基本概念,包括接口、表示独立性、规范、不变量、抽象数据类型、设计模式和单元测试 )
the ability to apply these ideas to design, implement, and test a small- to medium-scale software system (up to a few thousand lines of code, multiple modules), by:(应用这些概念来设计、实现和测试中小型软件系统(最多几千行代码,多个模块))
- defining abstract data types
- writing specifications for operations
- choosing concrete representations and defining abstraction functions and representation invariants
- writing a comprehensive suite of unit tests
- creating regular expressions and grammars for parsing input
- creating client-server programs that adhere to a given protocol
- designing a concurrent program using concurrent language features and library types
- an understanding of general programming-language concepts such as static typing, exceptions, access control, interfaces, and equality, and ability to use TypeScript as a particular example language with those concepts (了解通用的编程语言概念,例如静态类型、异常、访问控制、接口和相等性,以及使用 TypeScript 作为示例语言来实际这些概念)
- the ability to use modern programming tools (e.g. VS Code, Git) and modern programming technologies (e.g. I/O, regular expressions, network sockets, threads, GUIs)(使用现代编程工具(例如 VS Code、Git)和现代编程技术(例如 I/O、正则表达式、网络套接字、线程、GUI))
- experience working in a project team (团队协作的经验)
2022年使用的编程语言是Typescript,但不公开作业,ocw 上公开作业的是2016的课程,使用的编译语言是 Java。
2022 年课程链接 https://web.mit.edu/6.031/www/sp22/
2016 年课程链接https://ocw.mit.edu/ans7870/6/6.005/s16/