This course covers advanced topics in computer and network security, including (but not limited to): anonymity, privacy, memory safety, malware, denial of service attacks, trusted hardware, security design principles, and empirically measuring security "in the wild". This is a largely paper-driven course (there is no textbook), preparing students for research in (or around) the broad area of security. Students will gain first-hand experience launching attacks in controlled environments. Previously titled CMSC 818O Fall 2023 Fall 2022 Spring 2021 Fall 2019 Fall 2018 Fall 2017 Spring 2017 |
The goal of this course is to prepare undergraduate students to do research in any area of computer science, collaborating with students and faculty to: perform experiments, read and write research papers, and give presentations to an academic audience. We look at good research in diverse areas of computer science so that students can both choose an area of research wisely and recognize fruitful research questions within larger projects. The course also covers tools and techniques for collaborative authoring and typesetting of research papers. Fall 2023 Fall 2022 Fall 2022 Spring 2021 Fall 2020 Spring 2020 Fall 2019 Spring 2019 Fall 2018 Spring 2018 Fall 2017 Spring 2017 Spring 2016 |
For more information on STICs, please visit sticsumd.com
This practical, hands-on 1-credit course provides students with an introduction to ethical hacking. The course begins with a discussion on the ethics behind security research and progresses to topics that surround penetration testing, forensics, cryptology, and binary reverse engineering and exploitation. This course is also meant to introduce students to Capture-the-Flag (CTF) style cybersecurity challenges, encourages participation in UMD's Cybersecurity Club (UMDCSEC), and prepares for CMSC414. Taught by Michael Reininger, William Woodruff, and Joshua Fleming |
This course provides a comprehensive, practical introduction to technical interviews. The course will start with basic topics such as Big O and String Manipulation. We will then move into more complex topics such as Bit Manipulation and Dynamic Programming. Most of the classes are "In-Class Interviews". Taught by Cameron Payton and Ishaan Parikh |
An introduction to the topic of security in the context of computer systems and networks. Identify, analyze, and solve network-related security problems in computer systems. Fundamentals of number theory, authentication, and encryption technologies, as well as the practical problems that have to be solved in order to make those technologies workable in a networked environment, particularly in the wide-area Internet environment. |
A study of programming languages, including their syntax, semantics, and implementation. Several different models of languages are discussed, including scripting/object-oriented (Ruby) and functional (OCaml), Language features such as formal syntax and semantics, scoping and binding of variables, higher-order programming, typing and type polymorphism, and concurrency are explored. Co-taught with Mike Hicks |
New cloud-based services like targeted advertising, elastic computing and storage, online social networks, and content distribution networks are changing how the Internet is used, monetized, and secured. The goal of this course is to identify new problems of security and incentives in online services. We will take a hands-on approach, investigating how these new services are designed and used today, and the (financial) relationship between various stake-holders. We will also cover relevant background on techniques used to solve these problems, particularly from cryptography (e.g., verified computation, and digital cash) and economics (e.g., game theory and mechanism design). Co-taught with Elaine Shi |