Welcome to Cornell CS 6158 - Software Engineering in the Era of Machine Learning (Fall 2024 Edition)!
Course Description
Recent advances in Machine Learning have led to remarkable results in natural language processing, video generation, code generation, etc. On one hand, Machine Learning enables solving challenging software engineering problems through data-driven techniques. On the other hand, Machine Learning systems present novel software engineering challenges that traditional methods cannot handle. This course will explore research in this important intersection of software engineering and machine learning. Topics that will be covered include: 1) foundational software engineering concepts, such as testing, debugging, and program analysis, 2) software engineering techniques for improving the quality of machine learning systems, and 3) the use of machine-learning techniques (including Large Language Models) to improve software engineering.
Prerequisites
Students are expected to know fundamental concepts at least in Machine Learning and/or Software Engineering, and have strong programming skills in Python and Java. Also, students are expected to have taken courses in SE/PL or NLP/ML. Relevant SE/PL courses: CS 5154, CS 3110, CS 4120, or equivalent; NLP/ML courses: CS 4770, CS 4740, CS 4780, CS 4782, or equivalent.
Course Info
- Instructor: Saikat Dutta
- Instructor Email: saikatd@cornell.edu
- Lectures: Mon/Wed 08:40AM - 09:55AM, Location: Hollister Hall 362
- Office Hours: Monday 2-3 PM, Gates Hall 438
Course Objectives
Students will be able to:
- Understand and apply static and dynamic program analyses such as automated test generation, debugging, and dataflow analysis.
- Apply machine learning-based techniques to solve software engineering problems.
- Apply automated software engineering techniques to machine learning systems.
- Understand and analyze recent research results in software engineering.
Course Administration
- We are using Canvas as course management system. Announcements will be posted on the course web page or on Canvas. Check the news section and Canvas regularly for updates.
-
Students must work individually on each assignment and submit on Canvas by the due date.
-
Readings to complement in-class discussions will be noted in the schedule section of the course web page. Students are required to review the assigned readings and ask 2-3 unique questions before the lecture. Students may skip or submit questions late or miss a class for up to 3 times without penalty. After that, each skip or late submission will result in a 0 grade for that reading.
-
Students will lead the discussion of one research paper individually. Schedule a meeting with the instructor a week before you are due to lead a paper discussion. Discussion leads do not have to submit questions for the paper that they are in charge of.
-
The course project will be completed individually or in self-selected pairs. We will discuss possible projects early in the semester. There will be mandatory project meetings with the instructor: once in the beginning to discuss potential topics and project scope, and two meetings to keep track of project progress. Project grade will be based on the quality of the progress made, rather than on the length of the reports.
Method of Assessing Student Achievement
Activity | Grade | Details |
---|---|---|
In-class Participation and Reviews | 20% |
|
Presentation and Discussion Lead | 20% |
|
Assignments | 10% |
|
Project | 50% |
|