This site

    Recent site activity

    Weekly Schedule

    Week 1

    • Course overview
    • Organizational matters
    • Development environment and methodology
      • Software configuration management
      • Test-driven development
    • Language considerations
    • Projects 0a and 0b

    Week 2

    Week 3

    Week 4

    Week 5

    • Test 1 discussion
    • Project 1b discussion
    • Compilation toolchain phases overview
      • source code (string stored in file)
      • lexical analysis
      • sequence of tokens
      • parsing
      • abstract syntax tree
      • optimization
      • transformed abstract syntax tree
      • code generation
      • machine code or byte code

    Week 6

    • Project 1b discussion: rotation
    • Parsing
      • Regular languages
      • Scala regex extractors (26.7)
      • Context-free languages
      • Scala parser combinators (33)
    • Expressions examplesJava and Scala
    • Domain model design choices
      • composite/algebraic types where nodes are responsible for attributes and linking
      • flat domain records with general-purpose collections for linking

    Week 7

    Week 8

    • Simple imperative language (continued)

    Week 9

    Week 10

    • Test 2 discussion
    • implementing functions and methods
    • Project 2b announcement
    • Project 2a discussion

    Week 11

      Week 12

      Week 13

      Thanksgiving Day: no class

      Remainder under construction for fall 2011

      Week 14

      Week 15

      • Test 3 discussion
      • Concurrency
      • What's next?
        • Lightweight containers and dependency injection
        • Decorators, Dynamic Proxy, Aspect-oriented programming

      Final

      Additional Material on Patterns

      Comments