This course covers security issues relating to cyber-physical systems (CPS) and the Internet of Things (IoT). The instructor will introduce various control and IoT systems (including industrial control systems, autonomous cars, drones, and smart home devices) and their security. Students are expected to review and give presentations on papers approved by the instructor. While discussing the papers, students will learn to understand hardware and software components of CPS and IoT systems, attack surfaces of the systems, cyber and physical attacks that exploit the attack surfaces, and how to analyze and improve the security of the systems against the attacks. A significant part of this course will be a hands-on course project in CPS/IoT security on which students will work in groups.
Familiar with basic algorithmic design and analysis (CS 5343).
Basic knowledge of system programming.
Knowledge of program analysis and embedded systems is welcomed but not required.
Class meetings and modality¶
Asynchronous learning & COVID-19 guidelines¶
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 industrial control systems, autonomous cars, drones, and smart home devices.
Assignments (20%): A paper review to submit by a day before each lecture and paper presentations.
Project (80%): A final project, including proposal, demo/presentation and write-up.
Proposal presentation (15%).
Demo & final presentation (25%).
Write-up and code (40%).
No midterm or final exams.
Course & instructor policies¶
Assignments and project will be evaluated on a ten-point scale (0-10).
Late work will be penalized 1 point per day (24-hour period).
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:
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.