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% |
|
Paper Presentation/Review Guidelines
If you are the presenter:
- You should prepare a 15-20 minute presentation on the paper.
- See the schedule to find the paper you must present on the day. Each day has at least two papers. If you are assigned “Presenter 1”, you should present the first paper. If you are assigned “Presenter 2”, you should present the second paper. Ignore any additional papers for that day on the schedule.
- Compile a list of at least 5 questions from the comments left by your classmates on the paper on Perusall.
- Lead the discussion of these questions in class (10-15 minutes session), except for days where an explicit discussant has been assigned. For example, select a question from the list and the person who asked it to start the discussion and share their thoughts on that question. Then, invite other students to share their thoughts on that question. You can explicitly pick different students in class to respond to each question. Your job is to guide the discussion and engage your classmates in the discussion. You need not answer all questions yourself.
- You do not need to submit questions for any paper on the day your are presenting.
- Submit your presentation slides to canvas. This is mandatory to allow us to assign grades.
If you are the discussant:
- You should read both the papers on the day and lead the discussion of both papers.
- Coordinate with the presenters to compile the list of most interesting questions.
- You do not need to prepare a presentation.
- On canvas, submit the list of questions you compiled for the presenters. This is mandatory to allow us to assign grades.
If you are the not the presenter or the discussant:
- You should carefully read only one paper each day and leave at least 2 questions on Perusall. You must not repeat comments posted by other students, but you can add to the discussion.
- You should submit the questions on Perusall by Friday 11.59 PM ET for Monday’s paper and Monday 11.59 PM ET for Wednesday’s paper.
- “Which paper should I read?” We will follow this policy: If you are assigned “Presenter 1” on any day: you should submit questions for the first paper on the days you do not present. If you are assigned “Presenter 2”/”Discussant” on any day: you should submit questions for the second paper on the days you do not present.
- Each week, you will read exactly two papers.
- You can miss reviews of up to 5 papers without penalty.
- At the end of the class, you must submit a feedback form on canvas for the presenters and the discussants. These forms are due by the end of the presentation day. You can miss up to 5 feedback submissions without penalty.
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.