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
detta tankesätt grundligare än vad vi gjort, istället för att avfärda det som
57
57
ett svårare sätt att gå till väga.
58
58
59
-
Till sist kan man kritisera den allmänna metoden som valdes för utformningen av
59
+
Till sist kan vi kritisera den allmänna metoden som valdes för utformningen av
60
60
läromaterialet, nämligen att skriva varje kapitel som en lång, sammanhängande,
61
61
löpande text. Lärotexten har skrivits som en berättelse om hur ett
62
62
domänspecifikt språk kan implementeras eller tillämpas för olika fysikaliska
63
-
områden. Nackdelen är att det blir en passiv inlärning. Läsaren visas hur man
64
-
kan göra utan att försöka så mycket själv. Visserligen har övningar inkluderats
63
+
områden. Nackdelen är att det blir en passiv inlärning, läsaren visas hur det kan göras utan att försöka så mycket själv. Visserligen har övningar inkluderats
65
64
i läromaterialet, och läsaren uppmuntras till att implementera koden parallellt, men det
66
65
riskerar ändå att bli en passiv inlärning. Valet att använda Literete
67
66
Haskell har definitivt bidragit till dessa passiva tendenser. Literate Haskell är
projektets genomförande hade det därför varit av intresse att undersöka
72
71
alternativa sätt att utforma lärotexten som uppmuntrat ett mer aktivt lärande.
73
72
Det hade till exempel kunnat vara att presentera idén bakom fysikaliska
74
-
dimensioner, och sedan låta studenten själv skapa implementationen. Något enkelt
75
-
exempel hade kunnat visats först för att ge någon slags fingervisning om hur man
76
-
kan göra.
73
+
dimensioner, och sedan låta studenten själv skapa implementationen. En fingervisning i form av ett enkelt exempel på en möjlig lösning kan vara ett sätt att göra detta.
ord har mekanik påbörjats, men inte termodynamik eller vågrörelselära. Det som återstår enligt oss när det kommer till mekanik är att tillämpa de grundläggande områdena på
89
86
fler fysikaliska problem utöver gungbräda och krafter på lådor. Vi tror att de
90
87
tre grundläggande områdena som är färdiga räcker. Förutom fler tillämpningar kan
91
-
man utveckla mer fördjupande områden, till exempel bevisföring, något som
92
-
nämndes i avsnitt~\ref{sec:res_laromaterial} att det påbörjats. Det är dock värt
88
+
mer fördjupande områden implementeras, till exempel bevisföring, något som redan påbörjats, se avsnitt~\ref{sec:res_laromaterial} att det påbörjats. Det är dock värt
93
89
att nämna att vi är mycket nöjda med det material som vi har producerat. Våra
94
90
kapitel är väl avgränsade, utformade och implementerade på det sätt som vi
dock kunnat vara vänligare. Till exempel beskriver vi olika koncept som
107
103
``väldigt enkla'' fastän läsaren kanske inte alls tycker det.
108
104
109
-
Vi knyter här även an till lärandeteorierna i avsnitt \ref{sec:arcs}, som nämnde interaktion och snabba belöningar. Vårt läromaterial har visserligen ingen interaktiv sida, men typsystemet i Haskell skulle ändå tänkas kunna fungera som en fingervisare när man gör rätt eller fel. Det går exempelvis inte att räkna med dimensioner på ett felaktigt sätt, och funktionskomposition fungerar endast om båda funktionernas typdefinitioner (typer på argument och returvärde) stämmer överens. När det kommer till snabba belöningar kan den glädje man ser när koden kompilerar ses som en sådan. Läromaterialet innefattar även strategiskt placerade roliga bilder, för att ge impulsiva glädjereaktioner.
105
+
Vi knyter här även an till lärandeteorierna i avsnitt \ref{sec:arcs}, som nämnde interaktion och snabba belöningar. Vårt läromaterial har visserligen ingen interaktiv sida, men typsystemet i Haskell kan ändå fungera som en fingervisare när programmeraren gör rätt eller fel. Det går exempelvis inte att räkna med dimensioner på ett felaktigt sätt, och funktionskomposition fungerar endast om båda funktionernas typdefinitioner (typer på argument och returvärde) stämmer överens. När det kommer till snabba belöningar kan den glädje programmeraren ser när koden kompilerar ses som en sådan. Läromaterialet innefattar även strategiskt placerade roliga bilder för att ge impulsiva glädjereaktioner.
110
106
111
107
Läromaterialet kan vara relevanta för flera grupper. Visserligen är målgruppen datastudenter, och vi har personligen dragit nytta av det,
112
108
men vi tror att det kan vara relevant för fler än så, till exempel kan läromaterialet även vara intressant för fysiklärare. Fäldt nämnde att han
@@ -261,14 +257,14 @@ \subsection{Lämpliga områden för domänspecifika språk}\label{sec:lampligt}
261
257
i projektet, nämligen valet att använda Haskell. I avsnitt~\ref{sec:syntax}
262
258
beskriver vi begreppen syntax, semantik och syntaxträd och dess koppling till
263
259
både domänspecifika språk och Haskell. Dock finns det ingenting som säger att
264
-
man måste lägga ett sådant stort fokus som vi har gjort på till exempel syntaxträd. Hade
260
+
det måste läggas ett sådant stort fokus som vi har gjort på till exempel syntaxträd. Hade
265
261
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
266
262
implementation kanske sett helt annorlunda ut.
267
263
268
264
I kontrast till dessa lämpliga områden står mindre lämpliga områden (eller
269
265
å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. Områden av detta slag har drag som gör det mindre lämpligt än exempelvis vektorer.
270
266
271
-
När man skapar ett domänspecifikt språk till ett område gör man det genom att
267
+
När ett domänspecifikt språk skapas till ett område görs det genom att
272
268
identifiera syntaxen som används, datan som modelleras,
273
269
vilka operationer som används på denna data och vad det finns för lagar och samband
274
270
som gäller för dessa. Detta sätt att arbeta fungerar bra för områden som är
@@ -292,17 +288,17 @@ \subsection{Lämpliga områden för domänspecifika språk}\label{sec:lampligt}
292
288
Samband och ekvationer av detta slag kan visserligen modelleras som ett domänspecifikt
293
289
språk, men vi menar att nyttan inte blir stor med det eftersom allt vi då gör är
294
290
att skriva de formler som redan finns att tillgå i diverse kursböcker i fysik
295
-
utan att tillföra någon ny kunskap och utan att modellera dem på ett generellt
296
-
eller unikt sätt. Det man då kan göra är att programmera en ekvationslösare men
291
+
utan att tillföra någon ny kunskap och utan att modellera dem på ett generellts
292
+
eller unikt sätt. Det som då kan göras är att programmera en ekvationslösare men
297
293
den hade varit både mekanisk och komplex. Den skulle alltså skilja sig
298
-
drastiskt från hur man löser problem för hand och skulle vara svår att förstå.
294
+
drastiskt från hur studenter löser problem för hand och skulle vara svår att förstå.
299
295
Alldeles för mycket fokus skulle hamna på algoritmer istället för fysik. Vi
300
296
anser även att en ekvationslösare inte hjälper till att lära ut fysik, tvärtom
301
297
döljer den matematiken som ligger bakom svaret.
302
298
303
299
När det kommer till lutande plan och liknande områden är nyckeln att visserligen
304
-
känna till vilka samband som gäller, men det är framförallt att veta när man ska
305
-
använda dem och hur man tillämpar dem på olika typer av uppgifter. Vi behandlar
300
+
känna till vilka samband som gäller, men det är framförallt viktigt att veta när de ska
301
+
användas och hur de ska tillämpas på olika typer av uppgifter. Vi behandlar
306
302
därför områden som lutande plan genom att lösa exempeluppgifter modellerade i de
307
303
tidigare domänspecifika språk. De tidigare språken tillhandahåller de matematiska
308
304
verktyg som behövs för att koda upp lösningar av problem. Därav innehåller det
@@ -327,7 +323,7 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
327
323
detta, se även avsnitt~\ref{sec:grund_impl}. Där konstateras att en godtycklig
328
324
dimension kan skrivas som de sju grunddimensionerna med tillhörande exponenter.
329
325
Eftersom dimensionerna måste definieras så tydligt att det går att göra ett
330
-
program av det tvingas man att ge struktur till dem. Det ger ett nytt,
326
+
program av det tvingas struktur att ges till dem, vilket ger ett nytt,
331
327
välstrukturerat och förhoppningsvis enklare sätt att se på dem, vilket vi själva
332
328
tycker är meningsfullt.
333
329
@@ -339,9 +335,9 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
339
335
akademiskt intresse för att använda domänspecifika språk i syfte att lära ut,
340
336
och att det inte bara är fysik och matematik som är lämpliga områden utan att
341
337
den generella idén som vi presenterar i denna rapport även går att applicera på
342
-
andra områden. Nyttan med att strukturera upp områden i väl avgränsade och
338
+
andra områden. Nyttan att strukturera upp områden i väl avgränsade och
343
339
tydligt definierade delar kanske anses som uppenbar, men frågan om med vilket
344
-
verktyg man ska utföra detta är inte lika uppenbar. Vi hävdar att domänspecifika
340
+
verktyg som ska utföra detta är inte lika uppenbar. Vi hävdar att domänspecifika
345
341
språk är ett sådant verktyg och att det även är ett mycket bra verktyg att
346
342
använda sig av.
347
343
@@ -360,15 +356,15 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
360
356
kreativitet och nytänkande för att bygga upp modeller. Eftersom en stor del i fysik är just problemlösning
361
357
kan denna del inte fångas upp med domänspecifika språk. Det skulle till och med
362
358
kunna vara en nackdel att kombinera domänspecifika språk och fysik om det leder
363
-
till att man tänker alltför fyrkantigt kring fysik. Vi anser dock att
359
+
till att studenten tänker alltför fyrkantigt kring fysik. Vi anser dock att
364
360
domänspecifika språk har ett värde ihop med fysik just för dessa strukturgivande
365
361
möjligheter, även om inte alla aspekter av fysik kan täckas.
366
362
367
-
Man kan också
363
+
Det går också att
368
364
tänka sig att det finns ett värde i omsluta den kreativa problemlösningen
369
365
med ett fyrkantigt system och på så sätt stoppa problemlösaren från att göra
370
-
misstag. På ett förenklat sätt kan man säga att så länge typsystemet inte klagar
371
-
betyder det att man löser problemet på ett korrekt sätt. Igen handlar det om att se
366
+
misstag. På ett förenklat sätt går det att säga att så länge typsystemet inte klagar
367
+
betyder det att problemlösaren löser problemet på ett korrekt sätt. Igen handlar det om att se
372
368
domänspecifika språk som ``tools for thinking'' och inte att vårt
373
369
läromaterial kommer att ge alla svaren när det kommer till fysikalisk
374
370
problemlösning. Men vad det kan tillföra är en struktur som kan hjälpa
@@ -383,13 +379,12 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
383
379
läromaterial om renodlad fysik med ett lättsamt språk och nogrann förklaring av
384
380
koncepten hade säkert varit uppskattat. Khan Academy är ett sådant
385
381
exempel~\cite{khan} och som är mycket uppskattat. En annan fördel hade varit att en större målgrupp kan nås.
386
-
Men då missar man de saker domänspecifika språk bidrar med, nämligen det som
387
-
diskuterats ovan: att ge struktur och att lära ut ett rigoröst tankesätt. Man
388
-
missar också den \textit{intresseväckande} potentialen.
382
+
Men då förlorar vi de saker domänspecifika språk bidrar med, nämligen det som
383
+
diskuterats ovan: att ge struktur och att lära ut ett rigoröst tankesätt. Även den \textit{intresseväckande} potentialen försvinner.
389
384
390
-
Domänspecifika språk kan ses som ett sätt göra fysik intressantare. Tycker man
385
+
Domänspecifika språk kan ses som ett sätt göra fysik intressantare. Tycker en student
391
386
att domänspecifika språk är roligt men inte fysik skulle en överbryggning av dem
392
-
kunna leda till att man tycker fysik blir roligare. Detta genom att man ser
387
+
kunna leda till att studenten tycker att fysik blir roligare. Detta genom att hen ser
393
388
parallellerna mellan domänspecifika språk och fysik. Ett exempel är typsystemet i
394
389
Haskell och dimensioner i fysik. I bägge världarna får inte olika typer
395
390
respektive dimensioner adderas, och vid operationer behandlas de på liknande
@@ -399,13 +394,13 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
399
394
att presentera fysik på och att vi var inne på rätt spår i vår utformning av
400
395
läromaterialet, se avsnitt~\ref{sec:res_test}. Eftersom utvärderingen med
401
396
testgruppen var väldigt kort är det dock svårt att dra några säkra slutsatser
402
-
med hjälp av den. Nyttan med ett större intresse för fysik är att man
397
+
från den. Nyttan med ett större intresse för fysik är att studenten
403
398
då förhoppningsvis är mer motiverad att klara fysikkurserna.
404
399
405
400
Avslutningsvis när det kommer till de domänspecifika språkens varande eller
406
401
icke-varande
407
-
ihop med fysikundervisning anser vi att en antingen-eller syn inte är konstruktiv.
408
-
Istället kan man kombinera dem på ett mer balanserat sätt. Det kan handla om att ha
402
+
ihop med fysikundervisning anser vi att en antingen-eller syn inte är konstruktiv,
403
+
istället kan de kombineras på ett balanserat sätt. Det kan handla om att ha
409
404
vissa inslag av domänspecifika språk i en annars traditionell fysikundervisning,
410
405
och på så sätt fånga upp de delar domänspecifika språk gör bra i fysik:
411
406
strukturera, uppmuntra rigorös problemlösning och väcka intresse. Men samtidigt
@@ -465,12 +460,12 @@ \section{Etiska aspekter}
465
460
466
461
Tanken om tillgänglighet ligger även bakom valet att låta källkoden vara fritt
467
462
tillgänglig. Visserligen \textit{är} läromaterialet i princip hela källkoden, det vill säga
468
-
har man läromaterialet har man källkoden. Men att ha tillgång till källkoden
469
-
direkt har dock fördelar som att man kan följa med i versionshistoriken, man kan
463
+
har läsaren läromaterialet har den källkoden. Men att ha tillgång till källkoden
464
+
direkt har dock fördelar som att läsaren kan följa med i versionshistoriken,
470
465
se kommentarer och alternativa implementationer som inte syns i den slutgiltiga
471
466
produkten samt att det blir enklare att modifiera källkoden och lära sig om
472
-
hemsidans uppbyggnad. Det handlar om transparens, att visa att man är positiv till att andra
473
-
tittar på hur man gjort och låta dem bygga vidare på ens skapelser. Genom att
467
+
hemsidans uppbyggnad. Det handlar om transparens, att visa att skaparen är positiv till granskning
468
+
och till att låta andra bygga vidare på ens skapelser. Genom att
474
469
sluta oss till skaran som skapar öppen källkod hoppas vi att fler inom samhället
utvecklats inom detta projekt är inbäddade i programmeringsspråket
46
46
\textit{Haskell}. Haskell är ett lämpligt val eftersom det är enkelt att skapa
47
47
datatyper som bygger upp det domänspecifika språket. Att Haskell är ett
48
-
högnivåspråk är också en fördel då programmeraren slipper programmeringstekniska detaljer,
49
-
till exempel minneshantering, och istället kan fokusera på programmets innehåll
50
-
och betydelse. Slutligen gör dess mönstermatchning att de datatyper som utgör
48
+
högnivåspråk är också en fördel då programmeraren slipper programmeringstekniska detaljer som
49
+
minneshantering, och kan istället fokusera på programmets innehåll
50
+
och betydelse. Slutligen möjliggör mönstermatchning att de datatyper som utgör
51
51
det domänspecifika språket enkelt kan brytas isär och manipuleras.
52
52
53
53
För vidare läsning om domänspecifika språk rekommenderas \textit{DSL for the Uninitiated} \cite{DSLU}.
54
54
55
55
\section{Syntax, syntaxträd och semantik}\label{sec:syntax}
56
56
57
57
I samband med domänspecifika språk dyker begreppen \textit{syntax} och
58
-
\textit{semantik} upp. Syntax är reglerna för hur enheter sammanslås
59
-
, som ord, i språket till komplexa strukturer, som meningar och
58
+
\textit{semantik} upp. Syntax är reglerna för hur enheter i språket, till exempel ord och skiljetecken, sammamslås till komplexa strukturer, som meningar och
60
59
satser. Semantik är betydelsen av sådana komplexa strukturer i ett språk.
61
60
Inom aritmetik\footnote{Aritmetik är
62
61
den gren inom matematiken som behandlar räkning av tal.} är tal och
@@ -85,8 +84,10 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
85
84
86
85
Typen innehåller \textit{datakonstruktorer} för att representera
87
86
\textit{löv} (ändpunkter) och \textit{förgreningar}. I detta exempel är
88
-
\texttt{:+:} och \texttt{:*:} förgreningar. Med hjälp av dem kan summan respektive produkten av två andra uttryck uttryckas. Löven representeras av
89
-
\texttt{Const}. Det är en konstant som ej kan byggas vidare på.
87
+
\texttt{:+:} och \texttt{:*:} förgreningar. Med hjälp av dem kan summan respektive produkten av två andra uttryck uttryckas. Löven
88
+
% Löfven
89
+
representeras av
90
+
\texttt{Const}, vilket är en konstant som ej kan byggas vidare på.
90
91
91
92
Med datakonstruktorerna kan uttryck representerade av syntaxträd konstrueras. Ett exempeluttryck
92
93
från den tidigare datatypen visas i figur~\ref{fig:syntax_exempel_varde}, som visar hur det aritmetiska uttrycket $7 * (3
0 commit comments