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 delve into the architectural considerations and practical techniques for building robust systems that integrate LLMs. Lastly, we will practice how to be cognizant of the ethical and safety implications of using LLMs in software development.
We will be conducting many in-class experiments, so your presence and active participation are important to creating the most effective and engaging learning experience. A heavy workload can be expected when assignments/projects are due. 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.
Required: DS2 or equivalent. Recommended: CS3240.
Week | Topic | Due |
---|---|---|
SE with LLMs (w1-w5) |
||
Week 1 | Introduction to LLMs for Software Engineers | |
Week 2 | Enhanced Coding | |
Week 3 | Augmented Test Generation | |
Week 4 | Debugging and Repair Support | |
Week 5 | Maintenance and Documentation | |
Building Systems with LLMs (w6-w10) |
||
Week 6 | Design Patterns and API | |
Week 7 | Advanced Prompt Engineering | |
Week 8 | Retrieval Augmented Generation | |
Week 9 | Fine tuning for customization | |
Week 10 | LLM Deployment | |
Crosscutting Challenges (w11-w15) |
||
Week 11 | Responsible LLMs | |
Week 12 | Privacy, Security, Robustness | |
Week 13 | -- Slack for Invited Speakers -- | |
Week 14 | Future of LLMs and Software Engineering | |
Week 15 | Wrap-up and Project Presentations |