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)

Why are Real-time and Cyber-physical Systems Important?

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.