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
+1-3Lines changed: 1 addition & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -162,9 +162,7 @@ \subsection{Implementation av domänspecifika språk för områdena}
162
162
kunskap hos läsaren.
163
163
164
164
Efter att ett domänspecifikt språk implementerats skrevs tester till det. Det
165
-
som var intressant att testa var olika lagar som skulle gälla, och eftersom de
166
-
domänspecifika språken i läromaterialet modellerade matematik var det matematiska lagar
167
-
som skulle gälla. Ett exempel var att vektoraddition skulle vara kommutativ.
165
+
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.
168
166
Testerna gjordes med hjälp av \textit{QuickCheck}~\cite{QC} vilket är ett
169
167
testningsverktyg i Haskell som genererar många och slumpmässiga testfall. Att
170
168
lagarna gällde för de domänspecifika språken verifierades med andra ord genom
\caption{Ett smakprov av det resulterande läromaterialet. Lärotexten ligger mot den ljusgrå bakgrunden medan det domänspecifika språket ligger mot den mörkgrå. Notera att detta exemplets källkod (i Litterate Haskell) har visats tidigare i avsnitt \ref{sec:lhs}.}~\label{fig:smakprov_laromaterial}
\caption{Exempel på en bild. Bilden visar hur en hund springer och hoppar upp på en stillastående vagn.}
@@ -74,8 +80,7 @@ \subsection{Översikt}
74
80
Typnivåprogrammering\footnote{Vanligtvis manipuleras \textit{värden} när
75
81
programmerering sker i Haskell och andra språk. Typnivåprogrammering är precis som
76
82
vanlig programmering med skillnaden att den sker på typnivån, det vill säga, att
77
-
typer modifieras. Läsaren hänvisas till läromaterialet~\cite{LYAP} för en utförligare
78
-
förklaring.} används för att göra likheterna så tydliga som möjligt.
83
+
typer modifieras. För en utförligare förklaring av typnivåprogrammering, se läromaterialet~\cite{LYAP}.} används för att göra likheterna så tydliga som möjligt.
79
84
80
85
I \textit{matematisk analys} behandlas differentialkalkyl och
81
86
integralkalkyl för en variabel. Först bestäms den semantiska domänen
@@ -116,6 +121,7 @@ \subsection{Översikt}
116
121
117
122
\subsection{Dimensioner}
118
123
\label{sec:grund_impl}
124
+
\label{sec:res_dim}
119
125
120
126
I detta avsnitt visas delar av hur implementationen av dimensioner ser ut i
121
127
läromaterialet. Den fullständiga implementationen innehåller tre delar:
@@ -138,7 +144,7 @@ \subsection{Dimensioner}
138
144
indiviudell exponent till varje basdimension. Datatypen, på värdenivå, som
kurboken och implementerade vektorer i två dimensioner med en typ vars
181
187
konstruktor tog två argument.
182
188
189
+
<<<<<<< HEAD
183
190
\begin{lstlisting}
184
191
test :: Int
185
192
test = 1
186
193
\end{lstlisting}
187
194
195
+
=======
196
+
>>>>>>> 893785db33baa688e623fff51e3fe8a60fe7e728
188
197
\subsection{Exempelproblem}
198
+
\begin{binge}
199
+
Dessa problem är implementationer eller lösningar på fysikuppgifter som har förekommit på tentamen i fysikkursen. De använder de andra modulerna i läromaterialet för att göra beräkningarna (exempelvis dimensionsanalys eller vektoroperationer). Av exempelproblemen finns en gungbräda och en låda på ett lutande plan. Då källkoden för dessa problem endast är menade att lösa den specifika uppgiften, och inte alla varianter på gungbrädor eller lådor på lutande plan, så kan de inte kallas för domänspecifika språk, utan är istället implementationer som använder våra domänspecifika språk.
200
+
201
+
Exemplet med gungbrädan har två massor på gungbräda som befinner sig i jämvikt. Uppgiften är att finna en okänd sträcka mellan en av vikterna och balanspunkten. Exemplet använder dimensionsanalys för att representera hävarmseffekten av de olika massorna. Genom att ställa upp förhållanden och lösa ut den okända sträckan, så går det att beräkna den okända sträckan. Sist görs en säkerhetskontroll där den okända sträckan används för att räkna ut hävarmsmomenten, vilket är den sista kontrolleringen att man inte har gjort några logiska fel.
202
+
203
+
204
+
Exemplet med en låda på ett lutande plan undersöker krafterna på en låda på ett lutande plan, såsom gravitationen, normalkraften från det lutande planet, och resultantkraften, vilka representeras genom vektorer från vektormodulen. Detta exemplet tar både hänsyn till statisk friktion (då lådan befinner sig stillastående) och kinetisk friktion (då lådan befinner sig i rörelse).
189
205
206
+
\end{binge}
190
207
\subsection{Partikelmekanik}
191
208
192
209
Implementationen av komposita områden var en vidareutveckling av de redan
@@ -248,8 +265,7 @@ \section{Möten med fysikläraren}\label{sec:res_ake}
248
265
domänspecifika språk leder till, eftersom de domänspecifika språken måste vara
249
266
väldefinierade betyder det att alla fysikaliska koncept måste göras entydiga så
250
267
att även de blir väldefinierade och följden blir att operationerna på dem
251
-
enbart kan göras på det definierade sättet. Inget fusk\todo{Utveckla om fusk} kan göras i
252
-
beräkningarna - alla steg måste vara fullständiga och följa de regler som finns.
268
+
enbart kan göras på det definierade sättet. Dessutom måste dimensionerna stämma, vilket nämndes i avsnitt \ref{sec:res_dim}.
253
269
Fäldt menade att det var en bra egenskap hos läromaterialet, att detta rigorösa
254
270
tankesätt och metodik som förmedlas hade varit till nytta för problemlösning i
0 commit comments