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
nämndes i avsnitt~\ref{sec:res_laromaterial} att det påbörjats. Det är dock värt
98
98
att nämna att vi är mycket nöjda med det material som vi har producerat, våra
99
99
kapitel är väl avgränsade och är utformade och implementerade på det sätt som vi
100
-
tycker att det bör implementeras.
100
+
tycker att de bör implementeras.
101
101
102
102
En annan del av målet var att läromaterialet skulle vara lättillgängligt genom
103
103
sitt språkbruk, publicering på en hemsida och fri tillgång till källkoden.
@@ -136,55 +136,47 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
136
136
Målet med läromaterialet var att lära ut fysik på ett roligt och lättförståeligt
137
137
sätt. Dock syns det i resultatet, avsnitt~\ref{sec:res_laromaterial}, att det
138
138
stora fokuset lagts på att förklara och lära ut matematik och Haskell. Varför
139
-
blev det så? Vi menar att det finns många anledningar till detta.
139
+
blev det så? Vi menar att det finns flera anledningar till detta.
140
140
141
141
Problemet med att prata om en egen implementation av fysik är att fysik inte är
142
-
ett helt eget område. Det är snarare så att fysik kan ses som applicerad
142
+
ett helt eget område. Det är snarare så att fysik kan ses som tillämpad
143
143
matematik, att fysik använder matematiken för att beskriva det fysikaliska
144
144
universum vi lever i. Det blir därför naturligt att när den faktiska
145
145
implementationen av dessa beskrivningar och lagar sker, så sker de med hjälp av
146
-
matematiken. Att ett stort fokus läggs på matematiken är alltså bara en
147
-
konsekvens av fysiken i sig själv. Det är till och med så att olika områden kan
148
-
ses som tillämpningar av andra områden, se figur~\ref{fig:xkcd}, där det bland
149
-
annat illustreras att kemi är en tillämpning av fysik, som i sin tur är en
150
-
tillämpning av matematik.
146
+
matematiken. Att ett stort fokus läggs på matematiken är alltså en
147
+
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.
samma problem, att fysik är en tillämpning av matematik. Det är i själva verkat
154
+
\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
159
155
så att en kedja av områden kan betraktas som tillämpningar av
160
156
varandra.}\label{fig:xkcd}
161
157
\end{figure}
162
158
163
-
Såklart ingår det ochså en hel del problemlösning inom fysik, den faktiska
164
-
applikationen av de beskrivningar och lagar som matematiken ger oss. Men
159
+
Självklart ingår det ochså en stor del problemlösning inom fysik, den faktiska
160
+
tillämpningen av de beskrivningar och lagar som matematiken ger oss. Men
165
161
problemlösning är något som vi tycker är svårt och problematiskt att modellera
166
162
som ett domänspecifikt språk, något som diskuteras djupare i
167
163
avsnitt~\ref{sec:lampligt}.
168
164
169
-
Anledningen till att ett stort fokus läggs på Haskell är att eftersom
170
-
implementationen av fysik ibland använder sig av koncept som inte alltid är
171
-
kända för en läsare med endast en grundläggande förståelse för Haskell måste
172
-
dessa koncept förklaras grundligt så att ingen förståelse går förlorad. Och
165
+
Anledningen till att ett stort fokus läggs på Haskell är att de koncept som används är viktiga för läsaren att förstå. Koncepten är ibland inte kända för en läsare med endast en grundläggande förståelse för Haskell och då måste de förklaras tillräckligt ordentligt för att det ska gå att hänga med. Och
173
166
eftersom ett syfte med läromaterialet var väcka intresse hos läsaren med
174
-
bakgrund inom Haskell så ville vi lägga fokus på att tydligt visa på
167
+
bakgrund inom Haskell så ville vi lägga fokus på att tydligt visa
175
168
parallellerna mellan funktionell programmering, matematik och implementationen
176
169
av fysik.
177
170
178
-
Vi hävdar alltså att fokuset inte enbart lagts på fysik pågrund av att det inte
179
-
är så fysik fungerar och att det är lika viktigt att förklara Haskell. Men måste
180
-
det vara så? Det kan mycket väl vara så att detta fokusskifte har skett pågrund
171
+
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
172
+
det vara så? Det kan mycket väl vara så att detta fokusskifte har skett på grund
181
173
av hur vi valde att genomföra projektet. I ett tidigt skede valde vi söka efter
182
-
områden som vi ansåg vara fristående och väl avgränsade~\ref{sec:valet},
174
+
områden som vi ansåg vara fristående och väl avgränsade, se avsnitt~\ref{sec:valet},
183
175
och implementera dessa var för sig. Utan tvekan har detta sätt att påbörja
184
-
projektet påverkat allting som kom därefter, om vi istället hade utvecklat
176
+
projektet påverkat allting som kom därefter. Om vi istället hade utvecklat
185
177
läromaterialet som en kombination av olika områden från början hade det kanske
186
178
inte varit lika främmande att även baka in problemlösning i detta och på så sätt
187
-
fått in ett ordentligt fysikperspektiv.
179
+
fått mer fysik-orienterade domänspecifika språk.
188
180
189
181
Även tidigare än så går det att vara kritisk till projektets utformning. Varför
190
182
valdes Haskell som implementationsspråk? Vi hävdar i teorin~\ref{sec:syntax} att
@@ -195,7 +187,7 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
195
187
Haskell har hade kanske lett till att det stora fokuset inte låg på matematiken
196
188
bakom fysiken, utan istället på fysiken framför matematiken.
197
189
198
-
\subsection{Vad för slags områden är DSLs lämpligt att göra
190
+
\subsection{Vad för slags områden är domänspecifika språk lämpliga att göra
199
191
för?}~\label{sec:lampligt}
200
192
201
193
Under genomförandet av projektet utfördes flera experiment för att bedömma olika
@@ -228,7 +220,7 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
228
220
Det här exemplifieras i matematisk analys, där derivering är en operation, som
229
221
görs på en funktion och sedan resulterar i en annan funktion. Detta illustreras
230
222
i figur~\ref{fig:analys_op_exempel} där man ser hur deriving av en funktion
231
-
resulterar i en ny.
223
+
resulterar i en ny funktion.
232
224
233
225
\begin{figure}[tph]
234
226
\begin{mdframed}
@@ -245,7 +237,7 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
245
237
\caption{Ett exempel på hur derivering, en operation i matematisk analys, tar
246
238
data av ett slag till data av samma slag igen. I exemplet är $f_1$ och $f_2$
247
239
data av slaget funktioner, medan $D$ är operationen derivering. Som synes har
248
-
denna samma slags data både in och ut.}\label{fig:analys_op_exempel}
240
+
denna operation samma slags data både in och ut.}\label{fig:analys_op_exempel}
249
241
\end{figure}
250
242
251
243
Den fixa strukturen kombinerat med data och operationer gör det enkelt att
@@ -258,8 +250,8 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
258
250
den innebär också en pedagogisk vinst. Genom att ha strukturerat upp fysik
259
251
tydligt i Haskell blir det förhoppningsvis enklare för läsaren att förstå hur
260
252
datan hänger ihop rent fysikaliskt. Och även hur relationerna mellan olika
261
-
datatyper och funktionerna som dyker upp i läromaterialet direkt kan översättas
262
-
till relationer inom fysik.
253
+
datatyper och funktioner som dyker upp i läromaterialet direkt kan översättas
254
+
till motsvarande relationer inom fysik.
263
255
264
256
\begin{figure}[tph]
265
257
\centering
@@ -271,29 +263,27 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
271
263
\end{figure}
272
264
273
265
Anledningen till att vi tycker att dessa drag gör ett område mer eller
274
-
mindre lämpat för ett domänspecifikt språk kommer från ett val vi gjorde tidigt
266
+
mindre lämpat för ett domänspecifikt språk kommer från det val vi gjorde tidigt
275
267
i projektet, nämligen valet att använda Haskell. I avsnitt~\ref{sec:syntax}
276
268
beskriver vi begreppen syntax, semantik och syntaxträd och dess koppling till
277
269
både domänspecifika språk och Haskell. Dock finns det ingenting som säger att
278
-
man måste lägga ett sånt stort fokus som vi har gjort på t.ex.~syntaxträd, hade
279
-
vi istället valt bort Haskell till fördel för ett objektorienterat språk
280
-
istället så hade vår definition av vad som gör ett område lämpat för
270
+
man måste lägga ett sådant stort fokus som vi har gjort på till exempel syntaxträd. Hade
271
+
vi istället valt bort Haskell till fördel för ett objektorienterat språk hade vår definition av vad som gör ett område lämpat för
281
272
implementation helt annorlunda.
282
273
283
274
I kontrast till dessa lämpliga områden står mindre lämpliga områden (eller
284
-
åtminstone områden som vi inte lyckades göra något bra av). Lutande plan exempel
285
-
på mindre lämpliga områden. Vad har detta område för drag som gör det mindre
275
+
åtminstone områden som vi inte lyckades göra något bra av). Lutande plan är ett exempel på ett mindre lämpligt område. Vad har detta område för drag som gör det mindre
286
276
lämpat för ett domänspecifika språk?
287
277
288
278
När man skapar ett domänspecifikt språk till ett område gör man det genom att
289
279
identifiera vad som är syntaxen som används, vad är det för data som modelleras,
290
-
vilka operationer opererar på denna data och vad finns det för lagar och samband
280
+
vilka operationer som görs på denna data och vad finns det för lagar och samband
291
281
som gäller för dessa. Detta sätt att arbeta fungerar bra för områden som är
292
282
generella och som går att modellera på ett som tillåter vidareutveckling, såsom
293
283
vektorer i flera dimensioner eller vektorer vars komponenter kan vara av vilken
294
284
typ som helst.
295
285
296
-
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 just
297
287
lutande plan. Ett sådant område har istället teoretiska samband som relaterar
298
288
olika egenskaper i systemet till varandra. Ett sådant samband är till exempel $a
299
289
= g \cdot\sin(v)$ för det lutande planet i figur~\ref{fig:lutande_plan}.
@@ -318,7 +308,7 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
318
308
döljer den matematiken som ligger bakom svaret.
319
309
320
310
När det kommer till lutande plan och liknande områden är nyckeln att visserligen
321
-
känna till vilka samband som gäller, men det framförallt att veta när man ska
311
+
känna till vilka samband som gäller, men det är framförallt att veta när man ska
322
312
använda dem och hur man tillämpar dem på olika typer av uppgifter. Vi behandlar
323
313
därför områden som lutande plan genom att lösa exempeluppgifter modellerade i de
324
314
tidigare domänspecifika språk. De tidigare språken tillhandahåller de matematiska
@@ -327,14 +317,14 @@ \subsection{Vad för slags områden är DSLs lämpligt att göra
327
317
inga domänspecifika språk för fysik.
328
318
329
319
Att vissa områden var mindre lämpliga var ett oväntat resultat i projekets
330
-
genomförande. Vid start hade vi trott att det skulle gå att göra domänspecifka
320
+
genomförande. Vid start trodde vi att det skulle gå att göra domänspecifka
331
321
språk för alla områden, såväl matematiska som fysikaliska, men som vi här
332
322
diskuterat gick inte det. Istället gjordes uppdelningen mellan grundläggande och
333
323
komposita områden, som beskrevs i avsnitt~\ref{sec:valet}, så att de fysikaliska
334
324
områden (som blev komposita) kunde behandlas som tillämpningar av de
335
325
grundläggande områdena.
336
326
337
-
\subsection{Gör DSLs så att fysik blir mer lättförståeligt eller
327
+
\subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt eller
338
328
intressant?}~\label{sec:bara_fysik}
339
329
340
330
Är det pedagogiskt att lära ut fysik genom att presentera den med hjälp av
@@ -354,7 +344,7 @@ \subsection{Gör DSLs så att fysik blir mer lättförståeligt eller
354
344
tycker är meningsfullt.
355
345
356
346
År 2016 genomfördes ett kandidarbete på Chalmers liknande
357
-
detta.~\cite{kandidat2016} Det kandidatarbetet resulterade också i ett
347
+
detta~\cite{kandidat2016}. Det kandidatarbetet resulterade också i ett
358
348
läromaterial. Skillnaden är att det handlade om signallära medan detta handlar
359
349
om fysik. Grundidėn är dock densamma: att använda domänspecifika språk för att
360
350
ge struktur till ett annat område. Detta tycker vi visar att det finns ett
@@ -371,7 +361,7 @@ \subsection{Gör DSLs så att fysik blir mer lättförståeligt eller
371
361
problemlösning är att det måste ske enligt de regler som ställdes upp när de
372
362
domänspecifika språken definerades. Det går med andra ord inte att fuska och ta
373
363
genvägar i beräkningarna. Detta tankesätt tycker Fäldt, se
374
-
avsnitt~\ref{sec:res_ake}, är en mycket bra grej som förmedlas med att
364
+
avsnitt~\ref{sec:res_ake}, är en mycket bra aspekt som förmedlas med att
375
365
presentera fysik på detta sätt. Studenten skolas in i att tänka i rigorösa och
376
366
kompletta banor.
377
367
@@ -386,19 +376,19 @@ \subsection{Gör DSLs så att fysik blir mer lättförståeligt eller
386
376
domänspecifika språk har ett värde ihop med fysik just för dessa strukturgivande
387
377
möjligheter, även om inte alla aspekter av fysik kan täckas.
388
378
389
-
Dessutom kan man
379
+
Man kan också
390
380
tänka sig att det finns ett värde i ett fånga upp den kreativa problemlösningen
391
381
med ett fyrkantigt system och på så sätt stoppa problemlösaren från att göra
392
-
misstag, på ett förenklat sätt kan man säga att så länge typsystemet inte klagar
393
-
så löser man problemet på ett korrekt sätt. Igen handlar det om att se
394
-
domänspecifika språk som ``tools for thinking'', alltså inte att vårt
382
+
misstag. På ett förenklat sätt kan man säga att så länge typsystemet inte klagar
383
+
betyder det att man löser problemet på ett korrekt sätt. Igen handlar det om att se
384
+
domänspecifika språk som ``tools for thinking'' och inte att vårt
395
385
läromaterial kommer att ge alla svaren när det kommer till fysikalisk
396
-
problemlösning men att vad det kan tillföra är en struktur som kan hjälpa
386
+
problemlösning. Men vad det kan tillföra är en struktur som kan hjälpa
397
387
läsaren att enklare komma fram till lösningen, och som garanterar att inga
398
388
syntaktiska misstag gjorts.
399
389
400
390
Hittills har domänspecifika språk framförts som ett sätt att strukutera fysik.
401
-
Projkets läromaterial är ett exempel på ett sådant försök. Men läromaterialet
391
+
Projektets läromaterial är ett exempel på ett sådant försök. Men läromaterialet
402
392
har även haft två andra drag, förutom domänspecifika språk, som skiljer sig från
403
393
traditionell fysikundervisning, nämligen ett lättillgängligt språk och en
404
394
nogrann genomgång av koncepten. Hade inte detta räckt? Hade fysiken i sig inte
@@ -407,7 +397,7 @@ \subsection{Gör DSLs så att fysik blir mer lättförståeligt eller
407
397
Vi tror att svaret på båda dessa frågor är ja, med vissa reservationer. Ett
408
398
läromaterial om renodlad fysik med ett lättsamt språk och nogrann förklaring av
409
399
koncepten hade säkrt varit uppskattat. Khan Academy är ett sådant
410
-
exempel.\cite{khan}. En annan fördel hade varit att en större målgrupp kan nås.
400
+
exempel och som är mycket uppskattat~\cite{khan}. En annan fördel hade varit att en större målgrupp kan nås.
411
401
Men då missar man de saker domänspecifika språk bidrar med, nämligen det som
412
402
diskuterats ovan: att ge struktur och att lära ut ett rigoröst tankesätt. Man
413
403
missar också den \textit{intresseväckande} potentialen.
@@ -449,9 +439,9 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
449
439
syntaxträd för vilka krafter som verkar på fysikalsika kroppar i mekanikproblem.
450
440
Det kan till och med vara ett domänspecifikt språk för något så abstrakt som
451
441
fysikalisk problemlösning i allmänhet. Vi vet inte hur ett domänspecifikt språk
452
-
av detta slag kan se ut, vilket är anledning till att vi gick den andra vägen,
442
+
av detta slag kan se ut, vilket är anledningen till att vi gick den andra vägen,
453
443
som vi diskuterade i avsnitt~\ref{sec:fpf}. Att ger mer fysik-orienterade
454
-
domänspecifika språj hade däröfr varit en möjligt vidareutveckling.
444
+
domänspecifika språk hade därför varit en möjligt vidareutveckling.
455
445
456
446
En annan möjlig vidareutveckling är att göra en rigorös studie kring de
457
447
pedagogiska aspekterna kring kombinationen av fysik och domänspecifika språk.
@@ -476,11 +466,10 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
476
466
många fall kan dessa kodbaser vara implementerade på ointuitivt sätt och utan
477
467
någon typsäkerhet. I dessa fall kan det vara mycket användbart med ett
478
468
domänspecifikt språk med hög typsäkerhet som möjliggör för användaren att
479
-
endast skriva korrekta uttryck och som döljer den bakomliggande komplexiteten.
480
-
Denna idè framfördes till oss av Jeff Chen\footnote{Jeffs sida på Chalmers:
469
+
endast skriva korrekta uttryck och som döljer den bakomliggande komplexiteten. Tänk till exempel på kod i Matlab. Där är det lätt hänt att missa någon detalj i sin implementation så att beräkningarna blir fel. Om ett syntaktiskt lager funnits som krävde att de fysikaliska dimensionerna stämmde överrens hade vissa misstag kunnat upptäckas vid kompileringstid istället för att kanske inte upptäckas alls. Denna idè framfördes till oss av Jeff Chen\footnote{Jeffs sida på Chalmers:
0 commit comments