Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Assisted interactive programming: Generating context-aware single-line code from Natural Language
Organization Unit
Authors
  • Alex Wolf
Supervisors
  • Harald Gall
  • Pasquale Salza
  • Marco Edoardo Palma
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2022
Abstract Text The growing significance of programming languages is manifested by the change in educational curricula, which include programming lectures as early as in primary school. The growing significance also demonstrates that the means to acquire programming skills need to improve. We propose an interactive assistant to help novice programmers acquire knowledge through natural language during their programming tasks. Thus, learning by doing with an assistant that supports the user by providing source code in case of difficulties or missing know-how. Our approach is targeting single-line code generation while considering the natural language intent and an extensive context to provide accurate and relevant recommendations in the form of a single-line of source code. This approach is based on the idea that learning programming languages require solving programming exercises in addition to a fast feedback loop. Our approach aims to provide the learner with more opportunities to learn and understand the programming language by assisting them with minimal source code to help them continue with their task. Thus, only generating single-lines of source code instead of providing full functions. We implemented two models intending to contextualize single-line code generation using a custom context workflow. Our evaluations show that our approach is able to learn strong context representations from our custom context workflow as well as an option to improve context compression. In summary, we contribute a trained context-sensible model that takes natural language input, context, and predicts the next line. Using a custom workflow to deal with contexts of variable size, a new Javabased dataset, of over 200’000 samples tailored to our task of generating single-line Java code. Each sample contains context information, natural language intent, and the target line. Allowing us to contextualize our model, and we compare our work with other state-of-the-art approaches.
Zusammenfassung Die wachsende Bedeutung der Informatik manifestiert sich schon in der Grundschule, hier werden einfache Grundkenntnisse der Programmierung bereits ab Primarschule in den Lehrplan integriert. Daraus folgt, dass die Mittel zum Erwerb von Programmierkenntnissen erweitert und altersgemäss adaptiert werden müssen. Wir schlagen einen interaktiven Assistenten vor, der Programmieranfängern hilft, sich während ihrer Programmieraufgaben Wissen durch natürliche Sprache anzueignen. Unser Ansatz verbindet learning by doing mit einem Assistenten, der die anwendende Person bei Schwierigkeiten oder fehlendem Fachwissen unterstützt, sich dieses anzueignen. Unsere Herangehensweise zielt auf die Generierung von einem einzeiligen Code ab und berücksichtigt dabei die mit natürlicher Sprache formulierte Absicht und einen umfangreichen Kontext für die Bereitstellung von akuraten und relevante Empfehlungen in Form einer einzigen Quellcodezeile. Dieser Grundsatz basiert auf der Idee, dass das Erlernen von Programmiersprachen neben einer schnellen Feedbackschleife auch das Lösen von Programmieraufgaben erfordert. Unser Ansatz zielt darauf ab, der lernenden Person mehr Möglichkeiten zum Erlernen und Verstehen der Programmiersprache zu bieten, um ihr bei der Fortsetzung der Aufgabe behilflich zu sein, indem wir minimalen Quellcode bereitstellen. Es werden also nur einzelne Zeilen Quellcode generiert, anstatt gänzliche Funktionen bereitzustellen. Wir haben zwei Modelle mit dem Ziel der kontextualisierten Generierung von einzeiligem Code implementiert, mithilfe eines benutzerdefinierten Kontext-Workflows. Unsere Auswertungen zeigen, dass unser Ansatz in der Lage ist, starke Kontextdarstellungen aus unserem benutzerdefinierten Kontextworkflow zu lernen, sowie eine Option zur Verbesserung der Kontextkomprimierung. Zusammenfassend liefern wir ein trainiertes kontextsensitives Modell, das Kontext und Eingaben in natürlicher Sprache verwendet und die nächste Zeile unter Verwendung eines benutzerdefinierten Workflows vorhersagt. Dieser individuelle Arbeitsablauf (Workflow) ermöglicht es aus Kontext variabler Grössen Informationen zu extrahieren. Zusätzlich haben wir ein neues Java-basiertes dataset erstellt, das auf unseren Ansatz massgeschneidert ist. Das Dataset enthält sowohl die Absicht, die Kontextinformationen als auch den einzeiligen Quellcode. Des Weiteren vergleichen wir unsere Arbeit mit anderen aktuellen Forschungsansätzen.
PDF File Download
Export BibTeX