From Specifications to Implementation in the Gen-AI Era: Lessons from a Project-Based Software Engineering Course
Yingying Wang, Masih Beigi Rizi, Fatemeh Khashei, Julia Rubin
Abstract
By early 2025, AI code assistants had evolved into sophisticated collaborators capable of generating, explaining, reviewing, and modifying substantial portions of a software system. In February 2025, as we were delivering an upper-level undergraduate course on Software Engineering in our university, the term vibe coding emerged and quickly became popularized, referring to a practice in which developers describe a project or task in a prompt to an AI model that then generates code artifacts automatically. In this paper, we first report on the course setup and our analysis of students’ experience using AI assistants for developing open-ended software engineering projects in the Spring 2025 offering of the course. We then discuss our independent exploratory study that we conducted in Summer 2025, systematically investigating strategies for working with AI tools, specifically GitHub Copilot and Cursor, to implement a project of a real-world size and complexity, while also systematically evaluating the quality of the generated code. The goal of both studies is to better understand whether and how to teach Software Engineering in the AI era, i.e., which skills are essential for effective human–AI collaboration. Our results show that students utilized AI tools in all stages of project development, to generate and refine artifacts and to learn unfamiliar concepts. While Generative AI tools simplified repetitive development tasks and helped quickly ramp up when working with unfamiliar frameworks and programming languages, students had mixed levels of satisfaction with using the tools, both as chat interfaces and as IDE-embedded solutions. We found no correlation between the degree of students’ reliance on AI and their grades, hypothesizing that other factors, such as groups’ knowledge and commitment, play a larger role in producing high-quality results. Our exploratory study shows that tools were still far from replacing software engineers or rendering software engineering education unnecessary. In fact, we observe that, in the new AI-empowered reality, skills such as requirements engineering, design, testing, and code review are becoming more relevant (and easier to teach) than ever. We conclude the paper with a set of suggestions for future offerings of this and similar Software Engineering courses, and for using AI in Software Engineering more broadly.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 9c2eca7f-1a95-47d3-9861-df62228bfddcRelated papers
- Building Software by Rolling the Dice: A Qualitative Study of Vibe CodingYi-Hung Chou, Boyuan Jiang, Yi Wen Chen, Mingyue Weng et al.FSE 2026 · 1 citation
- Programmers Who Use Screen Readers in the Vibe Coding Era: Adaptation, Empowerment, and New Accessibility LandscapeNan Chen, Luna K. Qiu, Arran Zeyu Wang, Zilong Wang et al.CHI 2026 · 2 citations
- Vibe Coding Entanglements - Repositioning Boundaries of Intention, Authorship, and Responsibility in Programming with Generative AIJakob Tholander, Martin JonssonCHI 2026 · 3 citations
- Hey, ChatGPT, Look at My Work: Using Conversational AI in Requirements Engineering EducationSahar Badihi, Michael Tegegn, Evelien Riddell, Krzysztof Czarnecki et al.ICSE 2026
- Computer Science Achievement and Writing Skills Predict Vibe Coding ProficiencySverrir Thorgeirsson, Theo B. Weidmann, Zhendong SuCHI 2026 · 4 citations
