Software Engineering and LLMs

CS 4501 - Fall 2025

“The end of classical computer science is coming, and most of us are dinosaurs waiting for the meteor to hit.” - Matt Welsh." So let's get ready!

Instructor

Sebastian Elbaum
Brings years of expertise in software engineering, co-leads LESS Lab at UVA researching automated analysis techniques to make software more dependable, excited about this revolution but also concerned about our abilities to adapt to them quick enough.

When and Where

  • Lectures: T/Th 9:30AM - 10:45AM, Olsson Hall 001
  • Office Hours: Tuesday 11:00AM to 12:00PM or by appointmenti at Rice 423

Description

This course will explore the transformative impact of Large Language Models (LLMs) on modern software engineering. Students will learn to leverage LLMs to enhance their productivity across the software development lifecycle, from coding and testing to debugging and maintenance. We will also practice how to be cognizant of the ethical and safety implications of using LLMs in software development.


Expectations

We will be conducting many in-class activities and experiments, so your presence and active participation are important to creating the most effective and engaging learning experience. A load of 3-6 hours a weeks can be expected to experiment with tools and when assignments/projects are due. No prior experience with AI development tools is required, but there will be little hand-holding in terms of support to set up the tools and complete the assignments, as I expect everyone to have the technical and programming skills of DS2.

Everyone will need to bring to class a laptop computer capable of running modern development tools. No textbook is required. Instructor will provide necessary reading material as part of the course through Canvas.

Course structure

Alternate short lectures and activities (vibing, interview, analysis, ...), emphasis on experiencing a new type of development.

Slides and assignments available initially through Canvas (then through this page for the use of others).


Prerequisite(s)

Required: DS2 or equivalent. Recommended: CS3240.


Academic Integrity

Every student in this course must fully comply with all the provisions of the University Honor Code (http://honor.virginia.edu), including the section on academic fraud http://honor.virginia.edu/academic-fraud. Assignments will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, all assignments will be considered pledged that you have neither given nor received help.

Use of AI is generally encouraged! Exception: some assignments will have explicit requirements about not using AI or how to use it.


Tentative Schedule

This is a new course in a fast changing area so the scheduled topics are subject to change.

Week Topic
Week 1 Introduction to LLMs for Software Engineers
Week 2 Enhanced Coding
Week 3 Discovering and specifying what customers need
Week 4 Architectures and design analysis
Week 5 Robustness
Week 6 Debugging
Week 7 Maintenance
Week 8 Reading Day, Project Discussion
Week 9 Front Ends, Agentic Development
Week 10 MVP
Week 11 Election, Project Update
Week 12 Project Demo
Week 13 -- Slack for Invited Speakers --
Week 14 Future of LLMs and Software Engineering, Thanksgiving
Week 15 Wrap-up and Project Presentations

Grading

Breakdown

  • Attendance: 20%
    • 2 unexcused absences: No penalty
    • 3-4 unexcused absences: max 10%
    • More than 4 unexcused absences: max 0%
  • Assignments: 50% (8 assignments, 5%-8% each)
  • Project: 30% (small teams)
Late Assignments and Grading
Late assignments will earn partial credit so you are encouraged to submit them even if late, weighting the late penalty against the completeness of your assignment. Unless otherwise stated, late assignments will be penalized 50% off the total possible points per late day. If you anticipate having troubles finishing an assignment in time please email me to discuss it. Grading. If you are dissatisfied with a grade please consult me directly within a week of the day the graded assignment was returned to you. No regrade requests will be considered after this week period.

Scale

Percentage Grade
[98, 100] A+
[93, 98) A
[90, 93) A-
[88, 90) B+
[83, 88) B
[80, 83) B-
[78, 80) C+
[73, 78) C
[70, 73) C-
[60,70)] D
Less than 60] F

Student Resources and Accommodations

Most important bit of information: if you need my help, reach out to me.

If you have a disability or other needs that may affect your experience in this course, please contact me so we can discuss accommodations. You can also reach out to the Student Disability Access Center (SDAC) at sdac.studenthealth.virginia.edu.

If you or someone you know has experienced discrimination, harassment, or interpersonal violence, resources and reporting options are available on the UVA Sexual Violence website at www.virginia.edu/sexualviolence. You can also make a report to Just Report It at justreportit.virginia.edu or contact the Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200. As a faculty member, I'm a responsible employee, which means I'm required to report certain incidents to the University's Title IX Coordinator. This ensures you receive the support you need.

For religious accommodations, please email me as far in advance as possible. For questions or concerns, you can also contact EOCR.

I encourage and support your career development. Please notify me by email in advance if you need to arrange for accommodations for things like interviews or conferences.

If you are a computer science student experiencing academic or personal stress, please don't wait to ask for help. In addition to me, you can also reach out to CS staff members SJ Jimenez-Calhoun (smj4z@virginia.edu) or Sheri Grimes (prk2zq@virginia.edu). You can also find walk-in advising hours at https://uvacsadvising.org/.