Weekly Schedule

Living document...please stay tuned!

Week 1: 16 Jan

Session

  • organizational matters
    • introduction: instructor, TA
    • course objectives
    • course texts
    • discussion forum (mandatory subscription)
    • how to get help
    • prerequisites and review topics: 170/271 313 overview 
  • motivation, including embedded systems
    • brief overview of event-based programming
  • requirements
    • functional: y = f(x)
    • nonfunctional: additional properties of f, e.g.
      • testability
        • most important nonfunctional requirement
        • allows testing whether functional requirements are met
        • good architecture often happens as a side-effect (APPP pp. 36-38)
      • performance
      • scalability
        • e.g. performance for large data sets: asymptotic order of complexity (big-Oh) in terms of input size n
      • reliability
      • maintainability
      • static versus dynamic NFRs
  • prerequisite assessment
  • field trip to the Chicago ACM presentation on Software-Defined Radio

Reading/Podcasts

Week 2: 23 Jan

Session

  • announcements
  • discussion of projects 1 and 2
  • course software with demo
  • data structures
    • linear vs. nonlinear
    • position-based vs. policy-based (see also here)
    • performance
    • tying data structure choices to requirements
  • data abstraction
    • addressing: pointers, references
    • aggregation (product types): structs, records
      • example: node in a linked list
    • variation (sum types): tagged unions, multiple implementations of an interface
    • example: mutable set abstraction
      • add element
      • remove element
      • check whether an element is present
      • check if empty
      • how many elements
    • several possible implementations
      • reasonable: binary search tree, hash table, bit vector (for small underlying domains)
      • less reasonable: array, linked list
      • see also here
  • group activity: problem 4 on prerequisite assessment

Reading/Podcasts

Week 3: 30 Jan

Session

Reading/Podcasts

Week 4: 6 Feb

Session

Reading/Podcasts

  • same as weeks 2 and 3

Week 5: 13 Feb

Session

  • announcements
    • team formation
  • discussion of test 1
  • basics of object-oriented programming
    • up to subtype polymorphism
  • discussion of project 3
  • group activity: requirements analysis and static model for project 3

Reading/Podcasts

Week 6: 20 Feb

Session

  • announcements
    • team assignments posted on Sakai and Piazza
    • team repositories: cs313s13teamN
    • project 3 expectations
  • basics of object-oriented programming
    • remaining topics
  • project 3 discussion

Reading/Podcasts

  • same as week 5

Week 7: 27 Feb

Session

Reading/Podcasts

Spring Break: 6 Mar

Week 8: 13 Mar

Session

Reading/Podcasts

Week 9: 20 Mar

Session

Reading/Podcasts

Week 10: 27 Mar

Session

  • test 3
  • detailed discussion of stopwatch example
  • project 4 discussion

Week 11: 3 Apr

Session

Reading/Podcasts

Week 12: 10 Apr

Session

Reading/Podcasts

Week 13: 17 Apr

Session

Reading/Podcasts

Week 14: 24 Apr

Session

  • announcements
    • Go Bayern!!! Go Dortmund!!!
    • TCE reminder: please provide detailed and candid feedback either on TCE form or by email
      • book(s)
      • choice and order of topics
      • projects
      • etc.
    • GCASR 13 workshop - register by this Thu
    • project 6 (optional/makeup/extra credit)
    • test 4
    • presentations
  • concurrency
    • degrees of liveness: fairness • starvation • deadlock
      • concurrency control mechanisms: Java synchronization, semaphores, ...
      • deadlock example
    • implementation: processes, threads, reactor pattern
    • Android AsyncTask (see prime number checker example below)
      • progress reporting
      • action upon completion
      • cancelation
      • can choose size of thread pool
    • example
  • distributed computing (mostly from a mobile + cloud perspective)
    • overview
    • performance: throughput, latency, jitter
    • cloud 
      • almost unlimited computational resource (see paper linked below)
      • introduces latency and other performance concerns
      • usually need local caching for usability (e.g., Google Maps)
    • example
  • project 5 discussion
    • view
    • AsyncTask
    • cell capacity/semaphores
  • project 6 discussion

Reading/Podcasts

Final Session: 1 May

Session

  • test 4
  • app download (optional)
    • please use your Box account to share your apk file with the class (anyone with the link), ideally before the demo session
  • project presentations (max 4-5 minutes per team)
    • overall app architecture
    • terrain architecture
      • support for traversal by actor
      • support for 2d presentation
    • brief demo
      • need VGA port or adapter
      • emulator running on your laptop
      • or device connected to your or my laptop via AirDroid app
    • reflection
      • journey
      • main insights
      • main challenges
Comments