Common types of mining algorithms include frequent pattern mining—for example, frequent itemset, sequence, or partial-order mining—as well as sequence matching, clustering, and classification. Frequent pattern mining can be used to mine for API call usage patterns to help in programming or for specifications to help in bug detection.2 Different algorithms produce patterns that reflect different levels of information, and which algorithm to choose depends on the specific SE task’s mining requirements. For example, association rules or frequent itemsets do not reflect sequential order information among the elements in the mined patterns, whereas frequent sequence or partial orders do. Sequence matching can be used to detect potential bugs by finding locations for almost, but not exactly, matching mined sequence patterns.