Fall 2017 Graduate Course Schedule

Full course schedules from the CS Dept or from ODU

Course Descriptions

See Recently Offered Courses for more information on CS 518, CS 541, CS 562, CS 725, and CS 734


(Online students: CS 500 will not be offered online again until Spring 2019.)

Click the image below for a larger PDF version of the schedule:

CS 495/595 Course Information

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)

CS 795/895 Course Information

Internet of Things Security – Dr. Zhao

Internet of Things (IoTs) 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. This course will introduce the most recent trends and activities in the Internet capabilities and concerns about smart devices, particularly security policies and practices in IoTs. The “connected smart home”, “consumer wearables”, or even a house’s HVAC system may cause an unanticipated threat to our environment. We will explore current security and privacy related concerns in IoTs. Each module will include readings, videos, case studies, hands-on labs and a quiz to help make sure that students understand the course content. This course intends to provide an opportunity to learn and plan for a secure and smart community approach to IoTs.

Selected topics may include but are not limited to:

  • IoT technologies
  • IoT architecture
  • IoT vulnerabilities
  • Awareness of attacks
  • Secure communications
  • Fundamentals of cryptography
  • IoT authentication and authorization
  • IoT Data Integrity
  • Emerging technologies for IoT security
  • Security management

Formal Methods – Dr. Chernikov

This course is motivated by the complexities of designing robust software that are growing for many research and industrial applications. One of the published case studies appeared recently in the Communications of the ACM where the authors describe the use of the TLA+ system, developed by Microsoft, for the verification and optimization of Amazon web servers (https://doi-org.proxy.lib.odu.edu/10.1145/2699417).

The following are key insights from the article:

  • “Formal methods find bugs in system designs that cannot be found through any other technique we know of.”
  • “Formal methods are surprisingly feasible for mainstream software development and give good return on investment.”
  • “At Amazon, formal methods are routinely applied to the design of complex real-world software, including public cloud services.”

The main thread of the course will be the study of the formal software foundations via this open source textbook (http://www.seas.upenn.edu/~cis500/current/sf/index.html) and the underlying Coq environment for specifying and proving properties of software systems (https://coq.inria.fr/). This is a functional programming approach, also related to the recent article on functional server software at Twitter (https://doi-org.proxy.lib.odu.edu/10.1145/2980985). We will also look at other relevant books, articles, systems, and applications.

The grade will be assigned based on a student presentation. Each student will be expected to choose a focused topic that appeals to them and present an exploration of it, likely including some development, by the end of the semester.

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

Malware Analysis and Reverse Engineering – Dr. Ahmad

Offered online

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.)