Advanced Embedded Computing
Syllabus
Instructor
Tarek Abdelzaher, 4126
Office Hours: Fridays, 11am-noon, 4126
Lecture Times
Tuesdays and Thursdays, 2:00 – 3:15pm, 1109
Description
An expanding frontier for computer scientists lies at the intersection of the logical and physical realms. As computing elements become embedded more pervasively in our environment, a new cyber-physical fabric arises in which logical processing is deeply intertwined with the distributed physical environment in which it occurs. Computing becomes less obtrusive and a more natural part of the external world. It becomes more autonomous and less reliant on human input, intervention, and administration. Physical objects acquire new logical properties due to embedded computation, sensing, and actuation. New applications arise that improve the quality of life (e.g., smart assisted living facilities), enhance social experiences and human communication (e.g., participatory sensing and social media), improve accessibility of information (e.g., wide-area data services), and help advance fundamental knowledge in many environmental, biological, and physical disciplines. In such systems, the logical computing realm and the physical realm must operate together under constraints of physical time, space, and energy. The course explores the science of designing and analyzing systems that are guaranteed to perform their functions in a timely manner, understand spatial location, account for energy, and generally interact with the physical laws of nature in which they are embedded. A robotic testbed is used to experiment with some of the results. Selected topics include:
- Review of basic concepts (tasks, threads, blocking, priorities, importance, resource partitioning, etc.)
- The Reliability Dimension: Complexity reduction, well-formed dependencies, and fail-safe operation
- The Time Dimension: Real-time scheduling and resource management
- The Energy Dimension: Power-aware algorithms and energy saving issues
- Other Challenges
Grading
The course will involve 4 homeworks, 4 programming assignments, two midterms, and a final that encourage you to analyze and evaluate concepts covered under the above topics. Grades will be assigned as follows: