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, “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 complete a comprehensive project.

Learning Objectives:

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

Pre-requisites: Students are expected to (1) have experience programming large software systems, preferably using C/C++/Java, and (2) have taken an undergraduate algorithms and/or data-structures course.

3 credits

More Information

UBC Course Page