Die wachsende Bedeutung der Code-Qualität in der Bildung
Dieses Papier betrachtet Trends und Forschungen zur Code-Qualität in der Informatikbildung.
― 8 min Lesedauer
Inhaltsverzeichnis
In der Computerausbildung wird immer mehr auf Codequalität geachtet. Traditionell lag der Fokus hauptsächlich darauf, dass der Code korrekt funktioniert und die beabsichtigten Aufgaben erfüllt. Aber hochwertiger Code ist super wichtig, weil er Software im Laufe der Zeit einfacher wartbar und anpassbar macht. Dieses gesteigerte Interesse an Codequalität ist entscheidend für Schüler, die Programmieren lernen.
Diese Arbeit untersucht die Forschung, die sich mit Codequalität in Bildungseinrichtungen beschäftigt. Ziel ist es, einen Überblick über die durchgeführten Studien zu geben, einschliesslich ihrer Hauptthemen, verwendeten Forschungsmethoden und der eingesetzten Programmiersprachen. Durch die Analyse von 195 Veröffentlichungen aus verschiedenen Datenbanken von 1976 bis 2022 hebt diese Arbeit Trends, Entwicklungen und zukünftige Forschungschancen im Bereich der Codequalität in der Computerausbildung hervor.
Die Bedeutung der Codequalität
Codequalität bezieht sich auf die Merkmale des Codes, die dessen Lesbarkeit, Verständlichkeit und Wartbarkeit beeinflussen. Wenn der Code von guter Qualität ist, ist es für andere (und sogar den ursprünglichen Autor) einfacher, ihn zu lesen und zu ändern. Wichtige Aspekte der Codequalität sind:
- Benennung: Klare und beschreibende Namen für Variablen, Funktionen und Klassen verwenden.
- Dokumentation: Kommentare und Erklärungen bereitstellen, die klären, wie der Code funktioniert.
- Layout: Code so organisieren, dass er visuell ansprechend und leicht nachvollziehbar ist.
- Kontrollfluss: Logische Strukturierung des Codes, um das Verständnis zu erleichtern.
- Struktur: Beste Praktiken bei der Organisation des Codes in Funktionen und Klassen befolgen.
Hochwertiger Code wird oft zusammen mit Themen der Softwaretechnik wie Tests, Code-Reviews und Qualitätssicherung diskutiert. Tools, die Code automatisch bewerten, können Feedback zur Qualität geben, nicht nur zur Richtigkeit. Trotz ihrer Bedeutung haben viele Lehrende die Codequalität vernachlässigt, aufgrund von Faktoren wie begrenzter Zeit, mangelnder Vertrautheit und der Ansicht, sie sei weniger wichtig im Vergleich zur Funktionalität.
In letzter Zeit gab es ein deutliches Interesse an Codequalität, was den Bedarf an strukturierterer Forschung in diesem Bereich erhöht hat.
Ziele der Studie
Das Ziel dieser Studie ist es, die Forschungslandschaft zur Codequalität in der Bildung zu skizzieren. Durch die Katalogisierung bestehender Veröffentlichungen wird aufgezeigt, wo Forschung betrieben wurde und welche Lücken weiter untersucht werden müssen. Diese Arbeit trägt zum Feld bei durch:
- Bereitstellung einer umfassenden Liste relevanter Arbeiten.
- Angebot eines breiten Überblicks über die behandelten Forschungsthemen.
- Hervorhebung von Trends und Potenzial für neue Forschungsgelegenheiten.
Die Begriffe und Definitionen zur Codequalität sind vielfältig, daher ist es wichtig zu klären, was in diesem Kontext gemeint ist.
Definition der Codequalität
Während Softwarequalität ein breiter Begriff ist, ist Codequalität ein spezifischerer Aspekt. Der ISO/IEC 25010 Standard umreisst mehrere Qualitätsmerkmale, einschliesslich:
- Funktionale Eignung: Wie gut die Software ihren vorgesehenen Zweck erfüllt.
- Benutzerfreundlichkeit: Wie einfach es für die Nutzer ist, die Software zu verwenden.
- Zuverlässigkeit: Die Fähigkeit der Software, über die Zeit hinweg konsistent zu funktionieren.
- Wartbarkeit: Wie einfach die Software aktualisiert oder verändert werden kann.
Hochwertiger Code spielt eine entscheidende Rolle für die Wartbarkeit. Für diese Studie wird Codequalität als die Merkmale gesehen, die im Quellcode sichtbar sind, nachdem er ursprünglich geschrieben wurde. Es konzentriert sich auf statische Eigenschaften-diese Aspekte, die ohne Ausführung des Codes überprüft werden können-statt auf dynamische Eigenschaften wie Richtigkeit oder Leistung.
Um die Codequalität zu bewerten, werden Kategorien aus einem Rubrik verwendet, die entwickelt wurde, um den Code von Studenten zu bewerten. Diese Kategorien umfassen Dokumentation, Layout, Benennungsstandards, Ablauf, Ausdrücke, Idiome, Zerlegung und Modularisierung. Probleme in diesen Bereichen werden oft als Code Smells bezeichnet, die auf Designfehler in ansonsten funktional korrektem Code hinweisen können.
Die Verbesserung der Codequalität kann durch Refactoring erreicht werden, was schrittweise Änderungen zur Verbesserung des Codes ohne Veränderung der Gesamtfunktionalität beinhaltet. Dazu gehören Aufgaben wie das Extrahieren von Methoden oder das Einführen klarerer Variablennamen.
Verwandte Arbeiten
Systematische Literaturübersichten zu Themen der Computerausbildung werden zunehmend genutzt, um verschiedene Interessensgebiete zu untersuchen. Eine systematische Mapping-Studie zielt darauf ab, einen umfassenden Überblick über ein spezifisches Forschungsgebiet zu geben, indem sie dessen Veröffentlichungen kategorisiert. Während solche Studien in der Medizin üblich sind, sind sie in der Softwaretechnik und Computerausbildung weniger verbreitet.
Eine bemerkenswerte Studie untersuchte Softwaretests in Einführungskursen für Programmierung, ähnlich dem Fokus dieser Forschung. Andere Mapping-Studien und Literaturübersichten haben verwandte Themen untersucht, aber speziell die Codequalität in Bildungskontexten nicht angesprochen.
Diese Arbeit folgt einem strukturierten Ansatz zur Durchführung systematischer Mapping-Studien in der Softwaretechnik und verwendet eine andere Klassifizierungsmethode für die bewerteten Studien.
Forschungsumfang und Fragen
Der Umfang dieser Studie ist es, Bildungspraktiken und Unterstützung in Bezug auf Codequalität zu untersuchen, einschliesslich Unterricht, Analyse, Bewertung, Tool-Support und verwandte Aufgaben.
Die folgenden Forschungsfragen wurden definiert:
- Wie ist die Verteilung der Forschung zur Codequalität in Bildungszusammenhängen?
- Welche Themen werden hauptsächlich in der Literatur behandelt?
- Welche Methoden werden in den Studien verwendet?
- Auf welche Programmiersprachen konzentriert sich die Forschung?
- Welche Trends können über die Zeit beobachtet werden?
- Welche verwandten Bereiche könnten weitere Einblicke in die Codequalitätbildung bieten?
Suchprozess
Die Suche nach relevanten Veröffentlichungen beinhaltete die Definition von Kriterien für Inclusion und Exclusion. Zunächst wurde eine Basisliste von 40 Arbeiten erstellt, die auf Relevanz überprüft wurde.
Um mehr Arbeiten zu sammeln, wurde eine Schlüsselwörteranalyse durchgeführt, bei der zu breite Begriffe und sehr spezifische entfernt wurden. Es wurden mehrere Datenbanken genutzt, darunter Scopus, ACM und IEEE, um eine umfangreiche Sammlung von Veröffentlichungen sicherzustellen.
Die endgültige Suchanfrage umfasste Begriffe, die mit der Codequalität und Bildung in Verbindung stehen. Die Suche wurde auf Titel, Abstracts und Schlüsselwörter angewendet, was zur Identifizierung von 168 zusätzlichen Arbeiten führte.
Ergebnisse und Analyse
Die durch diese Studie identifizierten Arbeiten wurden analysiert, um sie nach Jahr, Veranstaltungsort, Thema, Methode und Sprache zu kategorisieren. Die erste Arbeit zu diesem Thema wurde 1976 veröffentlicht, aber das Interesse an Codequalität ist in den letzten zehn Jahren erheblich gewachsen.
Die Analyse offenbarte mehrere wichtige Merkmale:
Veröffentlichungsorte
Die meisten Arbeiten wurden in Konferenzberichten und Zeitschriften veröffentlicht, die sich mit Computerausbildung beschäftigen. Allerdings tauchten Veröffentlichungen auch in einer Vielzahl anderer Bereiche wie Mensch-Computer-Interaktion und Softwaretechnik auf.
Forschungsthemen
Zwei Hauptforschungsthemen wurden identifiziert: Programmqualität und Tools. Ein erheblicher Teil der Forschung konzentrierte sich auf die Entwicklung von Tools, die Studenten helfen sollen, die Codequalität zu verbessern, wobei viele Studien die Funktionalität dieser Tools in Bildungskontexten bewerteten.
Forschungsmethoden
Die in den Studien verwendeten Methoden variieren, aber viele folgten quantitativen Ansätzen, oft unter Verwendung von Umfragen oder automatisierten Bewertungswerkzeugen. Qualitative Forschung war ebenfalls vorhanden, insbesondere in Studien, die die Wahrnehmungen der Codequalität unter Studenten und Lehrenden untersuchten.
Zielgerichtete Programmiersprachen
Java und Python waren die am häufigsten untersuchten Programmiersprachen, was mit ihrer Beliebtheit in Lehrumgebungen übereinstimmt. Eine bemerkenswerte Anzahl von Studien konzentrierte sich auch auf blockbasierte Programmiersprachen wie Scratch.
Trends über die Zeit
Eine Analyse der Daten zeigt ein wachsendes Interesse an der Forschung zur Codequalität in den letzten Jahren. Die zunehmende Anzahl an Veröffentlichungen spiegelt die Bedeutung dieses Themas im Kontext der Computerausbildung wider. Der Trend deutet darauf hin, dass Diskussionen über Codequalität stärker in die Lehrpläne integriert werden.
Verwandte Bereiche für weitere Forschung
Die Definition von Codequalität ist vielschichtig, was zu Verbindungen mit verschiedenen anderen Themen in der Computerausbildung führt, einschliesslich:
- Software-Design-Ausbildung
- Ausbildung zu Designmustern
- Computational Thinking
- Automatisierte Bewertung
Jedes dieser Felder steht in einzigartiger Weise zur Codequalität in Beziehung und bietet zusätzliche Möglichkeiten für zukünftige Forschung.
Fazit
Die Studie zeigt, dass die Codequalität ein immer wichtigeres Thema in der Computerausbildung wird. Eine zunehmende Anzahl von Forschungspapieren deutet auf einen Wandel hin, der die Bedeutung lehrt, wie man hochwertigen Code produziert. Dieses Gebiet bietet viele Chancen für weitere Erkundungen und Forschungen, um das Lernen der Schüler zu verbessern und die Programmierpraktiken zu optimieren.
Durch systematische Analyse hat dieses Papier bestehende Arbeiten kategorisiert und Trends sowie Lücken in der Literatur identifiziert. Die Schliessung dieser Lücken könnte zu besseren Bildungspraktiken und Ressourcen führen, damit die Schüler die Fähigkeiten entwickeln, wartbaren und verständlichen Code zu schreiben. Zukünftige Arbeiten sollten den Schwerpunkt darauf legen, die Codequalität stärker in die Lehrpläne der Informatik zu integrieren und die Wahrnehmungen und Verhaltensweisen der Schüler in Bezug auf Codequalität zu erforschen.
Titel: A Systematic Mapping Study of Code Quality in Education -- with Complete Bibliography
Zusammenfassung: While functionality and correctness of code has traditionally been the main focus of computing educators, quality aspects of code are getting increasingly more attention. High-quality code contributes to the maintainability of software systems, and should therefore be a central aspect of computing education. We have conducted a systematic mapping study to give a broad overview of the research conducted in the field of code quality in an educational context. The study investigates paper characteristics, topics, research methods, and the targeted programming languages. We found 195 publications (1976-2022) on the topic in multiple databases, which we systematically coded to answer the research questions. This paper reports on the results and identifies developments, trends, and new opportunities for research in the field of code quality in computing education.
Autoren: Hieke Keuning, Johan Jeuring, Bastiaan Heeren
Letzte Aktualisierung: 2023-04-26 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2304.13451
Quell-PDF: https://arxiv.org/pdf/2304.13451
Lizenz: https://creativecommons.org/licenses/by-nc-sa/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.