You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Rapport/include/Metod.tex
+49-53Lines changed: 49 additions & 53 deletions
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@
15
15
\chapter{Genomförande}
16
16
17
17
Projektets genomförande bestod av fyra delar. Den största delen var
18
-
konstruktionen av själva läromaterialet, och där ingick sökande efter fysikaliska
18
+
konstruktionen av själva läromaterialet i vilken det ingick sökande efter fysikaliska
19
19
områden, implementation av domänspecifika språk och skrivande av lärotext. De
20
20
tre andra delarna var publicering av läromaterialet på en hemsida, utvärdering
21
21
av läromaterialet med en testgrupp samt möten med Åke Fäldt, examinator och
@@ -26,7 +26,7 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
26
26
27
27
Läromaterialet består av 5 kapitel som vardera behandlar separata
28
28
områden. Skapandet av varje kapitel skedde därför till största delen fristående
29
-
från andra kapitel. Skapandet av kapitlena bestod i sin tur av tre faser,
29
+
från andra kapitel. Konstruktionen av kapitlena bestod i sin tur av tre faser,
30
30
som såg likadana ut för alla kapitel. Dessa faser var sökande efter område,
31
31
implementation av domänspecifika språk för området samt skrivande av lärotext.
32
32
@@ -50,7 +50,7 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
50
50
implementation och skrivande \textit{alltid} var överlappande medan
51
51
sökande \textit{ofta men inte alltid} var det.}~\label{fig:oversiktB}
52
52
\end{subfigure}
53
-
\caption{Översikt över hur skapandeprocessen av läromaterialet såg ut.
53
+
\caption{Översikt över hur skapandeprocessen för läromaterialet såg ut.
54
54
Processen delas upp utefter två axlar: kapitel och fas. Varje kombination
55
55
är en del som arbetats med och är gråmarkerad.}
56
56
\end{figure}
@@ -62,26 +62,24 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
62
62
kapitel samtidigt. Detta då arbetet med att hitta ett område ofta gav flera
63
63
områden samtidigt. I figuren ser man också att implementationen av domänspecifika
64
64
språk och skrivande av lärotext skedde samtidigt. Eftersom de i resultatet är
65
-
sammanvävda var det också högst naturligt att processerna med att skapa dem
66
-
även de var sammanvävda.
65
+
sammanvävda var det också högst naturligt att även processerna med att skapa dem var sammanvävda.
67
66
68
67
De tre följande avsnitten beskriver i detalj hur de tre faserna, sökande,
69
-
implementation och skrivande, såg ut. Det är viktigt att minnas att det, som
68
+
implementation och skrivande, såg ut. Det är värt att minnas att det, som
70
69
nämndes ovan, fanns överlapp mellan både faserna och kapitlena.
71
70
72
71
\subsection{Sökande efter områden att behandla}\label{sec:valet}
73
72
74
73
Ett domänspecifikt språk modellerar ett specifikt och avgränsat område. Därför
75
74
var det naturligt att söka och tänka i termer av avgränsade områden inom
76
75
fysiken. För att rent praktiskt hitta områden att behandla kontaktades Åke
77
-
Fäldt, examinator för Fysik för ingenjörer~\cite{tif085} och kursens bok (University
78
-
Physics~\cite{UP}) och övrigt material studerades.
76
+
Fäldt, examinator för Fysik för ingenjörer~\cite{tif085}. Dessutom studerades kursens bok (University
77
+
Physics~\cite{UP}) och dess övriga material.
79
78
80
79
Denna sökandeprocess innefattade inte bara att \textit{hitta} fysikaliska
81
80
områden utan även \textit{organisera} dem i relation till varandra. Som framgår
82
-
senare är till exempel vissa områden baserade på andra. Denna organisering
83
-
var viktig för att kunna implementera de domänspecifika språken på bästa sätt
84
-
och undvika överlappande implementationer.
81
+
senare är vissa områden baserade på andra. Denna organisering
82
+
var viktig för att kunna implementera de domänspecifika språken på bästa sätt utan överlappningar och presentera dem i en pedagogisk ordning.
85
83
86
84
\subsubsection*{Kontakt med fysikläraren}
87
85
\label{sec:kontakt_faldt}
@@ -90,24 +88,23 @@ \subsubsection*{Kontakt med fysikläraren}
90
88
svårt för. Detta för att i enlighet med projektets mål börja med de, för
91
89
studenterna, problematiska områdena. Enligt Fäldt är ett allmänt problem att
92
90
egna mentala modeller för problem är felaktiga eftersom studenter ofta tar
93
-
genvägar som inte bygger på saker de är säkra gäller. En annan erfarenhet
94
-
från honom är att så länge första raden i en uppgiftslösning är rätt, är
91
+
genvägar som inte bygger på saker de är säkra stämmer. En annan erfarenhet
92
+
från honom är att så länge den första raden i en uppgiftslösning är rätt, är
95
93
resten också rätt. Med andra ord, har studenten väl identifierat vilken typ av
96
94
problem det rör sig om brukar det inte vara några svårigheter att lösa
97
95
uppgiften.
98
96
99
97
Med hjälp av insikterna från Fäldt drogs två slutsatser. Den första slutsatsen
100
-
var att matematisk analys var ett område värt att behandla i detalj. Den andra
101
-
slutsatsen var att genom att ge struktur till olika typer av problem skulle det
102
-
förhoppningsvis kunna underlätta för studenter att lära sig identifiera vilken
98
+
var att matematisk analys var ett område värt att behandla i detalj. Den andra var att genom att ge struktur till olika typer av problem kan det
99
+
förhoppningsvis underlätta för studenter att lära sig identifiera vilken
103
100
typ av uppgift de handskas med.
104
101
105
102
\subsubsection*{Studerande av kursbok och kursmaterial}
106
103
107
104
Efter kontakten med Fäldt kunde ett sökande efter konkreta områden genomföras.
108
105
Detta gjordes genom att studera kursboken och kursmaterialet tillhörande Fysik
109
106
för ingenjörer. Innehållet som hittades delades upp i avgränsade områden för att
110
-
de skulle bli lämpade till varsitt domänspecifikt språk. Av speciellt intresse
107
+
de skulle bli lämpade för varsitt domänspecifikt språk. Av speciellt intresse
111
108
var de kapitel som behandlade mekanik (i enlighet med projektets mål att börja
112
109
med klassisk mekanik), matematisk analys samt de kapitel som använde sig av en
113
110
specifik syntax. Domänspecifik syntax var av intresse att finna
@@ -121,7 +118,7 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
121
118
av. Andra områden, till exempel lutande plan, var mindre lämpliga. Förenklat
122
119
sagt var enbart områden med tydliga data och operationer lämpade. Detta
123
120
diskuteras utförligare i avsnitt~\ref{sec:lampligt}. Det framgick också att det
124
-
blev överlapp mellan olika domänspecifika språk trots att områdena var fristående.
121
+
blev ett överlapp mellan olika domänspecifika språk trots att områdena var fristående.
125
122
Ett exempel var det domänspecifika språk för partikelmekanik som till stor del
126
123
liknade de domänspecifika språken för matematisk analys och vektorer.
127
124
@@ -134,15 +131,15 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
134
131
\subsubsection*{Områden som valdes ut}
135
132
136
133
När kunskap inhämtats om olika områden kunde ett urval göras. De områden som
137
-
identifierades som grundläggande och hade en väl lämpad struktur (se
134
+
identifierades som grundläggande och som hade en väl lämpad struktur (se
138
135
avsnitt~\ref{sec:lampligt}) valdes ut. Med detta som grund blev områdena som valdes ut fysikaliska dimensioner, matematisk analys och vektorer. Här följer en kortfattad motivering av valet av dem.
139
136
140
-
\textit{Dimensioner} eftersom det är viktigt för studenter att förstå sig på
137
+
\textit{Dimensioner} eftersom det är viktigt för studenter att förstå
141
138
hur dimensioner påverkas av algebraiska operationer. Det kan också vara
142
-
hjälpsamt att kunna utföra automatisk, datorassisterad dimensionsanalys på
139
+
hjälpsamt att utföra automatisk, datorassisterad dimensionsanalys på
143
140
beräkningar.
144
141
145
-
\textit{Matematisk analys} eftersom alla koncept i klassisk mekanik är
142
+
\textit{Matematisk analys} eftersom alla koncept inom klassisk mekanik är
146
143
relaterade genom matematisk analys. Mer specifikt används
147
144
differenser\footnote{Till exempel används $\Delta(x)$ för att beskriva
148
145
förflyttning i $x$-led} för att beskriva medelrörelse, och infinitesimaler
@@ -159,44 +156,44 @@ \subsubsection*{Områden som valdes ut}
159
156
implementerade grundläggande områdena. De komposita områdena som valdes ut
160
157
blev exempelproblem och partikelmekanik. Här följer en kortfattad motivering av valet av dem.
161
158
162
-
\textit{Exempelproblem} för att visa hur ett par typuppgifter i klassisk mekanik kan modelleras i läromaterialets domänspecifika språk. Närmare bestämt tillämpas de domänspecifika språken på \textit{krafter på lådor} och \textit{gungbräda}.
159
+
\textit{Exempelproblem} för att visa hur ett par typuppgifter i klassisk mekanik kan modelleras i något av läromaterialets domänspecifika språk. Närmare bestämt tillämpas de domänspecifika språken på \textit{krafter på lådor} och \textit{gungbräda}.
163
160
164
-
\textit{Partikelmekanik} för att visa hur de grundläggande områdena kan kombineras till ett domänspecifikt språk som är mer fysik-orienterat än de tre grundläggande.
161
+
\textit{Partikelmekanik} för att visa hur de grundläggande områdena kan kombineras till ett domänspecifikt språk som är mer fysik-orienterat än de tre grundläggande. Dessutom är partikelmekanik fundamental i klassisk mekanik.
165
162
166
163
\subsection{Implementation av domänspecifika språk för områdena}
167
164
168
165
Implementationen av domänspecifika språk var en iterativ process.
169
166
Den inleddes med att
170
-
bygga vidare på den experimentering som gjorts under urvalsfasen Det finns inte bara
167
+
bygga vidare på den experimentering som gjorts under urvalsfasen. Det finns inte bara
171
168
ett rätt sätt att skriva ett domänspecifikt språk på, därav gjordes försök med
172
169
flera olika varianter för att se vad som fungerade bäst. I flera fall har implementationer gjorts om från grunden om
173
-
det visat sig först en bit in att implementationen kunde gjorts bättre eller
170
+
det visat sig att implementationen kunde gjorts bättre eller
174
171
hade brister. Dessutom gjordes, i varierande mån, fördjupande litteraturstudier av domänspecifika
175
-
språk, fysik och Haskell för att kunna implementera på bästa sätt.
172
+
språk, fysik och Haskell för att kunna implementera de domänspecifika språken på bästa sätt.
176
173
177
-
Vad som ansågs vara en bra, eller åtminstone tillräckligt bra, implementation
178
-
var i huvudsak baserat på gruppmedlemmarnas intuition om Haskell och diskussion
174
+
Vad som ansågs vara en bra, eller åtminstone tillräckligt bra implementation
175
+
var i huvudsak baserat på gruppmedlemmarnas erfarenhet av Haskell och diskussion
179
176
inom gruppen och med handledaren. Det viktigaste var att de skulle vara
180
-
lättförståeliga Den programtekniskt elegantaste implementationen användes därför
177
+
lättförståeliga. Den programtekniskt elegantaste implementationen användes därför
181
178
inte alltid, utan den längre versionen föredrogs för att göra
182
179
läromaterialet så lättläst som möjligt. Dock avstods det inte från användning av
183
180
mer avancerade funktioner i Haskell när de var motiverade av materialet som
184
181
beskrevs, men då alltid med en uttömmande förklaring av hur det fungerade och
185
182
utan krav på tidigare kunskap hos läsaren.
186
183
187
184
Efter att ett domänspecifikt språk implementerats skrevs tester till det. Det
188
-
som var intressant att testa var olika lagar som skulle gälla. Eftersom de
185
+
som var intressant att testa var olika lagar som skulle gälla, och eftersom de
189
186
domänspecifika språken i läromaterialet modellerade matematik var det matematiska lagar
190
187
som skulle gälla. Ett exempel var att vektoraddition skulle vara kommutativ.
191
-
Testerna gjordes med hjälp av \textit{QuickCheck}~\cite{QC}. QuickCheck är ett
188
+
Testerna gjordes med hjälp av \textit{QuickCheck}~\cite{QC} vilket är ett
192
189
testningsverktyg i Haskell som genererar många och slumpmässiga testfall. Att
193
190
lagarna gällde för de domänspecifika språken verifierades med andra ord genom
194
-
testa för många exempelvärden. Inga bevis av att lagarna gällde gjordes.
191
+
testa för många exempelvärden. Inga bevis, utan enbart tester, gjordes för att kontrollera att lagarna gällde.
195
192
196
193
\subsubsection*{Implementation av grundläggande områden}
197
194
\label{sec:grund_impl}
198
195
199
-
För att konkret visa hur en implementationen av ett grundläggande område ser ut
196
+
För att konkret visa hur en implementation av ett grundläggande område ser ut
200
197
och motiveringen bakom den visas här ett exempel. Exemplet kommer från
201
198
läromaterialet och implementerar fysikaliska dimensioner i Haskell.
202
199
@@ -222,7 +219,7 @@ \subsubsection*{Implementation av grundläggande områden}
222
219
\end{lstlisting}
223
220
224
221
där \texttt{BD} syntaktiskt representerar de sju basdimensionerna.
225
-
Sammansatta dimensioner kan representeras med följande datatyp
222
+
Sammansatta dimensioner kan representeras med ett syntaxträd med följande datatyp
@@ -331,7 +328,7 @@ \subsubsection*{Implementation av komposita områden}
331
328
kombinerades. Anledningen till detta var att partiklars position, hastighet och
332
329
acceleration modelleras med vektorer, dessutom är de krafter som påverkar
333
330
partiklar även de modellerade som vektorer. Sedan används matematisk analys för att
334
-
göra dessa beräkningar. Därför var det naturligt att modellera partikelmekanik
331
+
göra beräkningar på dem. Därför var det naturligt att modellera partikelmekanik
335
332
med hjälp av vektorer vars komponenter var uttryck som
336
333
implementerades av matematisk analys.
337
334
@@ -355,7 +352,7 @@ \subsection{Skriva lärotext}
355
352
programkoden. Detta var ett naturligt val eftersom det var viktigt att
356
353
programkoden gick att förstå innan kopplingar till matematik och fysik kunde
357
354
förklaras. Det var nämligen lärotext av det slaget som skrevs senare.
358
-
Avslutningsvis skrevs inledning och avslutning till kapitlet.
355
+
Avslutningsvis skrevs en inledning och avslutning till kapitlet.
359
356
360
357
Generellt under skrivningen togs det hänsyn till en specifik underaspekt i ARCS-modellen, nämligen \textit{humor}. Språket i lärotexten har varit lättsamt, vardagligt och talspråkligt för att hålla kvar uppmärksamheten hos läsaren. Det har även ritats roliga bilder för att ge ytterligare humoristiska drag.
361
358
@@ -381,8 +378,8 @@ \subsection{Skriva lärotext}
381
378
ett helt nytt domänspecifikt språk som skulle konstrueras. Hur det fungerade var
382
379
därför viktigt att förklara. I kontrast står lärotexten för de komposita
383
380
områdena, där ett större fokus låg på fysik. För dessa områden visades hur de
384
-
domänspecifika språken var praktiskt användbara och då förklarades fysik, för
385
-
att sedan kunna visa hur den fysiken kunde representeras i de domänspecifika
381
+
domänspecifika språken var praktiskt användbara och då förklarades fysiken, för
382
+
att sedan visa hur den fysiken kunde representeras i de domänspecifika
386
383
språken.
387
384
388
385
Ett exempel på ovanstående är kapitlet kring det komposita området partikelmekanik. Dess implementation var en sammanslagning av området vektorer och
Implementation kan kompileras och testas och ska då visa på att
398
+
Implementationen kan kompileras och testas och ska då visa på att
402
399
implementationerna av de grundläggande områdena är både rigorösa och korrekta.
403
400
Dessutom visar det att det går att använda det material som presenteras tidigare
404
401
till att implementera och lösa mer komplexa problem.
405
402
406
403
\section{Skapande av och publicering på hemsidan}
407
404
408
-
Läromaterialet kompilerades med hjälp av ett bygg-skript och
405
+
Läromaterialet kompilerades med hjälp av ett skript och
409
406
publicerades på en internethemsida. Bygg-skriptet anropar
410
-
Pandoc för att konvertera från källkod och text i Literate
411
-
Haskell-formatet till HTML, redo att visas på en hemsida. Pandoc
407
+
Pandoc för att konvertera från källkod i Literate
408
+
Haskell-format till HTML, redo att visas på en hemsida. Pandoc
412
409
paketerar även med \textit{MathJax} som använder JavaScript för att
413
410
rendera matematiska formler i LaTeX-format på fint och läsbart
414
411
vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
415
412
LaTeX-kod, vilket är mer svårläst, men fortfarande tolkningsbart. Det
416
-
skrevs även CSS-kod manuellt för att modifiera utseendet av
413
+
skrevs även CSS-kod för att modifiera utseendet av
417
414
hemsidan så att den skulle bli prydligare och mer lättläst.
418
415
419
416
Varje källfil betraktades som ett kapitel och publicerades som en
420
-
separat undersida. Med hjälp av ett index beskrivet i bygg-skriptet
417
+
separat undersida. Med hjälp av ett index beskrivet i skriptet
421
418
konstruerades navigationselement mellan kapitel på varje undersida
422
419
och en innehållsförteckning.
423
420
424
-
För publicering lades all data producerad av bygg-skriptet i en ny git-gren (engelska \textit{git branch}) med namnet \texttt{gh-pages}. Att alla grenar synkroniseras
421
+
För publicering lades all data producerad av skriptet i en ny git-gren (engelska \textit{git branch}) med namnet \texttt{gh-pages}. Att alla grenar synkroniseras
425
422
mot GitHub medför att alla filer på \texttt{gh-pages} grenen
426
423
visas som en hemsida med hjälp av \textit{GitHub
427
424
Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
@@ -446,8 +443,8 @@ \section{Utvärdering med testgrupp}
446
443
447
444
För att utvärdera läromaterialet gjordes en kort och informell utvärdering med
448
445
en testgrupp. Testgruppen bestod av tre andra studenter på Chalmers som gick
449
-
tredje året på Datateknik eller Informationsteknik. De hade alla läst Fysik för
450
-
ingenjörer eller motsvarande sedan innan och de hade läst en kurs i Haskell.
446
+
tredje året på Datateknik och Informationsteknik. De hade alla läst Fysik för
447
+
ingenjörer eller motsvarande sedan innan och de hade också läst en kurs i Haskell.
451
448
Däremot hade de inte läst DSLsofMath eller motsvarande. Domänspecifika språk var
452
449
med andra ord nytt för dem.
453
450
@@ -457,11 +454,10 @@ \section{Utvärdering med testgrupp}
457
454
458
455
\section{Möten med fysikläraren}
459
456
460
-
För att få återkoppling på läromaterialet hölls två möten med Åke Fäldt,
461
-
föreläsare och examinator för Fysik för ingenjörer. Ett möte hölls relativt
457
+
För att få återkoppling på läromaterialet hölls två möten med Åke Fäldt. Ett möte hölls relativt
462
458
tidigt i projektet, 2018-03-02, och ett andra relativt sent, 2018-04-11.
463
459
Under mötena presenterades läromaterialet i sig och tanken med det, nämligen att
464
-
presentera fysik på ur ett annat perspektiv, ett
460
+
presentera fysik ur ett annat perspektiv, ett
465
461
programmeringsperspektiv. Det diskuterades också svåra områden i Fysik för
466
462
ingenjörer (se avsnitt \ref{sec:kontakt_faldt}), vad läromaterialet skulle kunna bidra med för kunskaper till
467
-
studenter samt dess eventuella roll i relation till fysikkursen i övrigt.
463
+
studenter samt dess eventuella roll i relation till fysikkursen.
0 commit comments