Weekly Schedule

Old schedule with more links to additional external resources

Week 1

Week 2

Week 3

Week 4

    Week 5

    Week 6

    • project 2b status
    • web application architecture and concerns recap
      • MVC
      • dynamic content generation
        • code-centric
        • page-centric
    • state management in web applications; scopes:
      • view
        • like local variables
      • request
        • thread-per-request -> no concurrency issues
      • session
        • set of related requests -> concurrency issues
      • application
        • like an umbrella for all sessions
      • resource
        • concurrency issues pushed into persistence layer
    • 10-minute break at 17:20
    • Test 1

    Week 7

    • test 1 discussion
    • more on server-side state management
      • sessions
      • tradeoff between stateful and stateless sessions, use cases
    • guest presentation

    SPRING BREAK: No class on Wed 7 March

    Week 8

    Week 9

    Week 10

    Week 11

    Week 12

    • Test 2 discussion
    • Play framework
    • authentication
    • in-depth examples
      • client: AuthJAASMaven
      • provider: AuthDbSpringMaven
      • LinearRegressionStripesMaven (authentication aspects)
    • finish at 18:15 -> ACM presentation upstairs

    Week 13

    • Phase 3c discussion
      • integration with DDD from phase 3a
      • Play examples
    • Guest lecture on persistence by Lucas Ward, CTO of Fundspire
    • persistence concerns
      • Mapping
        • orders, users, order entries
      • Identity/equality
        • order1.equals(order2)
      • Collections/ordering
        • list versus set
        • relational tables usually unordered
      • Associations
      • Inheritance 
      • Transactions
      • Validation
      • Concurrency

    Week 14

    • Guest lecture on Haskell server-side stack by George Vasels, Loyola
    • persistence technologies
      • relational databases, JDBC
      • object/relational mappers (ORM), e.g., Hibernate
      • object databases, e.g., db4o
      • NoSQL databases, e.g., CouchDB, MongoDB
      • integration with Play and Heroku (need suitable add-on)
    • persistence patterns
      • Data Source Architectural Patterns
      • Object-Relational Behavioral Patterns
      • Object-Relational Structural Patterns
      • Object-Relational Metadata Mapping Patterns
    • examples
      • AuthDb*
      • LinearRegressionStripesMaven (persistence aspects)

    Final

    • Test 3
    • Project presentations
    Comments