- 1 Schedule
- 2 Additional Course Information
- 3 CS 795/895 Course Information
See Recently Offered Courses for more information on CS 500, CS 518, CS 531, and CS 562.
Click the image below for a larger PDF version of the schedule:
- A maximum of four (4) 500-level courses may be counted towards the MS degree.
- International students are limited to 1 online course per semester.
Last updated August 13, 2019
Additional Course Information
CS 402/502 – 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 correct-by-construction methods based on methodologies of formal logic. 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. The key advantage over the traditional approach is that formal methods allow for the logical arguments about all possible execution scenarios, and, as an extra benefit, for pursuing opportunities in aggressive optimization. Moreover, a technique 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 of 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 functional programming, algebraic and polymorphic data types, pattern matching, computer-assisted theorem proving, proof automation, extraction of certified executable code, and examples of verified algorithms.
Assignments: 60% of the grade will be based on short weekly programming and proving assignments, and 40% on individual projects focused on a development of a complete algorithmic specification.
Prerequisites: CS 381 or equivalent.
CS 467/567 – Intro to Reverse Software Engineering – Dr. Wang
This class was offered last Fall as a CS 495/595.
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)
CS 625 – Data Visualization – Dr. Weigle
This course will be offered both in-class and online.
Course Website: https://www.cs.odu.edu/~mweigle/CS625-F19/
Catalog Description: This course covers the theory and application of data visualization. This includes issues in data cleaning to prepare data for visualization, theory behind mapping data to appropriate visual representations, introduction to visual analytics, and tools used for data analysis and visualization. Modern visualization software and tools will be used to analyze and visualize real-world datasets to reinforce the concepts covered in the course.
Course Objectives: After completing this course, you should be able to do the following:
- Use OpenRefine to explore and clean real-world data.
- Explain the difference between exploratory (discover task) and explanatory (present task) visualizations.
- Describe the channels of visual encoding and order them from most effective to least effective.
- Identify a visualization where an inappropriate arrange design choice was made and explain why the choice was inappropriate.
- Explain how different data types map most effectively to various visualization idioms (i.e., charts).
- Explain the importance choosing an appropriate colormap.
- Given a dataset, develop questions about the data that can effectively be answered with a visualization.
- Critique and redesign an existing visualization.
- Use Tableau, R, Vega-Lite, or other API or software to create effective standard charts, such as line charts, scatterplots, bar charts.
- Use Tableau, R, Vega-Lite, or other API or software to create an effective visualization of real-world data.
- Explain and defend the design choices that you made in creating your visualization.
Comparison to CS 725/825: If you have already taken CS 725/825, then CS 625 is not appropriate for you. Future offerings of CS 725/825 may require (or strongly recommend) CS 625 as a prerequisite.
CS 891 – Emerging Technologies – Dr. Justin Brunelle
CS 795/895 Course Information
Intelligent User Interfaces – Dr. Vikas Ashok
Dr. Ashok is a new faculty member joining the department in Fall 2019. This course originally listed as “HCI: Accessible Computing”
This research-intensive course will focus on intelligent user interfaces, and is intended to expose students to the cutting-edge research in the area. This is a seminar-style course, where 2-3 research papers will be discussed in each class. There will also be a few lectures to cover the fundamental topics in UI design and evaluation. We will discuss state-of-the-art intelligent interactive systems for desktops, smartphones, and wearables. This course is project based, and students will be expected to work in teams to design, develop, and evaluate “usable” user interfaces for accessible computing. The course will include the following topics:
The course will include the following topics:
- Intelligent UI for Assistive Technologies
- Speech Interfaces and Assistants
- Wearable Computing
- Crowd Sourcing and Crowd-Powered Interfaces
- Augmented Reality
- Intelligent UI for Smartphone Interaction
There is no official textbook for the course. The course content will be based on research papers published in the premier conferences such as ACM CHI, UIST, IUI, and the following seminal books:
- The Design of Everyday Things (2013) by Don Norman
- The Psychology of Human-Computer Interaction (1983) by Stuart K. Card, Thomas P. Moran, and Allen Newell
Internet Infrastructure & Security – Dr. Shuai Hao
Dr. Hao is a new faculty member joining the department in Fall 2019.
Course Website: https://shhaos.github.io/teaching/CS795/2019F.html
Description: This course is a research-oriented, graduate-level course, centering around introducing both classical and emerging Internet technologies and security enhancements. The course aims to provide a thorough grounding on the Internet and security, suitable for those interested in conducting research in this area, as well as students more generally interested in networking or security.
- Foundations of the Internet: Internet Architecture, Internet Topology, Middleware, DNS, CDN
- DDoS and Botnets: Amplification & Reflection Attack, DDoS Defense, Botnets Characterization
- Network Intrusion Detection System (NIDS): Protocol Semantics, Machine Learning in Network Security
- Public Key Infrastructure (PKI): SSL/TLS, HTTPS, DNSSEC
- Routing System: MPLS, Anycast, BGP Attacks (Hijacking & Interception), RPKI
- Web System and Security: Load Balancing, Authentication, Web Accelerating, Browser Security
- Anonymity and (Anti-)Censorship: Tor and Onion Routing, Censorship Inference and Countermeasures
- Miscellaneous: Internet Scanning, Spam and Email Security, Advertising Network, SDN, P2P and Cryptocurrency, Search Engine Poisoning
Required Textbook: The course has no textbook required. We will study research papers and the instructor will introduce the background and reference books for particular topics.
Useful reference textbooks include:
- Charlie Kaufman, Radia Perlman, and Mike Speciner, Network Security – Private Communication in a Public World, 2nd Edition, Prentice Hall, 2002.
- Michael T. Goodrich and Roberto Tamassia, Introduction to Computer Security, Addison Wesley
- James Kurose and Keith Ross. Computer Networking: A Top-Down Approach, 6th/7th Edition, Addison-Wesley.
- Note: This textbook is used for both CS 555 and CS 562.
Malware Analysis and Reverse Engineering – Dr. Wang
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.
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