Course Information

* Course syllabus can be found here.

Course description

This course covers security issues relating to cyber-physical systems (CPS) and the Internet of Things (IoT). The instructor will provide lectures on the background of various CPS/IoT systems and their security challenges, including automotive vehicles, drones, self-driving cars, smart home devices, and industrial control systems. Students will read and give presentations on academic papers related to the course topics. While discussing the papers, students will learn to understand recent advances in CPS and IoT security. A significant part of this course will be a hands-on course project on which students will work in groups. Each group will be given a piece of equipment that will run an automotive vehicle subsystem (in-vehicle infotainment system). Students are expected to identify security vulnerabilities in the system, build attacks to exploit the vulnerabilities, and develop defense mechanisms to detect/prevent these attacks. The lectures and paper discussions will provide students with helpful ideas and motivation to do well in their course project.

Instructor information

  • Chung Hwan Kim (chungkim 'at' utdallas 'at' edu).

  • Office hours: By appointment (online only).

  • Feel free to send the instructor an email to make an appointment.

Class meetings and modality

  • Modality: Flexible

  • When: TH 10am-11:15am

  • Where: ECSS 2.312

  • Live broadcasting in MS Teams for students outside the US

  • Video recordings of the class will NOT be provided.


Students are required to satisfy the following prerequisites:

  • Operating System Concepts (CS 4348)

  • Computer Architecture (CS 2340)

The following courses are not required but recommended:

  • Embedded Computer Systems (CS 4397)

  • Compiler Design (CS 4386)

  • Advanced Operating Systems (CS 6378)

  • Language Based Security (CS 6301)

Optionally, the course project would require students with the following skills:

  • Familiarity with command line Unix/Linux

  • Fluency in C/C++

  • Intermediate understanding on how a program executes at low machine instructions and operating systems levels (e.g., some level of IA-32/ARM assemblies, how a process is created and how system calls are handled).

Student learning objectives/outcomes

This course mainly targets graduate students and undergraduate students who would like to conduct academic research in CPS/IoT security. Students will learn the most pressing challenges of protecting CPS and IoT systems and present solutions to an identified problem. At the end of the course, students should become familiar with the best practices for securing automotive vehicles, drones, industrial control systems, and other types of CPS and IoT systems.

Grading policy

  • Paper Questions (10%): 3 questions per paper.

  • Paper Presentations (15%): 2-4 presentations per student over the semester.

  • Project (75%): Hacking In-Vehicle Infotainment System, including two project presentations, a demo, writeup, and code.

  • No midterm or final exams.

Course & instructor policies

  • Assignments and project will be evaluated on a 100-point scale (0-100).

  • No late submission allowed.


Cheating vs. collaboration

Collaboration is a very good thing. On the other hand, cheating is considered a very serious offense and is vigorously prosecuted. Vigorous prosecution requires that you be advised of the cheating policy of the course before the offending act.

For this semester, the policy is simple: don't cheat:
  • Never share code or text on the project.

  • Never use someone else's code or text in your solutions.

  • Never consult potential solutions on the Internet.

On the other hand, for this class, you are strongly encouraged to:
  • Share ideas.

  • Explain your code to someone to see if they know why it doesn't work.

  • Help someone else debug if they've run into a wall.

If you obtain help of any kind, always write the name(s) of your sources.