Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Software-Entwicklung# Künstliche Intelligenz

Die Rolle von LLMs in der Softwareengineering-Ausbildung bewerten

Eine Studie über die Auswirkungen von LLMs in Universitätskursen für Softwaretechnik.

― 8 min Lesedauer


LLMs in derLLMs in derSoftwareausbildungUni-Coding-Projekten.Bewertung von KI-Tools in
Inhaltsverzeichnis

Grosse Sprachmodelle (LLMs) sind neuste Technologie in der künstlichen Intelligenz, die richtig gut mit menschlicher Sprache umgehen können. Auch wenn diese Modelle nicht speziell zum Programmieren entwickelt wurden, haben sie auch da ziemlich beeindruckende Fähigkeiten gezeigt. Aber wir verstehen immer noch nicht ganz, wie nützlich LLMs für Studierende sind, die an Softwareengineering-Projekten arbeiten. Diese Studie betrachtet, wie Studierende LLMs im Uni-Setting nutzen können, wo sie ermutigt werden, diese Tools in ihre Arbeit einzubauen.

Studienübersicht

Die Studie wurde mit 214 Studierenden durchgeführt, die in Teams von bis zu sechs Mitgliedern gearbeitet haben. Anders als in den meisten akademischen Kursen, wo die Nutzung von LLMs verboten ist, durften die Studierenden in diesem Kurs die Modelle frei verwenden. Ziel der Studie war es zu bewerten, wie diese Modelle die Studierenden bei ihrer Entwicklungsarbeit unterstützen könnten.

Wir haben den Code analysiert, der von den LLMs generiert wurde, die Eingaben (oder Anweisungen), die die Studierenden verwendet haben, um die Modelle zur Generierung von Code zu bringen, und den Anteil menschlicher Bearbeitungen, der nötig war, um den AI-generierten Code nutzbar zu machen. Ausserdem haben wir Umfragen durchgeführt, um die Meinungen der Studierenden zur Nützlichkeit von LLMs und deren Rolle in ihren zukünftigen Karrieren zu sammeln.

Ergebnisse zum AI-generierten Code

Unsere Analyse zeigte, dass LLMs ziemlich hilfreich sein können, besonders in den Anfangsphasen eines Softwareprojekts. Die Studierenden berichteten, dass die Modelle ihnen geholfen haben, grundlegende Code-Strukturen zu erstellen, Syntaxfehler zu debuggen und insgesamt Unterstützung bei der Entwicklung ihrer Anwendungen zu bieten. Sie schätzten es, LLMs wie einen Partner beim Programmieren zu nutzen, besonders um Fehlermeldungen zu verstehen und die Code-Qualität zu verbessern.

Die Studie zeigte, dass viele Studierende LLMs für repetitive Aufgaben nützlich fanden und dass deren Nutzung die Produktivität steigert. Allerdings äusserten einige Studierende Bedenken, dass eine Abhängigkeit von diesen Tools ihre Programmierfähigkeiten verringern könnte und möglicherweise den Arbeitsmarkt für Softwareingenieure negativ beeinflussen könnte.

Projektbeschreibung

Die Studierenden im Softwareengineering-Kurs hatten ein Semester-Projekt, bei dem sie einen Statik-Programm-Analyzer (SPA) für eine vereinfachte Programmiersprache namens SIMPLE entwickeln mussten. Diese Sprache ist nicht für den realen Gebrauch gedacht, sondern dient dazu, den Studierenden grundlegende Programmierkonzepte zu vermitteln. Das Projekt erforderte von den Teams, dass sie SIMPLE-Programme analysieren und Abfragen durchführen, um reale Softwareentwicklungsprozesse zu simulieren.

Die Studierenden folgten einem strukturierten Zeitplan, in dem sie regelmässige Planungs- und Überprüfungstreffen einhielten und branchenspezifische Tools zur Fortschrittsverfolgung verwendeten. Die Arbeitsbelastung war so gestaltet, dass sie handhabbar war, wobei die Studierenden etwa 20 Stunden pro Woche für ihr Projekt aufwenden sollten.

AI-Code-Generierung in der Praxis

Die Studierenden wurden ermutigt, LLMs wie GitHub Copilot und ChatGPT zur Unterstützung beim Code-Generieren zu verwenden. Sie mussten ihre Einreichungen annotieren und angeben, wo sie AI-generierten Code verwendet haben und wie viel menschliche Intervention nötig war, um diesen Code in ihr Endprodukt zu integrieren. Die menschliche Intervention wurde in drei Ebenen klassifiziert:

  • Ebene 0: Keine Änderungen am AI-generierten Code vorgenommen.
  • Ebene 1: Kleine Änderungen am AI-generierten Code vorgenommen.
  • Ebene 2: Grössere Änderungen am AI-generierten Code vorgenommen.

Durch die Analyse dieser Anmerkungen konnten wir den Aufwand bewerten, der nötig war, um AI-generierten Code effektiv zu integrieren.

Nutzerstudie und Umfrage-Ergebnisse

Um mehr Informationen über die Erfahrungen der Studierenden mit LLMs zu sammeln, führten wir am Ende des Semesters eine Umfrage durch. Diese Umfrage fragte die Studierenden nach ihren Wahrnehmungen und Erfahrungen in der Nutzung von KI für ihre Programmieraufgaben. Wir wollten herausfinden, wie diese Tools ihre Fähigkeiten und Einstellungen zum Softwareengineering beeinflussten.

Die Umfrage beinhaltete Fragen zur Vertrautheit der Studierenden mit Programmierung, ihren selbstbewerteten Programmierfähigkeiten und ihren Erfahrungen mit AI-Code-Generatoren. Die Ergebnisse zeigten ein starkes Interesse an der Nutzung von LLMs, wobei viele Befragte das Gefühl hatten, dass diese Tools ihnen halfen, Aufgaben effizienter zu erledigen. Einige Studierende waren jedoch vorsichtig und sorgten sich, zu abhängig von AI-Hilfe zu werden.

AI-Code-Nutzungsstatistiken

Von den 37 Teams im Kurs berichteten 15 Teams (etwa 40 %), AI-generierten Code in ihren Projekten verwendet zu haben. Eine kleine Anzahl dieser Teams generierte einen grossen Prozentsatz des gesamten AI-generierten Codes. Der Grossteil des generierten Codes kam von der ChatGPT-3.5-Version, wobei einige Teams auch GitHub Copilot und ChatGPT-4 verwendeten.

Während des Projekts wurden Daten zu drei wichtigen Meilensteinen gesammelt: Meilenstein 1, Meilenstein 2 und Meilenstein 3. Die Analyse ergab, dass LLMs besonders in der Anfangsphase nützlich waren, als die Studierenden Hilfe benötigten, um mit ihren Projekten zu beginnen. Mit dem Fortschreiten des Projekts, als die Studierenden vertrauter mit der Sprache und den Anforderungen wurden, nahm die Nutzung von LLMs ab.

Prompt Engineering

Im Laufe des Kurses gaben die Studierenden eine Vielzahl von Eingaben, um die LLMs bei der Code-Generierung zu leiten. Von 61 aufgezeichneten Eingaben lag die durchschnittliche Wortanzahl bei etwa 18 Wörtern. Die Eingaben fielen in fünf Kategorien: Verbesserung des selbstgeschriebenen Codes der Studierenden, Lösung einfacher Aufgaben, Generierung spezifischer Datenstrukturen, Erstellung von Lösungen für häufige Probleme und Generierung von Testfällen.

Durch die Analyse der Eingaben beobachteten wir, dass die Studierenden oft auf LLMs zurückgriffen, um Hilfe bei einfacheren Aufgaben zu bekommen, besonders bei solchen, die mit Syntax und grundlegenden Algorithmen zu tun hatten.

Einfluss auf Programmierfähigkeiten

Ein wichtiges Ergebnis dieser Studie war, dass die Programmierfähigkeiten der Studierenden einen erheblichen Einfluss auf ihre Bereitschaft hatten, LLMs zu nutzen. Studierende, die sich selbst als weniger geschickt einschätzten, waren zögerlicher, sich auf AI-generierten Code zu verlassen. Dieses Ergebnis deutet darauf hin, dass solide Programmierfähigkeiten nötig sind, um AI-Tools effektiv zu nutzen.

Studierende mit mehr Erfahrung im Umgang mit AI-Code-Generatoren waren auch selbstbewusster in ihrer Fähigkeit, mit diesen Tools zu arbeiten. Das hebt hervor, wie wichtig es ist, zu üben und Fähigkeiten zu entwickeln, um den grösstmöglichen Nutzen aus der Nutzung von LLMs zu ziehen.

Sentiment-Analyse

Um die Gefühle der Studierenden zur Nutzung von LLMs zu erfassen, haben wir offene Fragen in die Umfrage aufgenommen. Viele Studierende äusserten positive Gefühle und sagten, dass LLMs ihnen geholfen haben, Programmierkonzepte besser zu verstehen und das Programmieren angenehmer zu machen. Negative Gefühle drehten sich hauptsächlich um die Bedenken, dass eine Abhängigkeit von AI ihre Leidenschaft fürs Programmieren und kritisches Denken mindern könnte.

In Bezug auf ihre zukünftigen Karrieren hatten die Studierenden gemischte Ansichten darüber, wie LLMs sie als Softwareingenieure beeinflussen würden. Einige glaubten, dass KI sie effizienter machen würde, während andere besorgt über mögliche Arbeitsplatzverluste im Softwareentwicklungsbereich waren.

Qualität und Richtigkeit des Codes

In einem akademischen Umfeld wurde die Qualität des von jedem Team erzeugten Codes anhand von Testfällen und Benchmarks bewertet. Unsere Analyse ergab keine signifikanten Unterschiede in der Code-Qualität zwischen Teams, die LLMs verwendeten, und denen, die es nicht taten. Das deutet darauf hin, dass selbst wenn einige Studierende stark auf AI-generierten Code angewiesen waren, sie dennoch Qualität durch sorgfältige Bearbeitung und Überprüfung aufrechterhielten.

Interessanterweise zeigten die ersten Meilensteine eine starke Abhängigkeit von LLMs für einfachere Aufgaben, während die Studierenden im Verlauf des Projekts sicherer wurden und komplexere Aufgaben in Angriff nahmen.

Fazit

Diese Studie beleuchtet die potenziellen Vorteile und Herausforderungen der Nutzung von LLMs in der Ausbildung im Softwareengineering. LLMs können Studierenden in den frühen Phasen der Projektentwicklung erheblich helfen, insbesondere bei Routineaufgaben wie Debugging und der Generierung grundlegender Code-Strukturen. Allerdings brauchen die Studierenden solide Programmierfähigkeiten, um diese Tools effektiv zu nutzen, und sollten davor gewarnt werden, zu abhängig zu werden.

Da sich die Landschaft des Softwareengineering aufgrund neuer Technologien weiterentwickelt, ist es entscheidend, dass Bildungseinrichtungen die Studierenden mit den notwendigen Fähigkeiten ausstatten, um effektiv mit AI-Tools zusammenzuarbeiten. Dazu gehört, den Studierenden beizubringen, wie man effektive Eingaben erstellt, die Qualität von AI-generiertem Code bewertet und informierte Entscheidungen trifft, wenn sie AI-Tools in ihre Arbeit integrieren.

Zukünftige Implikationen

Die Ergebnisse dieser Studie haben wichtige Implikationen dafür, wie Softwareengineering in akademischen Kontexten gelehrt wird. Lehrkräfte sollten die Nutzung von LLMs fördern und gleichzeitig die Bedeutung von kritischem Denken und Programmierfähigkeiten betonen. Ein Curriculum zu entwickeln, das AI-Tools zusammen mit traditionellen Programmierpraktiken kombiniert, wird die Studierenden auf eine Zukunft vorbereiten, in der die Zusammenarbeit zwischen Mensch und KI in der Softwarebranche Alltag wird.

Indem wir die Studierenden mit den richtigen Fähigkeiten ausstatten, können wir sicherstellen, dass sie nicht nur in der Lage sind, leistungsstarke AI-Tools zu nutzen, sondern auch ein hohes Mass an Programmierkompetenz und Kreativität in ihrer Arbeit aufrechterhalten. Diese Balance wird entscheidend für erfolgreiche Karrieren in einer zunehmend automatisierten Welt sein.

Zusammenfassend hebt unsere Forschung die Notwendigkeit hervor, sowohl die Vorteile als auch die Einschränkungen von LLMs im Bildungsbereich zu verstehen, und ebnet den Weg für eine durchdachte Integration modernster Technologien in die Lehrpläne des Softwareengineering.

Originalquelle

Titel: An Empirical Study on Usage and Perceptions of LLMs in a Software Engineering Project

Zusammenfassung: Large Language Models (LLMs) represent a leap in artificial intelligence, excelling in tasks using human language(s). Although the main focus of general-purpose LLMs is not code generation, they have shown promising results in the domain. However, the usefulness of LLMs in an academic software engineering project has not been fully explored yet. In this study, we explore the usefulness of LLMs for 214 students working in teams consisting of up to six members. Notably, in the academic course through which this study is conducted, students were encouraged to integrate LLMs into their development tool-chain, in contrast to most other academic courses that explicitly prohibit the use of LLMs. In this paper, we analyze the AI-generated code, prompts used for code generation, and the human intervention levels to integrate the code into the code base. We also conduct a perception study to gain insights into the perceived usefulness, influencing factors, and future outlook of LLM from a computer science student's perspective. Our findings suggest that LLMs can play a crucial role in the early stages of software development, especially in generating foundational code structures, and helping with syntax and error debugging. These insights provide us with a framework on how to effectively utilize LLMs as a tool to enhance the productivity of software engineering students, and highlight the necessity of shifting the educational focus toward preparing students for successful human-AI collaboration.

Autoren: Sanka Rasnayaka, Guanlin Wang, Ridwan Shariffdeen, Ganesh Neelakanta Iyer

Letzte Aktualisierung: 2024-01-29 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2401.16186

Quell-PDF: https://arxiv.org/pdf/2401.16186

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Ähnliche Artikel