CMPUT 664 - Mining Software Repositories
Overview
Mining software repositories can be used to help triage bug-reports to experts, to improve development processes and to aide debugging. This course will in- troduce the methods and tools of mining software repositories and artifacts used by software developers and researchers. Students will learn to extract and ab- stract data from software artifacts and repositories such as source code, version control systems and revisions, mailing-lists and discussions, and issue-trackers and issues. Students will also learn about techniques to analyze this data in order to infer intent, recover behaviours and software development processes from evidence, or to empirically test hypotheses about software development.
There are no official prerequisites but I would prefer if you had experience making software, writing software, maybe even maintaining software: a systems or software engineering course with a project would suffice. Prior knowledge of software engineering, machine learning, statistics and natural language processing would be an asset, but is not required.
Syllabus (PDF, 74kb)
Objectives
- Be able to extract and analyze information from multiple software repositories in order to reason about existing software systems and development processes
- Validate hypotheses about software development using data extracted from existing software systems
Course Work
- Assignments
- Presentation
- Participation
- Project