Curriculum
Students complete the Cybercecurity Track by substituting four of the MSCS electives
with four courses designated for this track — two are required and two are electives.
Required courses
Complete the two required courses.
-
CS 558 - Intro to Computer Security
The course provides an introduction to the principles and practices of network,
computer, and information security. Topics include authentication and cryptographic
techniques, intrusion detection, access control, security policies, and program/policy
analysis techniques. Prerequisite: Undergraduate Operating Systems and Algorithms.
Term offered varies. 3 credits
Levels: Graduate, Undergraduate
-
CS 559 - Science of Cyber Security
This course focuses on techniques that approach cyber security problems in a principled
manner using concepts from data mining, game theory, graph theory, and psychology.
The intent of this course is to permit students to bridge the divide between real-world
cyber threats and formal, scientific foundations of solutions that address such threats.
Real-world cyber security issues, such as spamming, phishing attacks, malware, sybil
attacks in social networks, and DDoS attacks, are used to illustrate how cyber threats
can be modeled with abstract representations that are amenable to rigorous analysis
and formal reasoning. The course also emphasizes the development of cyber defense
mechanisms that are rooted in scientific foundations. Prerequisite: Undergraduate
Operating Systems and Algorithms. Term offered varies. 3 credits.
Levels: Graduate, Undergraduate
Elective courses
Complete two of the below listed electives. Please note that only one of CS 536 and
CS 580E can be used as an elective in the Cybersecurity track.
-
CS 527 - Mobile Systems Security
This course discusses cybersecurity issues in various aspects of mobile systems,
including mobile networks, mobile communications, mobile OSes, mobile applications,
and mobile devices. It presents technical details of how mobile systems work and explains
their vulnerabilities with potential security risks. The course uses a combination
of real-world mobile devices and high-fidelity emulation testbeds to demonstrate common
types of attacks in mobile systems as well as how to defend against these attacks.
In this course, students are expected to gain hands-on experiences with mobile systems
and learn basic techniques to tackle their cybersecurity problems.
Credits 3
Prerequisite: CS 350 Operating Systems, or equivalents
When offered: Expected to be offered at least once every two years
Levels: Graduate, Undergraduate
-
CS 528 - Computer Networks
Communication protocols and layering, hardware-software infrastructures for networking,
MAC protocols, data link protocols, switching, inter- and intra-domain routing, the
TCP/IP protocol suite, transport protocols, application layer protocols, local and
system area networks, wireless and sensor networks, overlay and virtual networks,
client-server and peer-to-peer models, network programming with sockets, protocol design and implementation issues, network security. Prerequisite: Undergraduate
Operating Systems. Term offered varies. 3 credits.
Levels: Graduate, Undergraduate
-
CS 536 - Intro to Machine Learning
This course provides a broad introduction to machine learning and its applications.
Major topics include: supervised learning (generative/discriminative learning, parametric/non-parametric
learning, support vector machines); computational learning theory (bias/variance tradeoffs,
VC theory, large margins); unsupervised learning; semi-supervised learning; reinforcement
learning. The course will give students the basic ideas and intuition behind different
techniques as well as a more formal understanding of how and why they work. The course
will also discuss recent applications of machine learning, such as to data mining,
bioinformatics, and information retrieval. Prerequisites: Undergraduate Algorithms,
Probability with Statistical Methods. Term offered varies. 3 credits..
Levels: Graduate, Undergraduate
-
CS 580A - Special Topics
Special topics in Computer Science. 3 credits. Semester offered varies.
Levels: Graduate, Undergraduate
-
CS 580T - Special Topics
Special topics in Computer Science. 3 credits. Semester offered varies.
Levels: Graduate, Undergraduate
-
CS 553X - Software Security
This hands-on course covers offensive and defensive technologies in the area of
software security. Particularly, students will learn about various vulnerabilities
that lead to software compromise, attacks that exploit such vulnerabilities, and defenses
that defend against such attacks. Topics covered include simple control-flow corruption
attacks, slightly harder buffer overflow and return-to-libc attacks, advanced ROP
attacks, Meltdown and Spectre attacks on the hardware. Students are expected to not
only learn the concepts behind each attack, but also execute them in a controlled
environment. Prerequisite: Undergraduate Operating Systems. Term offered varies. 3
credits.
Levels: Graduate
-
CS 680P - Systems for Security & Privacy
Special topics in Computer Science. 3 credits. Semester offered varies.
Levels: Graduate
-
CS 580E - Special Topics
Special Topics in Computer Science. 3 credits. Semester offered varies.
Levels: Graduate, Undergraduate