Skip to content

Commit 2c51614

Browse files
author
Oskar Lundström
committed
2 parents 5279913 + 107fd9a commit 2c51614

File tree

10 files changed

+216
-90
lines changed

10 files changed

+216
-90
lines changed

Rapport/include/Diskussion.tex

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ \section{Genomförandediskussion}
4040
som stöd ytterst osäkra.
4141

4242
Det går även att kritisera hur urvalet av områden gick till under projektet.
43-
Dels kan det ha lett till att endast några få domänspecifika språk för fysik
43+
Dels kan det ha lett till att endast några få domänspecifika språk för fysik
4444
implementerades, se diskussionen i avsnitt~\ref{sec:fpf}. Dels skedde urvalet ur
4545
implementatörens perspektiv (det vill säga, vårt) och inte ur användarens
4646
perspektiv (studenten som ska nyttja läromaterialet). Med det menar vi att
@@ -94,7 +94,7 @@ \section{Resultatdiskussion}\label{sec:res_disk}
9494
nämndes i avsnitt~\ref{sec:res_laromaterial} att det påbörjats. Det är dock värt
9595
att nämna att vi är mycket nöjda med det material som vi har producerat. Våra
9696
kapitel är väl avgränsade, utformade och implementerade på det sätt som vi
97-
anser att de bör.
97+
anser att de bör.
9898

9999
En annan del av målet var att läromaterialet skulle vara lättillgängligt genom
100100
sitt språkbruk, publicering på en hemsida och fri tillgång till källkoden.
@@ -132,15 +132,17 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
132132
Målet med läromaterialet var att lära ut fysik på ett roligt och lättförståeligt
133133
sätt. Dock syns det i resultatet, avsnitt~\ref{sec:res_laromaterial}, att det
134134
stora fokuset lagts på att förklara och lära ut matematik och Haskell. Varför
135-
blev det så? Vi menar att det finns flera anledningar till detta.
135+
blev det så? Vi menar att det finns flera anledningar till detta.
136136

137137
Problemet med att prata om en egen implementation av fysik är att fysik inte är
138138
ett helt eget område. Det är snarare så att fysik kan ses som tillämpad
139139
matematik, att fysik använder matematiken för att beskriva det fysikaliska
140140
universum vi lever i. Det blir därför naturligt att när den faktiska
141141
implementationen av dessa beskrivningar och lagar sker, så sker de med hjälp av
142-
matematiken. Att ett stort fokus läggs på matematiken är alltså en
143-
konsekvens av fysiken i sig själv. Att fysik är tillämpad matematik illustreras i figur~\ref{fig:xkcd}, som även visar mer generellt hur en kedja av områdena är tillämpningar av varandra.
142+
matematiken. Det stora fokuset på matematiken är alltså en
143+
konsekvens av fysiken i sig själv. Att fysik är tillämpad matematik illustreras
144+
i figur~\ref{fig:xkcd}, som även visar mer generellt hur en kedja av områdena är
145+
tillämpningar av varandra.
144146

145147
\begin{figure}[tph]
146148
\centering
@@ -149,7 +151,7 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
149151
\href{https://xkcd.com}{xkcd.com} licensierad under
150152
\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
151153
så att en kedja av områden kan betraktas som tillämpningar av
152-
varandra.}\label{fig:xkcd}
154+
varandra.}\label{fig:xkcd}
153155
\end{figure}
154156

155157
Självklart ingår det också en stor del problemlösning inom fysik, den faktiska
@@ -162,7 +164,7 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
162164
eftersom ett syfte med läromaterialet var att väcka intresse hos läsaren med
163165
bakgrund inom Haskell så ville vi lägga fokus på att tydligt visa
164166
parallellerna mellan funktionell programmering, matematik och implementationen
165-
av fysik.
167+
av fysik.
166168

167169
Vi hävdar alltså att fokuset lagts på mer än bara fysik av två skäl: att fysik är tillämpad matematik och att det är viktigt att förklara de Haskell-koncept som används. Men måste
168170
det vara så? Det kan mycket väl vara så att detta fokusskifte har skett på grund
@@ -202,7 +204,7 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
202204

203205
\begin{figure}[tph]
204206
\centering
205-
\caption{Exempel på data och operationer i några domänspecifika språk}\label{tab:data_och_ops}
207+
\caption{Exempel på data och operationer i några domänspecifika språk}\label{tab:data_och_ops}
206208
\begin{tabular}{l|l}
207209
\toprule
208210
DSL / data & Exempel på operationer \\ \midrule
@@ -281,7 +283,7 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
281283
vektorer i flera dimensioner eller vektorer vars komponenter kan vara av vilken
282284
typ som helst.
283285

284-
Ett exempel på ett område som inte har några tydliga data och operationer är
286+
Ett exempel på ett område som inte har några tydliga data och operationer är
285287
lutande plan. Ett sådant område har istället teoretiska samband som relaterar
286288
olika egenskaper i systemet till varandra. Ett sådant samband är till exempel $a
287289
= g \cdot \sin(v)$ för det lutande planet i figur~\ref{fig:lutande_plan}.
@@ -316,7 +318,7 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
316318

317319
Att vissa områden var mindre lämpliga var ett oväntat resultat i projektets
318320
genomförande. Vid start trodde vi att det skulle gå att göra domänspecifika
319-
språk för alla områden, såväl matematiska som fysikaliska, men som vi
321+
språk för alla områden, såväl matematiska som fysikaliska, men som vi
320322
diskuterat här gick inte det. Istället gjordes uppdelningen mellan grundläggande och
321323
komposita områden, som beskrevs i avsnitt~\ref{sec:valet}, så att de fysikaliska
322324
områden (som blev komposita) kunde behandlas som tillämpningar av de
@@ -342,7 +344,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
342344
År 2016 genomfördes ett kandidatarbete på Chalmers liknande
343345
detta~\cite{kandidat2016}. Det kandidatarbetet resulterade också i ett
344346
läromaterial. Skillnaden är att det handlade om signallära medan detta handlar
345-
om fysik. Grundidèen är dock densamma: att använda domänspecifika språk för att
347+
om fysik. Grundidén är dock densamma: att använda domänspecifika språk för att
346348
ge struktur till ett annat område. Detta tycker vi visar på att det finns ett
347349
akademiskt intresse för att använda domänspecifika språk i syfte att lära ut,
348350
och att det inte bara är fysik och matematik som är lämpliga områden utan att
@@ -370,7 +372,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
370372
kunna vara en nackdel att kombinera domänspecifika språk och fysik om det leder
371373
till att man tänker alltför fyrkantigt kring fysik. Vi anser dock att
372374
domänspecifika språk har ett värde ihop med fysik just för dessa strukturgivande
373-
möjligheter, även om inte alla aspekter av fysik kan täckas.
375+
möjligheter, även om inte alla aspekter av fysik kan täckas.
374376

375377
Man kan också
376378
tänka sig att det finns ett värde i omsluta den kreativa problemlösningen
@@ -387,7 +389,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
387389
Projektets läromaterial är ett exempel på ett sådant försök. Men läromaterialet
388390
har även haft två andra drag förutom domänspecifika språk, som skiljer sig från
389391
traditionell fysikundervisning, nämligen ett lättillgängligt språk och en
390-
nogrann genomgång av koncepten. Hade inte detta räckt? Hade inte fysiken i sig
392+
nogrann genomgång av koncepten. Hade inte detta räckt? Hade inte fysiken i sig
391393
kunnat förklarats bättre om den haft allt fokus?
392394

393395
Vi tror att svaret på båda dessa frågor är ja, med vissa reservationer. Ett
@@ -483,7 +485,7 @@ \section{Etiska aspekter}
483485
hemsidans uppbyggnad. Det handlar om transparens, att visa att man är positiv till att andra
484486
tittar på hur man gjort och låta dem bygga vidare på ens skapelser. Genom att
485487
sluta oss till skaran som skapar öppen källkod hoppas vi att fler inom samhället
486-
i stort ska gå över till denna modell.
488+
i stort ska gå över till denna modell.
487489

488490
Valet att skriva på engelska har också att göra med tillgängligheten. Fler kan
489491
engelska än svenska. På detta sätt kan läromaterialet komma fler till gagn.

Rapport/include/Introduktion.tex

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ \section{Bakgrund}
2121

2222
DSLsofMath-kursens skapare, Cezar Ionescu och Patrik Jansson, har beskrivit avsikten med kursen i en artikel~\cite{tfpie2015}. Det direkta målet med kursen är
2323
att förbättra den matematiska utbildningen för datavetare och den
24-
datavetenskapliga utbildningen för matematiker, där den grundläggande idéen
24+
datavetenskapliga utbildningen för matematiker, där den grundläggande idén
2525
bakom kursen är:
2626

2727
\begin{center} ``[\dots] att uppmuntra studenterna att närma sig matematiska
@@ -39,7 +39,7 @@ \section{Bakgrund}
3939
programmeringsspråk eller implementerat helt fristående. I kursen och projektet
4040
är de implementerade i Haskell.
4141

42-
Idéen bakom projektet är att använda domänspecifika språk för att ur ett alternativt perspektiv presentera fysik. Likt det sätt DSLsofMath
42+
Idén bakom projektet är att använda domänspecifika språk för att ur ett alternativt perspektiv presentera fysik. Likt det sätt DSLsofMath
4343
presenterar kopplingar mellan matematik och programmering ska projektet på motsvarande sätt visa på kopplingar mellan programmering och fysik och därmed
4444
underlätta lärandet. För att förtydliga ges här en analogi:
4545

@@ -69,8 +69,8 @@ \section{Bakgrund}
6969
mekanik, med början i Lagranges ekvationer och avslut i perturbationsteori
7070
(teori för approximationer av matematiska lösningar). I kursens bok~\cite{SICM}
7171
förklaras fysikaliska fenomen genom att visa datorprogram för att simulera dem,
72-
skrivna i språket Scheme. Denna typ av kurser ter sig ovanliga och är, till
73-
projektgruppens kännedom, den enda kursen bortsett från DSLsofMath som knyter
72+
skrivna i språket Scheme. Denna typ av kurser är ovanliga och är, till
73+
projektgruppens kännedom, den enda kursen bortsett från DSLsofMath som knyter
7474
samman fysik, programmering och matematik på en symboliskt nivå för att förklara
7575
koncepten.
7676

@@ -84,7 +84,7 @@ \section{Bakgrund}
8484

8585
\section{Projektets mål}
8686

87-
Målet med detta kandidatarbete är att angripa fysik från ett
87+
Målet med detta kandidatarbete är att angripa fysik från ett
8888
programmeringsperspektiv. Förhoppningen är då att fysik ska bli både
8989
roligare och intressantare för datastudenter, och därmed också
9090
enklare. Detta liknar premissen bakom kursen DSLsofMath och kandidatarbetet
@@ -129,4 +129,3 @@ \section{Avgränsningar}\label{sec:avgransningar}
129129
intressanta och nya, inte hur man kan skriva ett pedagogiskt läromaterial. Den
130130
pedagogiska aspekten kommer inte ignoreras helt, fokuset på den kommer bara att
131131
vara mindre.
132-

Rapport/include/Metod.tex

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
5050
\end{subfigure}
5151
\caption{Översikt över hur skapandeprocessen för läromaterialet såg ut.
5252
Processen delas upp utefter två axlar: kapitel och fas. Varje kombination
53-
är en del som arbetats med och är gråmarkerad.}
53+
är en del som arbetats med och är gråmarkerad.}
5454
\end{figure}
5555

5656
Även om detta sätt att dela upp processen är översiktligt är det inte helt
@@ -161,7 +161,7 @@ \subsubsection*{Områden som valdes ut}
161161

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

164-
Implementationen av domänspecifika språk var en iterativ process.
164+
Implementationen av domänspecifika språk var en iterativ process.
165165
Den inleddes med att
166166
bygga vidare på den experimentering som gjorts under urvalsfasen. Det finns inte bara
167167
ett rätt sätt att skriva ett domänspecifikt språk på, därav gjordes försök med
@@ -172,9 +172,9 @@ \subsection{Implementation av domänspecifika språk för områdena}
172172

173173
Vad som ansågs vara en bra, eller åtminstone tillräckligt bra implementation
174174
var i huvudsak baserat på gruppmedlemmarnas erfarenhet av Haskell och diskussion
175-
inom gruppen och med handledaren. Det viktigaste var att de skulle vara
176-
lättförståeliga. Den programtekniskt elegantaste implementationen användes därför
177-
inte alltid, utan den längre versionen föredrogs för att göra
175+
inom gruppen och med handledaren, det viktigaste var att de var
176+
lättförståeliga. Därför användes inte alltid den programtekniskt elegantaste
177+
implementationen utan den längre versionen föredrogs för att göra
178178
läromaterialet så lättläst som möjligt. Dock avstods det inte från användning av
179179
mer avancerade funktioner i Haskell när materialet motiverade dem, men då alltid
180180
med en uttömmande förklaring om hur det fungerade och utan krav på tidigare
@@ -198,7 +198,7 @@ \subsubsection*{Implementation av grundläggande områden}
198198

199199
I fysiken finns det dimensioner \cite{dimensioner_ne}. Några exempel är \textit{längd},
200200
\textit{massa} och \textit{hastighet}. Dimensionerna kan läggas i en av två
201-
kategorier: basdimensioner eller sammansatta dimensioner. Det finns enbart sju
201+
kategorier: basdimensioner eller sammansatta dimensioner. Det finns enbart sju
202202
basdimensioner (längd, massa, tid, elektrisk ström, temperatur, substansmängd och
203203
ljusstyrka) medan det finns oändligt många sammansatta. Sammansatta
204204
dimensioner fås genom att multiplicera eller dividera två andra dimensioner. Av längd, massa och hastighet är längd och massa basdimensioner medan hastighet är sammansatt.
@@ -300,9 +300,9 @@ \subsubsection*{Implementation av grundläggande områden}
300300

301301
\begin{lstlisting}[frame=none, belowskip=-0.5\baselineskip, xleftmargin=0.5in]
302302
mulDim :: Dim -> Dim -> Dim
303-
mulDim (Dim le1 ma1 ti1 cu1 te1 su1 lu1)
303+
mulDim (Dim le1 ma1 ti1 cu1 te1 su1 lu1)
304304
(Dim le2 ma2 ti2 cu2 te2 su2 lu2) =
305-
Dim (le1+le2) (ma1+ma2) (ti1+ti2) (cu1+cu2)
305+
Dim (le1+le2) (ma1+ma2) (ti1+ti2) (cu1+cu2)
306306
(te1+te2) (su1+su2) (lu1+lu2)
307307
\end{lstlisting}
308308

@@ -335,10 +335,10 @@ \subsubsection*{Implementation av komposita områden}
335335
Exempel från läromaterialet:
336336
\begin{lstlisting}[frame=none, belowskip=-0.5\baselineskip, xleftmargin=0.5in]
337337
type Mass = FunExpr
338-
type VectorE = Vector3 FunExpr -- Vector of functional
338+
type VectorE = Vector3 FunExpr -- Vector of functional
339339
-- expressions
340340

341-
data Particle = P { pos :: VectorE -- Position as a
341+
data Particle = P { pos :: VectorE -- Position as a
342342
-- function of time
343343
-- , unit m
344344
, mass :: Mass -- Mass, unit kg
@@ -367,11 +367,11 @@ \subsection{Skriva lärotext}
367367
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
368368
en bra bild hur det såg ut även i detta projekt.
369369

370-
Under skrivandet av lärotexten lades övningar till. Det vanligaste sättet övningar skapades på vara genom att modifiera befintlig lärotext. Istället för att bara förklara allting, så uppmanar den läsaren då och då att göra nästa steg i
371-
implementationen själv. När
372-
ett kapitel var avslutat lades dessutom extra övningar till i slutet. Dessa
373-
övningar var ofta vidareutvecklingsmöjligheter av det domänspecifika språk som
374-
fanns.
370+
Under skrivandet av lärotexten lades övningar till. Dessa skapades genom att
371+
modifiera befintlig lärotext, istället för att förklara allting uppmanar den
372+
läsaren då och då att göra nästa steg i implementationen själv. När ett kapitel
373+
var avslutat lades dessutom extra övningar till i slutet, dessa övningar var
374+
ofta vidareutvecklingar av det domänspecifika språk som redan implementerats.
375375

376376
Skrivandet av lärotexten till de grundläggande och komposita områden var
377377
övergripande likadana. Skillnaden låg i balansen mellan Haskell och fysik. För
@@ -450,7 +450,7 @@ \section{Utvärdering med testgrupp}
450450
med andra ord nytt för dem.
451451

452452
Utvärderingen gjordes genom att visa dem läromaterialet med en kort
453-
presentation och bakgrund. Sedan fick de på egen hand läsa materialet och deras
453+
presentation och bakgrund. Sedan fick de på egen hand läsa materialet och deras
454454
spontana reaktioner och svar på frågor noterades.
455455

456456
\section{Möten med fysikläraren}

Rapport/include/Resultat.tex

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
1313

1414
\begin{figure}[tph]
1515
\includegraphics[width=\linewidth]{figure/smakprov_laromaterial.png}
16-
\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}
16+
\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}
1717
\end{figure}
1818

1919
Språket i lärotexten är enligt projektgruppen lättsamt\footnote{Diskuteras utförligare i avsnitt \ref{sec:res_disk}.} och det finns även bilder och övningar.
@@ -32,15 +32,15 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
3232
\caption{Exempel på en bild. Bilden visar hur en hund springer och
3333
hoppar upp på en stillastående
3434
vagn.}~\label{fig:smakprov_bild_laromaterial}
35-
\end{subfigure}%
35+
\end{subfigure}%
3636
~~~
3737
\begin{subfigure}[t]{0.5\textwidth}
3838
\centering
3939
\includegraphics[width=0.9\linewidth]{figure/smakprov_ovning.png}
4040
\caption{Exempel på en övning. Övningen ligger som en del av den
4141
löpande texten.}~\label{fig:smakprov_ovning}
4242
\end{subfigure}
43-
\caption{Exempel på en bild och en övning ur läromaterialet.}
43+
\caption{Exempel på en bild och en övning ur läromaterialet.}
4444
\end{figure}
4545

4646
Läromaterialet behandlar ett flertal områden inom fysik och matematik.
@@ -70,7 +70,7 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
7070
för uttryck av funktioner inom denna domän konstrueras. Därefter
7171
analyseras syntax och semantik för differenser, derivator, och
7272
integraler; och funktioner implementeras för att utföra dessa
73-
operationer både approximativt numeriskt, och symboliskt med ett
73+
operationer både approximativt numeriskt, och symboliskt med ett
7474
syntaxträd. Slutligen appliceras de implementerade funktionerna för
7575
att visualisera grafer av operationerna.
7676

@@ -88,18 +88,20 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
8888
Lägesenergi, rörelseenergi, gravitation och så vidare. Den modelleras med vektorer vars
8989
komponenter består av matematiska uttryck tagna från kapitlet om matematisk
9090
analys. Förhoppningen är att detta område inte ska presentera någon ny fysik för
91-
läsaren utan istället visa hur redan känd fysik direkt går att översätta till läromaterialets domänspecifika språk.
91+
läsaren utan istället visa hur redan känd fysik direkt går att översätta till
92+
läromaterialets domänspecifika språk.
9293

9394
Läromaterialet blev publicerat på en hemsida~\cite{LYAP} och all källkod finns
94-
tillgänglig på projektets GitHub-repository~\cite{LYAP_repo}. På GitHub-repositoriet finns även ett antal delvis färdigställda områden, till exempel bevisföring. Texten i läromaterialet är skriven
95-
på engelska.
95+
tillgänglig på projektets GitHub~\cite{LYAP_repo}. På GitHub finns även ett
96+
antal delvis färdigställda områden, till exempel bevisföring. Texten i
97+
läromaterialet är skriven på engelska.
9698

9799
\section{Utvärderingen med testgruppen}\label{sec:res_test}
98100

99101
Utfallet från utvärderingen med testgruppen var till övervägande del positivt.
100102
Testgruppen tyckte läromaterialet var ett intressant och roligt sätt att
101103
presentera fysik på. De tyckte att bilderna tjänade sitt syfte i att muntra upp
102-
läsaren.
104+
läsaren.
103105

104106
En poäng som framfördes var att inte börja kapitlen för komplicerat. Istället
105107
tyckte de att det skulle vara bra att börja enkelt, för att kunna hänga med i

0 commit comments

Comments
 (0)