This site

    Recent site activity

    Navigation

      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