Electrical Engineering Seminar and Special Problems – Dependable and Secure Autonomous Systems
As computers have become more and more powerful, they have increasingly become capable of performing autonomous tasks such as object recognition, motion planning, automated response to unforeseen events etc. According to the CCC Whitepaper on the Science of Autonomy 1 , “Autonomy is a property of a system that is able to achieve a given goal independent of external (human) input while conforming to a set of rules or laws that define or constrain its behavior. “ Autonomous systems promise to revolutionize our lives by seamlessly taking over laborious or dangerous human tasks such as driving, medical care, manufacturing.
Unfortunately, autonomous systems are also subject to both errors and security attacks. Unlike traditional systems where there is a human in the loop, an error in an autonomous system can have disastrous consequences, as these systems often operate in close proximity to humans. Further, malicious attackers can take over autonomous systems to wreak large-scale havoc and cause significant harm. Therefore, today there is a compelling need to ensure that autonomous systems are dependable, secure and safe.
This course will explore the principles of building dependable and secure autonomous systems, by first surveying the latest, cutting edge research in the area, and then incorporating the lessons learned into a semester-long project. Students will be expected to actively participate in class and in the online forum.
By the end of this course, it is expected that the students will be able to:
• Understand the sources of reliability issues and security attacks in autonomous systems
• Appreciate the trade-offs between reliability/security and performance/power in these systems
• Evaluate state of art techniques to analyze the reliability and security of autonomous systems
• Design and Implement reliability and security techniques for autonomous systems
You do NOT need to have taken a security or reliability course for this course. However, you are expected to (1) have experience programming large software systems, preferably using C/C++/Java, and (2) have taken an undergraduate algorithms and/or discrete mathematics course, or have acquired this background through other means. You will also be expected to have a good understanding of computer systems and software engineering fundamentals. It may also be helpful to have taken undergraduate courses in machine learning and control theory, though this is not required.
10% Class participation
20% Paper Reviews (roughly 2-3 papers every week on average)
10% Discussion Leading (1-2 papers depending on enrolment)
60% Project on a topic of your choice (preliminary proposal, midterm report, final report, and presentation)
There is no required textbook for the course. Reading material (mostly papers) and lecture notes will be made available through the course website.