##
CIS 540: Principles of Embedded Computation, Spring 2019

### Logistics

- Instructor: Rajeev Alur
(alur@cis)
- Lectures: Monday, Wednesday, 3 -- 4.30, Towne 315
- Teaching Assistant: Kishor Jothimurugan (kishor@seas);
Office hour: Tuesday, 11--12, Levine 6th Floor Bump Space
- Occasional lectures by Dr. Filip Niksic (fniksic@seas)
- (Optional) Recitation: Tuesday, 4.30 -- 5.30pm Fisher Bennett Hall 244

### Introduction

This course is focused on the principles underlying design and analysis of
computational elements that interact with the physical environment.
Increasingly, such embedded computers are everywhere, from
smart cameras to medical devices to automobiles.
While the classical
theory of computation focuses on the function that a program computes,
to understand embedded computation, we need to focus on the
* reactive* nature of the interaction of a component with its
environement via inputs and outputs, the continuous dynamics of the physical
world, different ways of communication among components, and
requirements concerning safety, timeliness, stability, and performance.
Developing tools for approaching design, analysis, and implementation of
embedded systems in a principled manner is an active research area.
This course will attempt to give students a coherent introduction to
this emerging area.

### Prerequisites

This course assumes mathematical maturity, commensurate with
either ESE 210 (Introduction to Dynamical Systems) or
CIS 262 (Introduction to Theory of Computation).
It is suitable for students who have undergraduate degree in computer science,
or computer engineering, or electrical engineering. It is also suitable for
Penn undergraduates in CSCI and CMPE as an upper-level elective.

### Textbook

** Principles of Cyber-Physical Systems**; R. Alur, 2015, MIT Press.

### Grading

- Six Homeworks (30%): Each such homework will consist of theoretical problems.
- Projects (20%): There will be two project homeworks that will
focus on design, modeling, and formal analysis of representative
problems using modeling tools: P# and Matlab/Stateflow/Simulink
- Midterm (20%)
- Final Exam (30%)

### Schedule

- January 16: Introduction and Course Overview
- January 23, 28, 30, and February 4: Chapter 2: Synchronous Model (Homework 1 due 2/6)
- February 6, 11, 13, and 18: Chapter 3: Safety Requirements (Homework 2 due 2/25)
- February 25, 27, March 11, and 13: Chapter 4: Asynchronous Model (Homework 3 due 3/11)
- March 18: P# and first project (due 3/27)
- March 20: Midterm
- March 25, 27, April 1: Chapter 5: Liveness Requirements (Homework 4 due 4/10)
- April 3, 8, 10, and 15: Chapter 6: Dynamical Systems (Homework 5 due 4/17)
- April 17: Matlab/Simulink and second project (due 4/24)
- April 22, 24, and 29: Chapter 7: Timed Model (Homework 6 due 5/1)
- May 1: Review
- Final Exam: Thursday, May 9, 2019, 9-11am

### Grading

- Lectures, homeworks, and solutions will be posted on Piazza
- Homeworks should be submitted in Gradescope

Maintained by Rajeev Alur