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:
- Foundational software engineering concepts, such as program analysis, software testing, and debugging
- Software engineering techniques for improving the quality of ML/AI systems
- 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% |
|
| Presentation and Discussion Lead | 20% |
|
| Assignments | 10% |
|
| Project | 50% |
|
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.