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: README.md
+36-7Lines changed: 36 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,13 +8,42 @@ Medlemmar: Oskar, Erik, ~~Daniel~~, Björn, Johan
8
8
9
9
10
10
## Deadlines
11
-
* 9/2 : Inlämning av Planeringsrapport.
12
-
* 27/2 : Halvtidsredovisnin av projektgrupperna ( Muntlig )
13
-
* 2/3 : Egen utvärdering på blankett till handledaren.
14
-
* 23/3 : Rapportspråk, vi kollar 24/3 och påminner. Kompletering möjlig fram till 27/4.
15
-
* 8/5 : Inlämning av poster för tryckning
16
-
* 15/5 : Utställning enligt anvisningar.* 16/5 : Engelsk Titel, Gäller rapporter på Svenska, kompletering möjlig fram till 9/6, vi kollar 24/5 och påminner
17
-
* 21/5 : Deadline inlämning av Opposition, skriftlig elektronisk
18
11
* 24/5 (10:35) : Muntliga slutredovisning och opposition & Avtal om publicering, lämnas in i samband med presentationen
19
12
* 25/5 : Egen utvärdering på blankett till handledaren.
20
13
* 1/6 : Deadline inlämning av slutrapport, elektronisk form, med införande av opponenternas kommentarer.
14
+
15
+
## Att göra på rapport
16
+
17
+
- Lägg till tekniska detaljer i resultat
18
+
- Vektorer
19
+
- Analys
20
+
- Partikelmekanik
21
+
- Exempelproblem
22
+
- Språkdetaljer
23
+
- Genomförande
24
+
- Diskussion
25
+
- Resultat
26
+
- Korta ner
27
+
- Genomförande
28
+
- Diskussion
29
+
- Relaterade arbeten i diskussion
30
+
-~Skriva om förklaring av generellt programmeringsspråk~
31
+
- Referenssystem
32
+
-~Kod i figurer~
33
+
- Kolla över användning av syntaxträd
34
+
- Kommentarer i teorikapitel
35
+
- Röd tråd lärandeteorier ~och sista stycket~
36
+
- Framåtpekare i genomförande
37
+
- Skapnde hemsida, kanske ta bort
38
+
- Hade testgruppen klarat kursen?
39
+
-~Utveckla att inte kan fuska~
40
+
- Figur som hamnat fel
41
+
- Utveckla hur gick för DSL2016
42
+
43
+
## Att prata om
44
+
45
+
- Utvärdering i met+res+disk (som nu), bara disk eller inte alls?
\href{https://xkcd.com}{xkcd.com}) \href{https://creativecommons.org/licenses/by-nc/2.5/}{CC BY-NC}. Bilden beskriver hur fysik är en tillämpning av matematik. Det är i själva verket
145
145
så att en kedja av områden kan betraktas som tillämpningar av
Copy file name to clipboardExpand all lines: Rapport/include/Metod.tex
+35-82Lines changed: 35 additions & 82 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 i vilken det ingick sökande efter fysikaliska
18
+
konstruktionen av själva läromaterialet i vilken det ingick sökande efter lämpliga
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
@@ -24,54 +24,14 @@ \chapter{Genomförande}
24
24
25
25
\section{Konstruktion av läromaterialet}\label{sec:konstruktion}
26
26
27
-
Läromaterialet består av fem kapitel som vardera behandlar separata
28
-
områden. Skapandet av varje kapitel skedde därför till största delen fristående
29
-
från andra kapitel. Konstruktionen av kapitlen bestod i sin tur av tre faser,
30
-
som såg likadana ut för alla kapitel. Dessa faser var sökande efter område,
31
-
implementation av domänspecifika språk för området samt skrivande av lärotext. Denna skapandeprocess kan delas upp i en graf med två axlar: en utefter kapitel
32
-
och en utefter fas. Det här illustreras i figur~\ref{fig:oversiktA}. Figuren
33
-
visar att varje kombination av kapitel och fas är en del i projektet som
\caption{Delarna visas med gränsöverskridande överlapp. Notera att
48
-
implementation och skrivande \textit{alltid} var överlappande medan
49
-
sökande \textit{ofta men inte alltid} var det.}~\label{fig:oversiktB}
50
-
\end{subfigure}
51
-
\caption{Översikt över hur skapandeprocessen för läromaterialet såg ut.
52
-
Processen delas upp utefter två axlar: kapitel och fas. Varje kombination
53
-
är en del som arbetats med och är gråmarkerad.}
54
-
\end{figure}
55
-
56
-
Även om detta sätt att dela upp processen är översiktligt är det inte helt
57
-
verklighetstroget. I praktiken fanns det överlapp mellan de olika delarna, både
58
-
med avseende på kapitel och fas. Det här illustereras i
59
-
figur~\ref{fig:oversiktB}. Där ses att sökandet av områden skedde för flera
60
-
kapitel samtidigt. Detta då arbetet med att hitta ett område ofta gav flera
61
-
områden samtidigt. I figuren syns också att implementationen av domänspecifika
62
-
språk och skrivande av lärotext skedde samtidigt. Eftersom de i resultatet är
63
-
sammanvävda var det också högst naturligt att även processerna med att skapa dem var sammanvävda.
64
-
65
-
De tre följande avsnitten beskriver i detalj hur de tre faserna, sökande,
66
-
implementation och skrivande, såg ut. Det är värt att minnas att det, som
67
-
nämndes ovan, fanns överlapp mellan både faserna och kapitlen.
27
+
Läromaterialet består av fem kapitel som vardera behandlar separata områden. Skapandet av dem skedde fristående men de innehöll alla de tre faserna sökande, implementation och skrivande, som såg likartade ut för dem alla. Det fanns dock visst överlapp mellan de fristående processerna. Sökandet gav ofta flera områden samtidigt och implementation och skrivande genomfördes ofta parallellt. För att tydliggöra processerna är de dock beskrivna separat.
68
28
69
29
\subsection{Sökande efter områden att behandla}\label{sec:valet}
70
30
71
31
Ett domänspecifikt språk modellerar ett specifikt och avgränsat område. Därför
72
32
var det naturligt att söka och tänka i termer av avgränsade områden inom
73
33
fysiken. För att rent praktiskt hitta områden att behandla kontaktades Åke
74
-
Fäldt, examinator för Fysik för ingenjörer~\cite{tif085}. Dessutom studerades kursens bok (University
34
+
Fäldt. Dessutom studerades kursens bok (University
75
35
Physics~\cite{UP}) och dess övriga material.
76
36
77
37
Denna sökandeprocess innefattade inte bara att \textit{hitta} fysikaliska
@@ -115,9 +75,7 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
115
75
varje område för att se huruvida det lämpade sig att göra ett domänspecifikt
116
76
språk av och hur det skulle kunna se ut. Experimenten visade att enbart vissa
117
77
områden, till exempel vektorer, fungerade bra att göra ett domänspecifikt språk
118
-
av. Andra områden, till exempel lutande plan, var mindre lämpliga. Förenklat
119
-
sagt var enbart områden med tydliga data och operationer lämpade. Detta
120
-
diskuteras utförligare i avsnitt~\ref{sec:lampligt}. Det framgick också att det
78
+
av. Andra områden, till exempel lutande plan, var mindre lämpliga. Vad som skiljer dem åt är att vektorer har tydliga data och operationer (till exempel skalärprodukt) medan lutande plan har egenskaper (till exempel friktionskoefficienter och vinklar) som är relaterade till varandra med ekvationer. Det här diskuteras utförligare i avsnitt~\ref{sec:lampligt}. Det framgick också att det
121
79
blev ett överlapp mellan olika domänspecifika språk trots att områdena var fristående.
122
80
Ett exempel var det domänspecifika språk för partikelmekanik som till stor del
123
81
liknade de domänspecifika språken för matematisk analys och vektorer.
@@ -131,8 +89,7 @@ \subsubsection*{Studerande av kursbok och kursmaterial}
131
89
\subsubsection*{Områden som valdes ut}
132
90
133
91
När kunskap inhämtats om olika områden kunde ett urval göras. De områden som
134
-
identifierades som grundläggande och som hade en väl lämpad struktur (se
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.
92
+
identifierades som grundläggande och som var lämpade (enligt avsnittet innan) 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.
136
93
137
94
\textit{Dimensioner} eftersom det är viktigt för studenter att förstå
138
95
hur dimensioner påverkas av algebraiska operationer. Det kan också vara
@@ -182,9 +139,7 @@ \subsection{Implementation av domänspecifika språk för områdena}
182
139
kunskap hos läsaren.
183
140
184
141
Efter att ett domänspecifikt språk implementerats skrevs tester till det. Det
185
-
som var intressant att testa var olika lagar som skulle gälla, och eftersom de
186
-
domänspecifika språken i läromaterialet modellerade matematik var det matematiska lagar
187
-
som skulle gälla. Ett exempel var att vektoraddition skulle vara kommutativ.
142
+
som var intressant att testa var huruvida domänens lagar gällde i det domänspecifika språket som modellerade domänen. Till exempel var det för det domänspecifika språket om vektorer aktuellt att testa om vektoraddition var kommutativ, och så vidare.
188
143
Testerna gjordes med hjälp av \textit{QuickCheck}~\cite{QC} vilket är ett
189
144
testningsverktyg i Haskell som genererar många och slumpmässiga testfall. Att
190
145
lagarna gällde för de domänspecifika språken verifierades med andra ord genom
mellan programkod och förklaringar. För att läromaterialet skulle vara
211
166
lättförståeligt var det också viktigt att presentera materialet i den ordning
212
167
som en mänsklig läsare, och inte datorn, tyckte var enklast. Avsnitt \ref{sec:lhs} beskriver hur litterat programmering fungerar i allmänhet och ger
213
-
en bra bild hur det såg ut även i detta projekt.
168
+
en bra bild av hur det såg ut även i detta projekt.
214
169
215
170
Under skrivandet av lärotexten lades övningar till. Dessa skapades genom att
216
171
modifiera befintlig lärotext, istället för att förklara allting uppmanar den
217
172
läsaren då och då att göra nästa steg i implementationen själv. När ett kapitel
218
173
var avslutat lades dessutom extra övningar till i slutet, dessa övningar var
219
174
ofta vidareutvecklingar av det domänspecifika språk som redan implementerats.
220
175
221
-
Skrivandet av lärotexten till de grundläggande och komposita områden var
176
+
Skrivandet av lärotexten till de grundläggande och komposita områdena var
222
177
övergripande likadana. Skillnaden låg i balansen mellan Haskell och fysik. För
223
178
de grundläggande områdena fokuserade lärotexten mer på Haskell eftersom det var
224
179
ett helt nytt domänspecifikt språk som skulle konstrueras. Hur det fungerade var
225
-
därför viktigt att förklara. I kontrast står lärotexten för de komposita
226
-
områdena, där ett större fokus låg på fysik. För dessa områden visades hur de
180
+
därför viktigt att förklara. För de komposita områdena låg däremot ett större fokus på fysik. För dessa områden visades hur de
227
181
domänspecifika språken var praktiskt användbara och då förklarades fysiken, för
228
182
att sedan visa hur den fysiken kunde representeras i de domänspecifika
229
183
språken.
230
184
231
185
Ett exempel på ovanstående är kapitlet kring det komposita området partikelmekanik. Dess implementation var en sammanslagning av området vektorer och
232
-
matematisk analys, där istället för att visa och förklara hur områdena kunde
233
-
implementeras i Haskell visade hur det direkt gick att översätta de
186
+
matematisk analys där fokus flyttats till att visa hur det direkt gick att översätta de
234
187
fysikaliska formlerna som beskriver partiklars rörelse och energier till
235
-
Haskell-kod med hjälp av de grundläggande områdena. Beskrivning av relationen arbete-energi (engelska \textit{Work-Energy theorem}) gick då till som i figur \ref{fig:komposit-ex}.
188
+
Haskell-kod med hjälp av de grundläggande områdena. Beskrivningen av relationen arbete-energi (engelska \textit{Work-Energy theorem}) visas i figur \ref{fig:komposit-ex}.
Det visar dessutom att det går att använda materialet som presenteras tidigare
247
200
till att implementera och lösa mer komplexa problem.
248
201
249
-
\section{Skapande av och publicering på hemsidan}
250
-
251
-
Läromaterialet kompilerades med hjälp av ett skript och
252
-
publicerades på en hemsida. Skriptet anropar
253
-
Pandoc för att konvertera från källkod i Literate
254
-
Haskell-format till HTML, redo att visas på en hemsida. Pandoc
255
-
paketerar även med \textit{MathJax} som använder JavaScript för att
256
-
rendera matematiska formler i LaTeX-format på fint och läsbart
257
-
vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
258
-
LaTeX-kod, vilket är mer svårläst, men fortfarande tolkningsbart. Det
259
-
skrevs även CSS-kod för att modifiera utseendet av
260
-
hemsidan för att den skulle bli prydligare och mer lättläst.
261
-
262
-
Varje källfil betraktades som ett kapitel och publicerades som en
263
-
separat undersida. Med hjälp av ett index beskrivet i skriptet
264
-
konstruerades navigationselement mellan kapitel på varje undersida
265
-
och en innehållsförteckning.
266
-
267
-
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
268
-
mot GitHub medför att alla filer på \texttt{gh-pages} grenen
269
-
visas som en hemsida med hjälp av \textit{GitHub
270
-
Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
271
-
utan krävde en manuell synkronisering vid varje önskad uppdatering av
272
-
hemsidan.
202
+
%\section{Skapande av och publicering på hemsidan}
203
+
%
204
+
%Läromaterialet kompilerades med hjälp av ett skript och
205
+
%publicerades på en hemsida. Skriptet anropar
206
+
%Pandoc för att konvertera från källkod i Literate
207
+
%Haskell-format till HTML, redo att visas på en hemsida. Pandoc
208
+
%paketerar även med \textit{MathJax} som använder JavaScript för att
209
+
%rendera matematiska formler i LaTeX-format på fint och läsbart
210
+
%vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
211
+
%LaTeX-kod, vilket är mer svårläst, men fortfarande tolkningsbart. Det
212
+
%skrevs även CSS-kod för att modifiera utseendet av
213
+
%hemsidan för att den skulle bli prydligare och mer lättläst.
214
+
%
215
+
%Varje källfil betraktades som ett kapitel och publicerades som en
216
+
%separat undersida. Med hjälp av ett index beskrivet i skriptet
217
+
%konstruerades navigationselement mellan kapitel på varje undersida
218
+
%och en innehållsförteckning.
219
+
%
220
+
%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
221
+
%mot GitHub medför att alla filer på \texttt{gh-pages} grenen
222
+
%visas som en hemsida med hjälp av \textit{GitHub
223
+
% Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
224
+
%utan krävde en manuell synkronisering vid varje önskad uppdatering av
0 commit comments