- 1 Schedule
- 2 CS 495/595 Course Information
- 3 CS 795/895 Course Information
See Recently Offered Courses for more information on CS 518, CS 562, and CS 734
Update: Dr. Nelson’s CS 495/595 is now listed in the schedule as CS 431/531 Web Server Design. Same class, just a different number.
Click the image below for a larger PDF version of the schedule:
CS 495/595 Course Information
Formal Software Foundations – Dr. Chernikov
Motivation: The complexity of developing and deploying complex real-world computing systems has been growing at a very fast pace. At the same time, software has assumed key roles in most of the critical areas of society, including defense, healthcare, finance, energy, and transportation. The traditional approach to software quality control is based on testing using a limited (and often non-exhaustive) set of benchmarks; however, all possible scenarios cannot be anticipated for a large production level multi-component system. The pressing performance demands of parallel and cloud computing, coupled with security and robustness concerns, have necessitated the recent upsurge in the use of formal methods for software correctness assurances that also lead to opportunities in aggressive optimization. A number of leading companies and institutions, including Amazon, Microsoft, Twitter, and MIT, are pursuing functional programming and/or formal verification methodologies for the development of software systems that are well suited for logical analysis. The key advantage over the traditional approach is that formal methods allow for the logical arguments about all possible execution scenarios. Moreover, a technic called extraction can be used to automatically produce executable code from a specification of an algorithm in which the properties of the algorithm have been formally proven.
Description: In this course the foundational principles of functional programming and computer-assisted proof techniques will be studied. The main textbook available at https://softwarefoundations.cis.upenn.edu/ is based on the Coq proof assistant. The complete book can be downloaded as Coq scripts that include a sequence of examples and exercises with the narrative in the comments. The reader can step through these scripts in the Coq IDE, while simultaneously reading the narrative, observe the effects of commands and the changes in the states of the proofs, work on the exercises, and get immediate feedback from the interpreter. The main activity in the class will revolve around the interactive execution and development on these scripts via the computer and the projector, while discussing the examples, exercises, and accompanying concepts. The major topics covered in the course will be the fundamentals of functional programming, computer-assisted theorem proving, and examples of verified functional algorithms.
Assignments: 60% of the grade will be based on short (bi)weekly programming and proving assignments, and 40% on individual projects focused on developing a complete algorithmic specification.
Prerequisites: Experience using at least one programming language, fundamentals of algorithms and data structures.
Principles and Practices of Cyber Defense – Dr. Zhao
Description: This course is to help students gain a thorough understanding of vulnerabilities and attacks in
systems and networks and learn cyber defense best practices. It covers fundamental security design principles and defense strategies and security tools used to mitigate various cyber attacks. The fundamental goals of this course are that students will acquire:
- A principled understanding of the basic physical and virtual architecture of the cyber domain, focusing on: the individual computer and program, the physical components and protocols of a network and the Internet, and the distributed client-server system that is the World Wide Web;
- Hands on experience with basic components of the physical and virtual architecture in the cyber domain and the ability to relate that experience to the larger system;
- A principled understanding of DoD’s Pillars of Cyber Security (Confidentiality, Integrity, Availability, Non-repudiation, Authentication), the inherent vulnerabilities of information systems that endanger these properties, defensive measures to ensure that information systems retain these properties, and offensive measures that can be used to violate these pillars; and
- Hands on experience with some basic offensive and defensive practices in the cyber domain, and the ability to relate that experience to new or more sophisticated attacks and defenses.
- Identification of reconnaissance operations
- Anomaly/intrusion detection and identification
- Identification of command and control operations
- data exfiltration detection and prevention
- Identifying malicious code based on signatures, behavior and artifacts,
- Network security techniques and components
- Cryptography in cybersecurity
- Malicious activity detection
- System security architectures and concepts
- Defense in depth
- Trust relationships
- Distributed/Cloud and virtualization
Reverse Software Engineering – Dr. Wang
Description: The object of Software Reverse Engineering is to provide students with the understanding and practice to perform analysis on malware, deduce their and determine how malware works, and to aid the analysis via disassembly. Students will be able to use tools (IDAPro, Ollydbg) to safely perform static and dynamic analysis of malware, including encoded, packed, obfuscated ones. In particular, the course will have extensive hands‐on labs/assignments on each knowledge unit.
Prerequisites: Basic understanding of assembly language, software system and computer networks. Goals:
- Understand the mechanisms of malicious programs such as virus, worms, trojans, backdoors and rootkits
- Use reverse software engineering tools and methodologies to explore executable machine code
- Understand vulnerabilities that malware can exploit to compromise system
- Learn techniques to identify malware and how they evade detection
- Learn countermeasures that detect malware and understand the tricks malware can do to disable such countermeasures
- Understand ethical responsibilities and obligations associated with developing, acquiring and operating software system
Core Knowledge Units of the Course:
- Static Analysis of Binaries, Disassemblers (IDAPro)
- Dynamic Analysis (OllyDbg)
- Virtualization‐based sandbox environments (VMware)
- Process and file activity monitors (ProcMon)
- Network activity monitors (Wireshark, tcpdump)
Advanced Topics in HTTP – Dr. Nelson
This course is now listed as CS 431/531 – Web Server Design
Course Website: https://phonedude.github.io/cs595-f18/
This course will be similar to a previous course titled “Web Server Design”, covering writing a web server (HTTP) from scratch, learning REST, HTTP caching, HTTP/2, and other topics TBD. The most recent offering of that course is available at http://www.cs.odu.edu/~mln/teaching/cs595-s12/
CS 795/895 Course Information
Malware Analysis and Rev Engineering – Dr. Ahmad
Required Textbook: Practical Malware Analysis by Sakorski and Honig (No starch Press) / Articles distributed by instructor
Description: The Malware Analysis and Reverse-Engineering (MARE) is about theory, practice and research on analysis and reverse-engineering of a software after it has been identified as suspicious. The students will learn ways in which such malware can persist, such as through DLL injections, backdoors, as independent files or processes, Trojans or even time bombs. They will learn how to test it without running (static analysis), with running (dynamic analysis), and on various instances of operating systems and networking, such as virtual machines, sandboxes, virtual networks, air gapped networks and regular open networks. Students will deal with various malwares and how to analyze them in a controlled environment. Every week, students will read an article and relevant book chapter(s) from the textbook, do hands-on labs, and discuss the week’s topic on Blackboard. There will be a Final Examination at the end of semester worth of 30% credit towards the final grade.
(Note: In the future, this course will be offered as CS 763/863.)
Internet of Things Security – Dr. Zhao
Description: Internet of Things (IoT) is the combination of embedded computing systems, which have sensors to connect data and actuators to affect the surrounding, and the Internet, which provides ubiquitous remote and secure communication. While the promise of the IoT brings many new business prospects, it also presents significant challenges ranging from technology architectural choices to security concerns. This course offers important insights on how to overcome these challenges and thrive in this exciting space. It will introduce the most recent trends and activities in the Internet capabilities and concerns about smart devices, particularly intelligent computation and security practices in IoT, aiming at learning in depth core computer science issues about IoT and gain hands-on experience to deepen students’ knowledge. Students will learn about smart technologies that can be implemented into the areas from industrial systems to home automation to healthcare. They will explore current security and privacy related concerns in IoT. It further strengths students’ design, programming, and systematic development skills to construct a secure and smart object and create a system as part of the Internet of Things.
- Smart home
- Wearables and motion sensing
- Personalized gesture recognition
- Machine learning basics
- IoT Programming
- Networking for IoT
- IoT security and privacy
- Secure communications
- Fundamentals of cryptography
- IoT authentication and authorization
Mining Scholarly Big Data – Dr. Wu
Description: One of the computer science subject areas that are the most impacted by artificial intelligence in the last decade is natural language processing (NLP). This technology further leads to advancements for machines to read, understand, and write textual content.
This seminar is designed to use textual content in scientific documents as an example to train graduate students effective and efficient ways to process text and extract statistical, syntactical, and semantic features from free text. The other half of the seminar will cover contemporary research topics in scholarly big data, an instance of big data, and more broadly text mining. The course will introduce commonly used machine learning (ML), NLP, and information retrieval (IR) tools as a preparation for a course project.
- Understand the main tasks of text mining and what NLP can do for these tasks
- Understand the state-of-the-art solutions of research topics such as keyphrase extraction, topic modeling, document classification, recommendation, knowledge extraction, and entity matching
- Learn knowledge and skills of essential tasks in ML, NLP, and IR
- Learn how to efficiently search, read and digest research papers
- Learn how to choose research topics, conduct preliminary research, and project plans
- Learn how to effectively present research work
Mobile Sensing in Smart Cities – Dr. Jain
Description: Ubiquitous sensing devices such as smartphones, cameras, and wearables, are dominating every aspect of our daily lives. Behind their flashy exteriors are cutting-edge technological breakthroughs. This seminar course will expose students to the breadth of recent advances in mobile sensing and inter-disciplinary ideas in mobile computing. Particularly, the data processing and algorithmic techniques used for sensors in smartphones, wearables devices, drones, vehicles, cameras, virtual reality and IoT devices. Students will read research papers and work with state-of-the-art mobile devices on a semester long exciting project. This hands on experience will enhance their understanding of advanced research, industry trends, and develop system building and data analytics skills.
- Outdoor localization: GPS and beyond
- Indoor positioning: From wireless to visible light
- Low-latency sensor fusion for usable virtual and augmented reality • Mobile health sensing: Measuring breathing and sleep patterns
- Wireless sensing and positioning for drones
- Inertial Sensing and Motion Analysis
- Continuous vision and energy-efficiency on mobile devices
- Vehicular sensing and cloud offloading
- Smart home sensors and Internet of Things
- Activity and Gesture Recognition on Wearable Devices