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%
  • Read the papers assigned for the week.
  • Post a review of the papers on the by midnight Friday (for Monday papers) and Monday (for Wednesday papers).
  • Participate in the discussion of the papers in class.
  • Can skip or submit late up to 3 without penalty; each additional decreases the final grade by proportionally to the total number of reviews.
Presentation and Discussion Lead 20%
  • Select at least two papers you would like to present by Sep 6, 11.59 PM ET.
  • Schedule a meeting with Saikat a week before your presentation slot.
  • Prepare a 20 minute presentation on the paper.
Assignments 10%
  • Total 2-4 assignments will be given throughout the semester.
  • Students must work individually on each homework and submit on Canvas by the due date.
Project 50%
  • Students are expected to work on a research project in groups of 2. The research topic should be at the intersection of Software Engineering and Machine learning.
  • Project Proposal (2 page) due on Sep 20. Discuss and get approval on project topic from Saikat.
  • Proposal Presentation (5 min) on Sep 30. Get feedback from other students.
  • Mid-term project report on Oct 25 (2-3 pages). Discuss current progress and challenges with Saikat.
  • Final Report (5 pages) due on Dec 15 11.59 PM ET.
  • Final Presentation (15 min) on Dec 2 - 9.