Developed and Offered Courses

CAP 5150: Foundations of Computer Security and Privacy (Graduate)

Developed and offered as part of the M.Sc. in Computer Security, covering foundations of applied cryptography and computer security. The course focuses on the rigor required for reasoning about properties of modern cryptographic protocols and primitives, and combines a lecture-based and a project-based approaches on modern cryptography and computer security. Topics covered include computational cryptography and security, pseudorandomness, CPA-security, CCA-security, message authentication codes and hash functions, pseudorandom permutations, cryptoanalysis, public key cryptography, public key encryption, and digital signatures. The second part of the course is focused on applied computer security, including transport security, network attacks and defenses, application security (bugs, shellcodes, viruses, spyware), web security (cookies, tracking, XSS, SQL injection, and defenses), advanced threats (including cyber warfare and APTs), and privacy enhancing technologies (TOR, OTR, GPG, anticensorship, social networks and privacy).

CAP 6133: Advanced Topics in Computer Security and Computer Forensic (Graduate)

This course tracks advances in computer security and forensics in the recent years. Topics included cover a range of emerging threats, attacks, and defenses. Topical scope of this includes malware, botnets, smartphone security, transport security, security economics, social networks security, and web security. A substantial part of the course is a semester-long project on one of the topics taught in the course.

CIS 4615: Secure Software Development and Assurance (Undergraduate)

The course covers software security, terms, and definitions, including threat modeling, secure software development lifecycle and touchpoints, risk management frameworks, and their incorporation into the secure software development lifecycle, common criteria and why they are needed, common bad software development practices and how to avoid them, and instances of bad practices that would result in actual threats due to buffer overflow, dangling pointers, memory leakage, etc. As applications areas, the course will also cover software security for the web, networks, and cryptographic tools, associated attack vectors, and the corresponding secure software development practices associated with them.

CIS 4361: Secure Operating Systems and Administration (Undergraduate)

This is an undergraduate course of operating system security, mainly focusing on the Linux Operating System, and will cover the following: running linux in virtual environment, securing user accounts, securing servers using firewalls (including a dive into iptables and nftables), encrypting and ssh hardening (including key management), and access control. We will cover those aspects of operating system securtiy in both Ubuntu and CentOS. Some knowledge of operating systems is required for this course.

CAP 6640: Computer Understanding of Natural Language (Graduate)

This is an advanced course of natural language processing, and covers recent advances on the subject, including the following: introduction to word vectors, word vectors and word senses, backpropagation, neural networks, linguistic structures and dependency parsing, recurrent neural networks for language models, vanishing gradient and fancy RNNs, machine translation, seq2seq, and attention mechanisms, CNNs for NLP, subword models, contextual representation and pretraininng, neural natural language generation, coreference resolution, multi-task learning, safety, bias, fairness, and ethics.


Website last updated on 04/28/2019