Vis enkel innførsel

dc.contributor.authorBerntsen, Erlend
dc.date.accessioned2023-01-27T00:57:23Z
dc.date.available2023-01-27T00:57:23Z
dc.date.issued2022-11-21
dc.date.submitted2023-01-26T23:00:22Z
dc.identifier.urihttps://hdl.handle.net/11250/3046699
dc.description.abstractProgramming assignments have become the prevalent method for evaluating programming skills and knowledge of students in computer science courses. Typically, a programming assignment is composed of several independent artefacts, such as the solution code, start code, and assignment description. These artefacts are often created in isolation from each other, but contain a redundancy of information and code between them. Maintaining consistency between the artefacts is a tedious and error-prone task, due to the extensive manual labor required to reflect a change in all the required locations. The work in this thesis has resulted in a new framework, FREJA, that aims to guarantee consistency and reduce redundancy between assignment artefacts. The goal is to make the process of developing programming assignment more efficient, and FREJA tries to achieve this by centralizing the development to a single source. Code transformations and code generation techniques are used to produce the assignment artefacts semi-automatically. FREJA is exclusive to assignments for the Java programming language, however, a small prototype has been developed to determine the possibility of a language agnostic version of FREJA. Analysis of several assignments from computer science courses at the university-level has set the basis for the design and implementation of both frameworks. FREJA was tested on several real-life assignments, and evaluated based on how well it could replicate the original structure and content of each assignment, while still maintaining consistency and reducing redundancy. The evaluation of the language agnostic prototype was similar, but put more emphasis on its ability to manage assignments in an arbitrary programming language. The results of these experiments showed that FREJA significantly reduces the number of elements in an assignment that need to be manually maintained to preserve consistency. The framework did also replicate the target assignments well, suggesting it would be beneficial and effective to incorporate FREJA into the assignment development process. The language agnostic prototype handled several programming languages, but not in a manner that was deemed effective or practical, due to its lack of consistency guarantees.
dc.language.isoeng
dc.publisherThe University of Bergen
dc.rightsCopyright the Author. All rights reserved
dc.subjectModel Driven Software Engineering
dc.subjectProgramming Assignment
dc.subjectCode Generation
dc.subjectMetaprogramming
dc.subjectCode Transformation
dc.subjectSingle Source of Truth
dc.subjectMPS
dc.subjectJava
dc.titleFREJA: A framework for effectively creating programming assignments based on code transformations
dc.typeMaster thesis
dc.date.updated2023-01-26T23:00:22Z
dc.rights.holderCopyright the Author. All rights reserved
dc.description.degreeMasteroppgåve i Programutvikling samarbeid med HVL
dc.description.localcodePROG399
dc.description.localcodeMAMN-PROG
dc.subject.nus754199
fs.subjectcodePROG399
fs.unitcode12-12-0


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel