General Information

Welcome to PIPS!

Sakai and Zoom links

The Fall 2023 offering of this course will be held in person. However, all lectures will also be broadcast in parallel via Zoom. Except for when you are not well, you are strongly urged to attend the lectures in person.

Sakai and Zoom links
(for lecture slides, materials, and announcements)
(for lectures)

First lecture

On Tuesday, August 22, 2023 at 9:30am in FB007

What is this course about?

Introduction to programming embedded control systems that lie at the heart of robots, drones, and autonomous vehicles. Topics will include modeling physical systems, designing feedback controllers, timing analysis of embedded systems and software, software implementations of controllers on distributed embedded platforms and their verification.

Some more details …

Traditionally, computers have been used to process data. So programming computers consisted of listing the sequence of computations the computer was expected to perform. But increasingly computers are being transformed from purely data processing machines to being the brain of physical devices like cars and robots that are expected to “do” things and behave in an intelligent manner in complex situations. Here, the “doing things” take precedence over computations that might be necessary in the process.

How should computers be programmed for this new role? This is what this course will be about. In order for computers to be able to make physical systems do things, we need to be able to correctly specify what they need to do, and how to do them. Again, this is fundamentally different from specifying computations. Instead, we will discuss how to model the behavior of physical systems, how to control such behavior or how to enforce a desired behavior, and finally how to encode such control strategies as computer programs.

Target Audience

This will be an introductory course that will require no background in control theory, signal processing, embedded or real-time systems. It is targeted towards senior undergraduate students and graduate students of Computer Science. The exposition in this course will primarily be theoretical in nature, and will require a basic background in linear algebra and calculus. The course is more about understanding the theoretical foundations of systematically programming intelligent physical systems. While the material in the course will rely quite a bit on control theory, which is traditionally a part of Electrical Engineering, all necessary results will be described from first principles and anyone with a background in calculus should be able to follow. This course will also reply on Matlab and Simulink.


The course requires basic understanding of programming and compilation and a good understanding of basic calculus and differential equations.

Goals and Key Learning Objectives

After completion of this course, students should be able to list and understand the key aspects of programming embedded control systems. They would know how to model simple dynamics of physical systems, and how to design simple controllers to influence and manipulate such dynamics. Finally, they would develop an appreciation for the difference between designing and implementing control algorithms. In particular, they would understand the basic principles of implementing provably correct and verifiable controllers. They would also get an exposure to emerging research topics such as cyber-physical systems and networked control systems.

COMP 590 Vs 790

This course is offered both as a 590 and also as a 790. Both the offerings have the same contents, lectures, and examinations. The 790 version has an additional term paper requirement that is not in the 590 version.

Course Requirements

COMP 590 version:

  • Assignments, problem solving and class participation: In addition to lecturing by the instructor, numerical problems will be solved in each class and assignments will be given out regularly. There will be credits given for participating in discussions held in the class and for submitting the assignments in time. Note that full credits may be obtained for each assignment solely based on a genuine attempt to solve the problems in it. The correctness of the solution will not count. Solutions will be discussed in the class and will be published.
  • Mid-term exams: There will be three mid-term examinations and the two best scores will count towards the final grade.
  • Final exam: There will be a comprehensive final examination at the end of the course. All exams will be closed book. Calculators (but no computers) will be allowed.

COMP 790 version:

  • All 590 requirements + Readings and term paper: Students taking this version of the course (instead of COMP 590) will be assigned an additional reading list. They will be required to submit a term paper on a topic related to this course. The topic will have to be decided in consultation with the instructor.

Grading Criteria (590 version)

The breakup of grades is tentatively set as follows:

  • 20% in class participation (successfully submitting homework assignments; instruction can give additional credit for class participation)
  • 25% each taken from the best two (out of the three) mid-term exams
  • 30% final exam

Grading Criteria (790 version)

The breakup of grades is tentatively set as follows:

  • 20% in class participation (successfully submitting homework assignments; instruction can give additional credit for class participation)
  • 20% each taken from the best two (out of the three) mid-term exams
  • 10% term paper
  • 30% final exam

Note for COMP 790 students: This course is classified as “applications” for breadth requirements.

Course Policies

  • Attendance and participation: This is an interdisciplinary course that will provide the groundwork necessary for understanding a number of emerging research topics like cyber-physical systems and autonomous systems. There are no suitable textbooks that can serve as substitutes to the discussions planned during class. Hence, the students will benefit from attending all the lectures and participating in the discussions and problem solving. No attendance will however be recorded. But those participating in the discussions and attempting to solve problems being discussed in the class might receive additional credits.
  • Programming: This course will involve programming in Matlab/Simulink. Please bring a laptop to the class with Matlab + Simulink installed on it.
  • Assignments: There will be no graded assignments in this course. But submitting the homework assignments will fetch full credits solely for the attempt. The solutions will be published and discussed in the class.
  • In-class and final exams: All exams will be closed book and closed notes. The use of a calculator is allowed. The calculator has to be approved by the instructor prior to the exam. The duration of the exams will be announced in advance. Students who do not attend or miss any exam will be given a 0 score and there are no provisions for make-up exams.
  • Term paper (for 790): Students will be required to identify a topic related to this course that is more advanced than the material covered in the lectures. They will be given 1-2 research papers on this topic as a starting point, but will have to search and identify more papers and study them. They will then write and submit a term paper on this topic, summarizing the state-of-the-art, and outlining what in their opinion are open problems and how could they possibly be addressed?

Course Materials

All course materials will be available via Sakai.


Please contact Samarjit Chakraborty if you have any questions.