teaching
Courses regularly offered by the faculty.
CMSC 491/691 Active Cyber Defense (Fall)
CMSC 491/691 Seminar in Active Cyberdefense This course will cover various topics in cybersecurity that have proven relevant in the workplace as well as inter-collegiatge cyberdefense competitions. Topics will be drawn from UNIX and Windows system administration, applied cryptography, secure coding practices, network attacks, software-defined networks, and web exploitation. Participation in the form of individual and group projects will be the basis for grading. Prerequisite: CMSC 341.
CMSC 449/691 Malware Analysis (Spring)
Introduction to static and dynamic malware analysis. Basic and advanced tools are presented, both host- and web-based. Utilities to provide summary information, as well as disassemblers and debuggers, are discussed in detail. Emphasis is on analysis of realistic malware specimens from the textbook, or found in the wild. Homeworks and exams consist of preparation of malware analysis reports such as those used in industry. Prerequisite is CMSC 313 or equivalent. Students are expected to have a solid grasp of programming in assembler as well as a high-level language such as C. Knowledge of operating systems and networks will be useful but is not required.
DATA 690 Practical Deep Learning (Fall)
Website via Blackboard
Introductory course to Deep Learning, focused on breadth and building mathematical intuition. Taught using PyTorch it starts with the “classic” neural network architectures and stochastic gradient descent, then moves into adding modern improvements like residual connections, batch normalization, and improved optimizers like Adam. The rest of the course then builds on these to cover topics like autoencoding, attention mechanisms, generative adversarial networks, machine translation, and Transformers. Prerequisites are either DATA 602 or CMSC 478.