This site

    Recent site activity

    Weekly Schedule

    Week 1

    Week 2

    Labor Day: no class

    Week 3

    Week 4

    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

    Week 7

    Fall 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

    Week 9

    • 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

    Week 10

    • Object-oriented programming (continued)
    • Project 2b discussion
    • Test 2
    Week 11
    • 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)
      • shapes example
    • 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
    Week 13
    • Project 2c discussion
    • Modeling with archetypes and color (continued)
    • Factory pattern (HFDP chapter 4)
    • Command pattern (HFDP chapter 6)
    • Test 3

    Week 14

    Week 15

    • 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)
      Comments