Week 1Labor Day: no class Week 3- UML modeling notation
- OO design principles
- OO design metrics
- Project 1a and 1b discussion
Week 4- Project 1c discussion
- UML notation
- OO design principles
Week 5- Project 1c discussion
- Project 2a discussion
- Brief process discussion
- automated regression testing
- refactoring
- continuous integration
- Code smells and refactoring intro
- Test 1
Week 6- Test 1 discussion
- Project 2a discussion
- Object-oriented programming
Week 7Fall Break: no class Week 8- Project 2b discussion
- Strategy pattern (HFDP chapter 1)
- Observer pattern (HFDP chapter 2)
- Decorator pattern (HFDP chapter 3)
- Design patterns intro (HFDP chapter 1)
- Iterator pattern (HFDP chapter 9) - brief
- Organizational matters: updated reading list
- Project 2b discussion
- Iterator pattern (HFDP chapter 9) - brief wrapup
- Singleton pattern (HFDP chapter 5)
- Version control with Mercurial and Bitbucket
- Object-oriented programming (continued)
- Project 2b discussion
- Test 2
- Test 2 discussion
- Object-oriented programming (continued)
- constructors (YB 4.7)
- inheritance (YB 4.9)
Week 12 - Inheritance
- example: dynamic binding vs. static binding of super/base
- Composite pattern (HFDP chapter 9)
- Visitor pattern (HFDP chapter 14 p628)
- example from project
- relationship with Iterator
- Adapter pattern (HFDP chapter 7)
- Modeling with archetypes and color (Coad)
- Project 2c discussion
- Project 2c discussion
- Modeling with archetypes and color (continued)
- Factory pattern (HFDP chapter 4)
- Command pattern (HFDP chapter 6)
- Test 3
- Test 3 discussion
- Façade patterns (HFDP chapter 7)
- Concurrency
- Project 2d discussion
- Concurrency (continued)
- producer-consumer problems, shared print queue
- sweet spot: guarantee safety, maximize liveness
- insufficient liveness: deadlock, starvation, livelock
- thread synchronization: documentation discussion
- patterns: Lea Thiruvathukal Schmidt Goetz et al.
- alternative approaches
- actor model: Erlang, Scala, etc.
- software transactional memory (STM)
|
|