Skip to main content


This page summarizes relevant information about this course. Please click on the headings listed below for more detail about each item.

Welcome to the Course!

Welcome to EECS149.1x, Cyber-Physical Systems! This course begins Tuesday, May 6, 2014. Cyber-physical systems (CPSs) are computational systems that are tightly integrated with physical processes. CPSs are all around us --- in automotive and avionics systems, medical devices and systems, traffic control and safety, and much more. EECS149.1x offers a particular perspective on the modeling, design, and analysis of cyber-physical systems, placing an emphasis on formal, mathematical modeling of these systems and the use of such models in practical design. Students will apply concepts learned in lectures to programming a robotic controller in a specially-designed virtual laboratory environment with built-in automatic grading and feedback mechanisms.


Basic programming experience in C or C++ is required, along with knowledge of underlying processor and memory abstractions. The theoretical course content will require knowledge of high-school physics and mathematics, including basic knowledge of topics such as introductory calculus and discrete mathematics (e.g., knowing what a differential equation is, familiarity with function and set notation, etc.). The lab component of the class, at the present moment, requires access to a relatively up-to-date computer running Windows (Windows XP SP3 and above, through Windows 8). We hope to support a broader range of platforms in future offerings of this course.


This is the first online offering of this material, based on the UC Berkeley course EECS 149. We estimate that students, on average, will need to spend 8-10 hours per week. At least a third of this time is likely to be spent on the lab assignment of the week.


The course grades will be based on the lab assignments. Each lab assignment will be automatically graded by the built-in auto-grader component that is distributed with the virtual lab software. Further details on the grading scheme and the use of the virtual lab auto-grader will be available from the "Virtual Lab" page.

Note that this course only offers a Honor Code Certificate, reflecting the experimental nature of this first online offering. The virtual lab auto-grader, in particular, is based on relatively new research and so should be considered somewhat experimental. The main purpose of the auto-grader is to give you useful feedback and help you better understand course concepts. We are always happy to receive feedback on the virtual lab environment and auto-grader to help us improve the course for the next offering.


The textbook for this course will be Introduction to Embedded Systems: A Cyber-Physical Systems Approach, by E. A. Lee and S. A. Seshia. The textbook is available for free as a PDF file here. More information is available at the website The schedule listed below indicates the relevant reading from the textbook for each lecture module.

Course Schedule

Release schedule:

  • All lectures are released on Tuesdays 16:00 UTC.
  • All homework/lab assignments are released on Wednesdays, and are due on Tuesday 16:00 UTC of the following week.
Week of Topic Reading Lecture Sequence Assignment Due
Tu 5/6 Introduction to Cyber-Physical Systems Ch. 1 Lecture 1: Introduction to the Course Lab 1: Introduction to Development Tools Tue 5/13

Tu 5/13 Memory Architectures Ch. 8 Lecture 2: Memory Architectures Lab 2: Input and Output on an Embedded Platform Tue 5/20
Interrupts Ch. 9 Lecture 3: Interrupts

Tu 5/20 Modeling Continuous Dynamics Ch. 2 Lecture 4: Modeling Continuous Dynamics Lab 3: iRobot Navigation in C Tue 5/27
Sensors and Actuators Ch. 9 Lecture 5: Sensors and Actuators

Tu 5/27 Modeling Discrete Dynamics Ch. 3 Lecture 6: Modeling Discrete Dynamics Lab 4: iRobot HillClimb in C Tue 6/3
Modeling Discrete Dynamics (contd.) Ch. 4 Lecture 6: Modeling Discrete Dynamics

Tu 6/3 Composition of State Machines Ch. 5 Lecture 7: Composition of State Machines Lab 5: iRobot Navigation in LabVIEW Tue 6/10
Hierarchical State Machines Ch. 5 Lecture 8: Hierarchical State Machines

Tu 6/10 Specification and Temporal Logic Ch. 12 Lecture 9: Specification and Temporal Logic Lab 6: iRobot HillClimb in LabVIEW Tue 6/17

Tu 6/17 Conclusion Lecture 10: Conclusion N/A N/A