Machine Learning for Software Engineering

Download as PDF

Course Description

In recent years, tools based on machine learning have become increasingly prevalent in the software engineering field. The ubiquity of machine learning is an important factor, but just as important is the availability of software engineering data: there are billions of lines of code available in public repositories (e.g. on GitHub), there is the change history of that code, there are discussion fora (e.g. Stack Overflow) that contain a wealth of information for developers, companies have access to telemetry on their apps from millions of users, and so on. The scale of software engineering data has permitted machine learning and statistical approaches to imagine tools that are beyond the capabilities of traditional, semantics-based approaches. In this graduate seminar, students will learn the various ways in which code and related artifacts can be treated as data, and how various developer tools can be built by applying machine learning over this data. The course will consist of discussion of a selection of research papers, as well as a hands-on project that can be done in small groups. Prerequisites: Familiarity with basic machine learning, and either CS143 or CS295.

Grading Basis

ROP - Letter or Credit/No Credit

Min

3

Max

4

Course Repeatable for Degree Credit?

No

Course Component

Lecture

Enrollment Optional?

No

Does this course satisfy the University Language Requirement?

No

Programs

CS349M is a completion requirement for:
  • (from the following course set: )
  • (from the following course set: )
  • (from the following course set: )