Show simple item record

dc.contributor.advisorAlsam, Ali
dc.contributor.authorNystuen, Amalie
dc.contributor.authorØdegård, Kristina
dc.date.accessioned2023-07-29T17:20:11Z
dc.date.available2023-07-29T17:20:11Z
dc.date.issued2023
dc.identifierno.ntnu:inspera:146721987:149459097
dc.identifier.urihttps://hdl.handle.net/11250/3081863
dc.description.abstractEvna til å programmere strekk seg utover kunnskap om syntaksen i programmeringsspråk. Nybyrjarar i programmering manglar ofte dei problemløysingsevnene som ekspertar demonstrerer ved å nytte seg av ei rekke skjema og mønster for å effektivt kategorisere problem. Denne skilnaden framhevar viktigheita av å ha gode problemløysingsevner for å oppnå ferdigheiter på ekspertnivå. Modellar for undervisning som illustrerer kvalitetar ved profesjonell kjeldekode, er avgjerande for å rettleie nybyrjarprogrammerarar til å bli ekspertar (Winslow, 1996). I dette forskingsprosjektet har vi analysert og visualisert kvalitetar ved profesjonell Python-kode. Datasettet består av 30 mykje brukte open-source bibliotek, beståande av totalt 11 712 filer. For å lette analysen, vart kvar fil omgjort til nodar ved hjelp av Python-modulen Abstract Syntax Tree (AST). Nodane vart deretter kvantifisert, noko som resulterte i ein 229-dimensjonal vektorrepresentasjon for kvar fil. For å utforske datasettet, brukte vi strukturen frå to lærebøker i programmering. Ved hjelp av desse strukturane, genererte vi informative visualiseringar med pedagogisk verdi. PCA og k-means-klyngeanalyse viser at den profesjonelle kjeldekoden i datasettet kan bli sett på som ei samanhengande eining. Resultata frå dataanalysen indikerer at funksjonar er ein viktig byggestein i profesjonell kode, og at bruken av objektorientert programmering er utstrekt. Vidare er kode strukturert i korte blokker, som funksjonar, løkker og vilkår. Gjennom å innarbeide desse funna i programmeringsundervisning, har vi som intensjon å forbetre kvaliteten på undervisninga og lette studentane sin framgang mot ekspertise.
dc.description.abstractProgramming proficiency extends beyond mere knowledge of programming language syntax. Novice programmers often lack problem-solving skills demonstrated by experts, who employ a variety of schemata and patterns to categorize problems effectively. This distinction emphasizes the importance of mastering problem-solving skills to attain proficiency in programming. Educational models illustrating professional source code characteristics are vital for guiding beginner programmers to become experts (Winslow, 1996). In this research project, we analyzed and visualized the qualities of professional Python code. The dataset comprises 30 widely used open-source libraries with a total of 11,712 source code files. To facilitate the analysis, each file was transformed into nodes using Python's Abstract Syntax Tree (AST). The nodes were then quantified, resulting in a 229-dimensional vector representation for each file. To explore the dataset, we utilized organizational structures from two programming textbooks. Guided by these structures, we generated informative visualizations with educational value. Principal Component Analysis (PCA) and k-means clustering analysis revealed that the professional source code in the dataset can be seen as one cohesive unit. The findings from the data analysis indicate functions as the primary building block of professional code, with widespread use of object-oriented programming. Furthermore, the code is structured into concise blocks like functions, loops, and conditions. By incorporating these insights into programming courses, we aim to contribute to the improvement of instruction quality and facilitate students' progress towards proficiency.
dc.languageeng
dc.publisherNTNU
dc.titleQualities of Professional Python Code
dc.typeBachelor thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record