Skip to content

Commit 1a1e593

Browse files
author
Oskar Lundström
committed
Tillämpade Eriks kommentarer på genomförande
1 parent 7fa3bc1 commit 1a1e593

File tree

1 file changed

+49
-53
lines changed

1 file changed

+49
-53
lines changed

Rapport/include/Metod.tex

Lines changed: 49 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
\chapter{Genomförande}
1616

1717
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
1919
områden, implementation av domänspecifika språk och skrivande av lärotext. De
2020
tre andra delarna var publicering av läromaterialet på en hemsida, utvärdering
2121
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}
2626

2727
Läromaterialet består av 5 kapitel som vardera behandlar separata
2828
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,
3030
som såg likadana ut för alla kapitel. Dessa faser var sökande efter område,
3131
implementation av domänspecifika språk för området samt skrivande av lärotext.
3232

@@ -50,7 +50,7 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
5050
implementation och skrivande \textit{alltid} var överlappande medan
5151
sökande \textit{ofta men inte alltid} var det.}~\label{fig:oversiktB}
5252
\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.
5454
Processen delas upp utefter två axlar: kapitel och fas. Varje kombination
5555
är en del som arbetats med och är gråmarkerad.}
5656
\end{figure}
@@ -62,26 +62,24 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
6262
kapitel samtidigt. Detta då arbetet med att hitta ett område ofta gav flera
6363
områden samtidigt. I figuren ser man också att implementationen av domänspecifika
6464
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.
6766

6867
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
7069
nämndes ovan, fanns överlapp mellan både faserna och kapitlena.
7170

7271
\subsection{Sökande efter områden att behandla}\label{sec:valet}
7372

7473
Ett domänspecifikt språk modellerar ett specifikt och avgränsat område. Därför
7574
var det naturligt att söka och tänka i termer av avgränsade områden inom
7675
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.
7978

8079
Denna sökandeprocess innefattade inte bara att \textit{hitta} fysikaliska
8180
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.
8583

8684
\subsubsection*{Kontakt med fysikläraren}
8785
\label{sec:kontakt_faldt}
@@ -90,24 +88,23 @@ \subsubsection*{Kontakt med fysikläraren}
9088
svårt för. Detta för att i enlighet med projektets mål börja med de, för
9189
studenterna, problematiska områdena. Enligt Fäldt är ett allmänt problem att
9290
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
9593
resten också rätt. Med andra ord, har studenten väl identifierat vilken typ av
9694
problem det rör sig om brukar det inte vara några svårigheter att lösa
9795
uppgiften.
9896

9997
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
103100
typ av uppgift de handskas med.
104101

105102
\subsubsection*{Studerande av kursbok och kursmaterial}
106103

107104
Efter kontakten med Fäldt kunde ett sökande efter konkreta områden genomföras.
108105
Detta gjordes genom att studera kursboken och kursmaterialet tillhörande Fysik
109106
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
111108
var de kapitel som behandlade mekanik (i enlighet med projektets mål att börja
112109
med klassisk mekanik), matematisk analys samt de kapitel som använde sig av en
113110
specifik syntax. Domänspecifik syntax var av intresse att finna
@@ -121,7 +118,7 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
121118
av. Andra områden, till exempel lutande plan, var mindre lämpliga. Förenklat
122119
sagt var enbart områden med tydliga data och operationer lämpade. Detta
123120
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.
125122
Ett exempel var det domänspecifika språk för partikelmekanik som till stor del
126123
liknade de domänspecifika språken för matematisk analys och vektorer.
127124

@@ -134,15 +131,15 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
134131
\subsubsection*{Områden som valdes ut}
135132

136133
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
138135
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.
139136

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å
141138
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å
143140
beräkningar.
144141

145-
\textit{Matematisk analys} eftersom alla koncept i klassisk mekanik är
142+
\textit{Matematisk analys} eftersom alla koncept inom klassisk mekanik är
146143
relaterade genom matematisk analys. Mer specifikt används
147144
differenser\footnote{Till exempel används $\Delta(x)$ för att beskriva
148145
förflyttning i $x$-led} för att beskriva medelrörelse, och infinitesimaler
@@ -159,44 +156,44 @@ \subsubsection*{Områden som valdes ut}
159156
implementerade grundläggande områdena. De komposita områdena som valdes ut
160157
blev exempelproblem och partikelmekanik. Här följer en kortfattad motivering av valet av dem.
161158

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}.
163160

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.
165162

166163
\subsection{Implementation av domänspecifika språk för områdena}
167164

168165
Implementationen av domänspecifika språk var en iterativ process.
169166
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
171168
ett rätt sätt att skriva ett domänspecifikt språk på, därav gjordes försök med
172169
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
174171
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.
176173

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
179176
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
181178
inte alltid, utan den längre versionen föredrogs för att göra
182179
läromaterialet så lättläst som möjligt. Dock avstods det inte från användning av
183180
mer avancerade funktioner i Haskell när de var motiverade av materialet som
184181
beskrevs, men då alltid med en uttömmande förklaring av hur det fungerade och
185182
utan krav på tidigare kunskap hos läsaren.
186183

187184
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
189186
domänspecifika språken i läromaterialet modellerade matematik var det matematiska lagar
190187
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
192189
testningsverktyg i Haskell som genererar många och slumpmässiga testfall. Att
193190
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.
195192

196193
\subsubsection*{Implementation av grundläggande områden}
197194
\label{sec:grund_impl}
198195

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
200197
och motiveringen bakom den visas här ett exempel. Exemplet kommer från
201198
läromaterialet och implementerar fysikaliska dimensioner i Haskell.
202199

@@ -222,7 +219,7 @@ \subsubsection*{Implementation av grundläggande områden}
222219
\end{lstlisting}
223220

224221
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
226223

227224
\begin{lstlisting}[frame=none, belowskip=-0.5\baselineskip, xleftmargin=0.5in]
228225
data Dim = BaseDim BD -- `Löv med grundläggande dimension'
@@ -284,7 +281,7 @@ \subsubsection*{Implementation av grundläggande områden}
284281
\end{lstlisting}
285282

286283
Datatypen har sju fält som vardera anger vilken exponent respektive
287-
basdimension ska ha. Värdet för hastighet är
284+
basdimension har. Hastighet representerat av datatypen är
288285

289286
\begin{lstlisting}[frame=none, belowskip=-0.5\baselineskip, xleftmargin=0.5in]
290287
hastighet = Dim 1 0 -1 0 0 0 0
@@ -331,7 +328,7 @@ \subsubsection*{Implementation av komposita områden}
331328
kombinerades. Anledningen till detta var att partiklars position, hastighet och
332329
acceleration modelleras med vektorer, dessutom är de krafter som påverkar
333330
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
335332
med hjälp av vektorer vars komponenter var uttryck som
336333
implementerades av matematisk analys.
337334

@@ -355,7 +352,7 @@ \subsection{Skriva lärotext}
355352
programkoden. Detta var ett naturligt val eftersom det var viktigt att
356353
programkoden gick att förstå innan kopplingar till matematik och fysik kunde
357354
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.
359356

360357
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.
361358

@@ -381,8 +378,8 @@ \subsection{Skriva lärotext}
381378
ett helt nytt domänspecifikt språk som skulle konstrueras. Hur det fungerade var
382379
därför viktigt att förklara. I kontrast står lärotexten för de komposita
383380
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
386383
språken.
387384

388385
Ett exempel på ovanstående är kapitlet kring det komposita området partikelmekanik. Dess implementation var en sammanslagning av området vektorer och
@@ -398,30 +395,30 @@ \subsection{Skriva lärotext}
398395
\label{fig:komposit-ex}
399396
\end{figure}
400397

401-
Implementation kan kompileras och testas och ska då visa på att
398+
Implementationen kan kompileras och testas och ska då visa på att
402399
implementationerna av de grundläggande områdena är både rigorösa och korrekta.
403400
Dessutom visar det att det går att använda det material som presenteras tidigare
404401
till att implementera och lösa mer komplexa problem.
405402

406403
\section{Skapande av och publicering på hemsidan}
407404

408-
Läromaterialet kompilerades med hjälp av ett bygg-skript och
405+
Läromaterialet kompilerades med hjälp av ett skript och
409406
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
412409
paketerar även med \textit{MathJax} som använder JavaScript för att
413410
rendera matematiska formler i LaTeX-format på fint och läsbart
414411
vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
415412
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
417414
hemsidan så att den skulle bli prydligare och mer lättläst.
418415

419416
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
421418
konstruerades navigationselement mellan kapitel på varje undersida
422419
och en innehållsförteckning.
423420

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
425422
mot GitHub medför att alla filer på \texttt{gh-pages} grenen
426423
visas som en hemsida med hjälp av \textit{GitHub
427424
Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
@@ -446,8 +443,8 @@ \section{Utvärdering med testgrupp}
446443

447444
För att utvärdera läromaterialet gjordes en kort och informell utvärdering med
448445
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.
451448
Däremot hade de inte läst DSLsofMath eller motsvarande. Domänspecifika språk var
452449
med andra ord nytt för dem.
453450

@@ -457,11 +454,10 @@ \section{Utvärdering med testgrupp}
457454

458455
\section{Möten med fysikläraren}
459456

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
462458
tidigt i projektet, 2018-03-02, och ett andra relativt sent, 2018-04-11.
463459
Under mötena presenterades läromaterialet i sig och tanken med det, nämligen att
464-
presentera fysik ur ett annat perspektiv, ett
460+
presentera fysik ur ett annat perspektiv, ett
465461
programmeringsperspektiv. Det diskuterades också svåra områden i Fysik för
466462
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

Comments
 (0)