SYSC 5807 F: Human-centric Security and Privacy (H.Assal)
Introduction to human-centric research with a focus on security and privacy. Topics include: privacy and security for different types of users, integrating privacy and security in software development, privacy and security in IoT devices from users’ perspective, the design and development of secure systems, users’ perception of and attitudes towards privacy and security, ethical considerations for human-centric research.
SYSC 5108 W: Deep Learning (C. Huang)
The course covers a variety of deep learning techniques with rigorous analysis and practical implementations. Deep supervised and unsupervised learning. Deep reinforcement learning. Directed and undirected probabilistic models. Representation learning. Monte Carlo methods and deep generative models. Implementations and case studies.
SYSC 5801 W: Internet of Things (M. Ibnkahla)
This course presents the main concepts of the Internet of Things (IoT) ranging from the physical layer and medium access to the applications and standards. The course will cover the following topics: Review of the basic principles of computer networks and the layered protocol stack; Internet of Things reference architecture; Sensor integration and sensor platform design; Physical layer challenges and channel propagation models; Medium access and mobility support; IoT networking; Ad hoc and infrastructure less networks; Data analytics for IoT; Cloud and Fog computing for IoT; IoT standards; Applications include: Smart cities, intelligent transportation systems, smart grid, and supply chain.
SYSC 5804 W: 5G Networks
Principles enabling 5G communications; physical, link, and network layer protocols used for 5G communications and networking. Topics include: evolution from 1G to 5G, standardization, spectrum planning, 4G LTE Fundamentals, 5G New Radio enhancements, 5G Core, and beyond 5G.
SYSC 5807 W: Sensor Fusion for Autonomous Systems (M.Atia)
The course teaches the fundamentals of sensor fusion applied to autonomous systems, focusing on 3D navigation, positioning, orientation, and environment mapping. Topics include non-linear estimation, reference coordinate frames, frame transformations, navigation state vector representation, common sensors used in autonomous navigation systems (e.g. Inertial Measurement Unit (IMU), Global Navigation Satellite System “GNSS”, Light Detection and Ranging “LiDAR”, Radio Detection and Ranging “Radar”, and Cameras), sensors error modeling, sensor fusion/non-linear estimation (e.g. non-linear least-squares “LS” Kalman Filter “KF”, Particle Filter “PF”, and Artificial Intelligence “AI”), simultaneous localization and mapping (SLAM).
SYSC 5807 X: Security Engineering (J.Jaskolka)
The primary objective of this course is to demonstrate the cross-cutting, multi-faceted, and multi-disciplinary nature of security issues that are common in the engineering of secure and trustworthy systems. It covers the fundamentals of security engineering and its activities, including security evaluation, threat modeling, risk assessment, formal methods for security, and security assurance. The course explores these topics in a broad range of application areas, including software and hardware, cyber-physical and embedded systems (e.g., automotive, aerospace, medical devices, etc.), Internet of Things (IoT), cloud computing, distributed systems, mobile devices, social networks, and critical infrastructures, among others.
SYSC 5807 Y: Cryptographic Implementations and Side-Channel Analysis (M.Taha)
An introductory course on cryptography for engineers. Lectures will discuss direct simplified implementations of the RSA, ECC, AES, and SHA-3 algorithms along with a brief on their mathematical reasoning. The course will also introduce a collection of implementation-specific attacks including: power/electromagnetic attacks, fault-injection attacks, timing attacks, and microarchitecture attacks. Common countermeasures against these attacks will also be discussed. The course includes a paper review, a presentation, and a small project.
SYSC 5807 Z Hardware/Software Co-Design (P. Garica)
This course looks at the design and programming of computer systems through a unified hardware/software co-design lens. We will begin by designing a programming language and building an interpreter for the language. We will then define a target instruction set, extend the interpreter into a full compiler, and build an instruction set simulator. This simulator will later be translated into an HDL implementation on FPGA, delivering a complete system design flow. We will then explore hardware/software co-design techniques, primarily aimed at software acceleration on FPGA, and investigate design space options: e.g., software function versus hardware accelerator in terms of performance, space, and power consumption. Pre-requisites: students are expected to be excellent C programmers and comfortable with Linux-based design flows (e.g., gcc, make). Expertise with HDL (preferably Verilog, but VHDL also suffices), while not required, is considered extremely beneficial.