Date | Lecture | Slides | HW | MP and Comments | |
8/27 | Introduction and Logistics | Introduction | |||
8/29 | What is cyber-physical computing? What is IoT? Concepts and application examples (featuring reliability, timing, energy and people) | CPS: The Escalating Challenge | |||
Reliability | 9/3 | System Reliability: Using Simplicity to Control Complexity | Reliability | ||
9/5 | Guest Speaker on System Reliability | Multicore Case Study | Led by TA | ||
9/10 | System Reliability: Well-formed Dependencies and Open Loop Safety | Reliability Continued | HW1 Out | ||
9/12 | IoT and Data Reliability: A Probabilistic Perspective | Data Reliability and Multisensor Fusion | |||
9/17 | Multi-sensor Data Fusion | HW1 Due, HW2 Out | |||
9/19 | Project Examples in CPS, IoT, and Related Topics | Ideas | |||
Time | 9/24 | Introduction to the Lab | Lab | HW2 Due | Led by TA, Lab MP1 Out |
9/26 | Basic Real-time Concepts and Optimality Results | Introduction to Real-Time | |||
10/1 | Real-time Synchronization and Priority Inheritance | Sync | |||
10/3 | Exact Schedulability Analysis, Aperiodic Tasks | Exact | |||
10/8 | Midterm Review | Review | Lab MP1 Due | ||
10/10 | Midterm | HW3 Out | |||
10/15 | Multicore and Distributed Scheduling | Multicore | |||
10/17 | Autonomy and Real Time: A Vehicular Application Example | Vehicle Autonomy | HW3 Due | Lab MP2 Out | |
10/22 | MP Design Discussion (Putting it All Together): Asimov Laws of Robotics, Timing, and other Challenges | MP Discussion | Led by TA | ||
Energy | 10/24 | Dynamic Voltage and Frequency Scaling (DVS) | DVS | ||
10/29 | Leakage, Batching, Startup Costs, and Other Practical Issues | Energy, continued | HW4 Out | ||
10/31 | Lab MP2 Due | ||||
11/5 | Midterm Review | Review | HW4 Due | Led by TA Lab MP3 Out |
|
11/7 | Midterm | ||||
Control | 11/12 | MP Discussion | MP3 | Led by TA | |
11/14 | Feedback Control | Feedback | |||
11/19 | Lab MP3 Due, Lab MP4 Out | ||||
11/21 | MP Discussion + IoT Applications with Real-time Constraints | MP4 | |||
11/26 | Thanksgiving | ||||
11/28 | |||||
Other | 12/3 | Student-led Presentations | |||
12/5 | Student-led Presentations | Lab MP4 Due | |||
12/10 | Next: Machine Intelligence, IoT, Computational Offloading (Real-time Edge versus Cloud), etc. | Next | Final (Takehome) |
In summary, building a real-time system can be a good idea if you need to make sure that certain parts of your program run in a certain amount of time, or if you need to run your program reliably for long periods of time.
Software engineering has this in common with having children: the labor before the birth is painful and difficult, but the labor after the birth is where you actually spend most of your effort. Yet.
Programming is about managing complexity: the complexity of the problem, laid upon the complexity of the machine. Because of this complexity, most of our programming projects fail.