course_outline
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
course_outline [2013/03/24 18:51] – jonathan | course_outline [2013/04/14 02:01] (current) – jonathan | ||
---|---|---|---|
Line 7: | Line 7: | ||
**Learning Outcomes**: | **Learning Outcomes**: | ||
- | Software | + | Software |
- Correct | - Correct | ||
- Efficient | - Efficient | ||
- Maintainable | - Maintainable | ||
- | Software cannot be **correct** without a **specification**. So we need to master skills that allow us to write a specification, | + | Software cannot be **correct** without a **specification**. So we need to master skills that allow us to write a specification, |
For software to be efficient we need to understand the appropriate use of algorithms and data structures. Loop variants and invariants help to ensure that loops terminate, bound their complexity, and ensure that they terminate correctly. | For software to be efficient we need to understand the appropriate use of algorithms and data structures. Loop variants and invariants help to ensure that loops terminate, bound their complexity, and ensure that they terminate correctly. | ||
Line 71: | Line 71: | ||
* Decorator Pattern | * Decorator Pattern | ||
* Visitor Pattern | * Visitor Pattern | ||
- | * Some others | + | * Composite, Adapter, and Facade |
We stress information hiding (as in famous paper by Parnas) and the criteria by which to decompose a system into modules. What are the features? Which features belong together coherently in a module (class)? How are modules related to each other (client supplier and inheritance relationships)? | We stress information hiding (as in famous paper by Parnas) and the criteria by which to decompose a system into modules. What are the features? Which features belong together coherently in a module (class)? How are modules related to each other (client supplier and inheritance relationships)? | ||
Line 84: | Line 84: | ||
| | ||
- | See slides and OOSC2 | + | See slides and OOSC2. How to make software products robust. |
+ | |||
+ | | ||
+ | See the Osmonde curve and the slides. |
course_outline.1364151102.txt.gz · Last modified: 2013/03/24 18:51 by jonathan