CS 686: Data Driven Program Analysis
The course will cover recent applications of data mining techniques such as frequent itemset mining, anomaly detection, and classification in analyzing programs for automated testing, debugging, fault isolation, repair, synthesis, etc.
The detailed contents are:
Overview of interesting problems in programming languages and software engineering; motivation of applying data-driven techniques for addressing these problems.
Fundamentals of data mining: Data pre-processing, statistical measures, classification and clustering, frequent itemset mining, anomaly detection, graph mining.
Fundamentals of program analysis: Control-flow analysis, dataflow analysis, program dependence graphs, efficient profiling algorithms, static and dynamic instrumentation techniques.
Data mining for program analysis: Data-driven techniques for bug localization, program synthesis and repair, invariant generation, automated testing and debugging.