Weekly Schedule

Week 1

  • Organizational matters
  • Software requirements
  • Introduction
  • Scott, Chapter 1

Week 2

Week 3

Week 4

Week 5

Week 6

  • Test 1 discussion
  • Presentations: ML, Haskell

Week 7

  • Brief presentation: Amentra/Red Hat
  • Project 1d discussion: beta-substitution and lazy evaluation
  • Presentations: Scala, Prolog

Week 8

  • Project 1d discussion: beta-substitution and lazy evaluation
  • Algebraic view of list operations (further examples of making recursion more systematic)
  • Presentation: JavaScript

Week 9

  • Tree iterators
  • Infinite streams
  • Presentation: Perl
  • Test 2

Week 10

  • Project 1e discussion
  • Type systems
    • strong versus weak
    • static versus dynamic
    • type safety and type erasure
  • Scripting languages
  • Presentations: Ruby, Groovy

Week 11

  • Tree depth wrap-up
  • Type systems wrap-up
  • Concurrency
  • Presentations: Ada, Erlang

Week 12

Week 13

  • Test 3 brief discussion
  • Project 2 discussion
    • event-based notification (for progress reporting)
    • threads and thread pools versus tasks or activities
  • Concurrency
  • Examples
  • Presentation: XQuery
Comments