edit · history · print

Class announcement | Time and Location | Teaching Staff| Text Book | Grading Policy | Additional Info | Course Syllabus

Class announcements

Time and location

  • MW 2:10-4pm @1062 Bainer Hall

Teaching Staff

  • Soheil Ghiasi
    • Office Hours: by appointment
    • Office Location: 3171 Kemper Hall

Text Books

  • No text book is required. A collection of books and research papers will be used throughout the quarter.
  • Referenced papers are available through online digital libraries. pointers to papers will be posted on class webpage.
  • Texts on embedded computing and combinatorial algorithms would be helpful. Examples include:
    • Wayne Wolf, "Computers as Components", Morgan Kaufmann Publishers, Second Edition (2008), ISBN: 978-0-12-374397-8
    • Phillip A. Laplante, "Real-Time Systems Design and Analysis", Wiley-IEEE Press, 3 edition (2004), ISBN: 978-0471228554
    • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, "Introduction to Algorithms", MIT Press and McGraw-Hill (2001), ISBN: 978-0262032933

Grading Policy

  • Participation 10%
  • Homework 20%
  • Midterm (take-home, ~8th week) 20%
  • Project 50%

Additional Information

  • Prerequisites: EEC 170 (computer architecture). Experience with digital systems beyond EEC 170 (e.g. 180B), and algorithm design (e.g. ECS 122) would help, but are not required.
  • All work must be done individually (or by the team, if teams are allowed). Brainstorming, discussion and collaboration (not duplication), however, improve learning and are encouraged. Please consult the UC-Davis code of academic conduct or the instructor, if you are unclear if a specific activity would violate the honor code.

Syllabus

  • Introduction
    • Embedded computing systems
    • Optimization techniques
    • Target models of computations
  • Combinatorial optimization
    • Complexity and NP-completeness
    • Approximation algorithms
    • Graph algorithms overview
    • Shortest path
    • Network flow
    • Graph coloring, cliques, independent sets
    • Randomized and online algorithms
    • Continuous vs. discrete optimization
    • Linear and Integer Programming
    • Convex optimization
  • Design and optimization of embedded systems
    • Architectures and platforms
    • Operating systems, compilers and virtual machines
    • Realtime systems
      • Worst-case execution time estimation
      • Soft vs. hard realtime systems
    • Scheduling
      • Task scheduling
      • Communication scheduling
      • Voltage scheduling
    • Partitioning
      • Min-cut partitioning
      • Min-quotient partitioning
      • Temporal partitioning
    • Hardware synthesis
      • High-level synthesis
      • Implementation selection
      • Programmable and reconfigurable platforms
    • Compilation and code generation
      • Overview of classic transformations
      • Memory access optimizations
      • Template generation and matching
      • Compilation for reconfigurable computers
    • Networked Embedded Systems
      • Collaborative applications
      • Code migration
      • Incremental analysis
Page last modified on May 18, 2009, at 06:19 PM