Foundations and Applications of Program Analysis

COM S 513
  1. Credits and contact hours: 3 credits, 3 contact hours
  2. Instructor’s or course coordinator’s name: Wei Le
  3. Text book, title, author, and year: None required
  4. Other supplemental materials: None

Specific course information

  1. Brief description of the content of the course: Algorithms and tools for automatically reasoning about code and program executions to predict software behavior. Theory and foundations related to control flow analysis, dataflow analysis, abstract interpretation and symbolic execution. Applications of program analysis to improve software security, performance and testing. Concepts, algorithms, tools, benchmarks, methodologies for solving problems using program analysis and for preparing research in program analysis.
  2. Prerequisites or co-requisites: COM S 331, COM S 342
  3. Required, elective, or selected elective? Selected Elective

Specific goals for the course

  1. Specific outcomes of instruction:
  • An ability to analyze a complex computing problem and to apply principles of computing to identify solutions (1)
  • An ability to apply computer science theory and software development fundamentals to produce computing-based solutions (6)

Brief list of topics to be covered

  • Finding bugs
  • Automatic test input generation
  • Debugging and fault localization
  • Analyzing software changes and versions
  • Specification inference
  • Big code analysis
  • Automatic program repair