Welcome to Cornell CS 6158 - Software Engineering in the Era of AI (Fall 2026 Edition)!

Announcements

Aug 20, 2026: All students must fill in this survey about prerequisites, irrespective of their enrollment status by Aug 30, 2026! Survey

For enrollment related questions, please see enrollment policies at Bowers Registrar or file a ticket at Cornell Courses Help.

Course Description

Recent advances in Machine Learning (ML)/Artificial Intelligence (AI), and more recently in LLMs, have led to remarkable results in natural language processing, video generation, code generation, etc. In software engineering, LLMs are bringing a transformative change on how software is being developed and changing how developers write and maintain code. On one hand, ML/AI enable solving challenging software engineering problems through data-driven techniques. On the other hand, ML/AI systems present novel software engineering challenges that traditional methods cannot handle. This course will explore research in this important intersection of software engineering and ML/AI. Topics that will be covered include:

  1. Foundational software engineering concepts, such as program analysis, software testing, and debugging
  2. Software engineering techniques for improving the quality of ML/AI systems
  3. The use of ML/AI 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 5150, 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 10:10AM - 11:25AM, Location: Upson Hall 222
  • Office Hours: Mondays 1 PM - 2 PM, Gates Hall 438 (or by appointment)

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 webpage or on Canvas. Check the news section and Canvas regularly for updates.

  • Unless mentioned otherwise, all deliverables are due by 11.59 PM Eastern Time. Deadline is strict.

  • 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 zero 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 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.
  • Submit questions for the papers by midnight Friday (for Monday papers) and Monday (for Wednesday papers).
  • Participate in the discussion of the papers in class.
  • Can skip or submit questions late up to 3 times without penalty; each additional skipped or late submission decreases the final grade by proportionally to the total number of skipped or late submissions.
Presentation and Discussion Lead 20%
  • Select at least two papers you would like to present by Sep 10, 11.59 PM ET.
  • Schedule a meeting with Saikat a week before your presentation slot.
  • Prepare a 20-25 minute presentation on the paper. Reserve the remaining time for questions and discussion.
Assignments 10%
  • Total 3-4 assignments will be given throughout the semester.
  • Students must work individually on each assignment 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 ML/AI.
  • Project Proposal (2 page) due on Sep 14. Discuss and get approval on project topic from Saikat.
  • Proposal Presentation (5 min) on Sep 28. Get feedback from other students.
  • Mid-term project report on Oct 19 (2-3 pages). Discuss current progress and challenges with Saikat.
  • Final Report (5 pages) due on [TBD].
  • Final Presentations (15 min) between Nov 30 and Dec 7.

AI Usage Policy

  • You may use AI tools – including generative AI tools, coding agents, and agents – for any work in this course, unless otherwise specified. You may decide when and how to use them without requesting permission, and course activities and assessments are designed with that availability in mind. Please see assignment specific advice below.

  • You remain responsible for understanding the work you submit and for its correctness and provenance. You should review and test AI-generated contributions and be prepared to explain, evaluate, and modify any part of the submission.

  • Unless the assignment states otherwise, you do not need to cite AI merely because it assisted you, nor do you need to submit a record of your interactions with it.

  • For paper reviews, you are expected to read the paper on your own and write your own reviews. You are free to use AI to understand concepts of the paper and/or refine your review text, but please refrain from generating entire reviews using AI.