Skip to content

Commit c76a90d

Browse files
committed
2 parents 473756c + c75f73c commit c76a90d

File tree

5 files changed

+56
-53
lines changed

5 files changed

+56
-53
lines changed

Rapport/include/Diskussion.tex

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ \chapter{Diskussion}
1212
triviala implementationer av formler, till exempel att formlen för
1313
rörelseenergi, $E_k = \frac{mv^2}{2}$, kan skrivas som \texttt{ek m v = m * v *
1414
v / 2} i Haskell. Detta experimenterande ledde till att
15-
vi kunde se en slags strategi för hur man kan kombinera dem, vilket blev den
15+
vi såg en slags strategi för hur de kan kombineras, vilket blev den
1616
metodik som beskrivs i avsnitt~\ref{sec:konstruktion}. Det vi vill poängtera är
1717
med andra ord att det har varit svårt och oklart hur projektet skulle föras
1818
framåt eftersom det inte funnits någon tydlig väg att följa.
@@ -56,12 +56,11 @@ \section{Genomförandediskussion}
5656
detta tankesätt grundligare än vad vi gjort, istället för att avfärda det som
5757
ett svårare sätt att gå till väga.
5858

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
6060
läromaterialet, nämligen att skriva varje kapitel som en lång, sammanhängande,
6161
löpande text. Lärotexten har skrivits som en berättelse om hur ett
6262
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
6564
i läromaterialet, och läsaren uppmuntras till att implementera koden parallellt, men det
6665
riskerar ändå att bli en passiv inlärning. Valet att använda Literete
6766
Haskell har definitivt bidragit till dessa passiva tendenser. Literate Haskell är
@@ -71,9 +70,7 @@ \section{Genomförandediskussion}
7170
projektets genomförande hade det därför varit av intresse att undersöka
7271
alternativa sätt att utforma lärotexten som uppmuntrat ett mer aktivt lärande.
7372
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.
7774

7875
\section{Resultatdiskussion}\label{sec:res_disk}
7976

@@ -88,8 +85,7 @@ \section{Resultatdiskussion}\label{sec:res_disk}
8885
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å
8986
fler fysikaliska problem utöver gungbräda och krafter på lådor. Vi tror att de
9087
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
9389
att nämna att vi är mycket nöjda med det material som vi har producerat. Våra
9490
kapitel är väl avgränsade, utformade och implementerade på det sätt som vi
9591
anser att de bör.
@@ -106,7 +102,7 @@ \section{Resultatdiskussion}\label{sec:res_disk}
106102
dock kunnat vara vänligare. Till exempel beskriver vi olika koncept som
107103
``väldigt enkla'' fastän läsaren kanske inte alls tycker det.
108104

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.
110106

111107
Läromaterialet kan vara relevanta för flera grupper. Visserligen är målgruppen datastudenter, och vi har personligen dragit nytta av det,
112108
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}
261257
i projektet, nämligen valet att använda Haskell. I avsnitt~\ref{sec:syntax}
262258
beskriver vi begreppen syntax, semantik och syntaxträd och dess koppling till
263259
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
265261
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
266262
implementation kanske sett helt annorlunda ut.
267263

268264
I kontrast till dessa lämpliga områden står mindre lämpliga områden (eller
269265
å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.
270266

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
272268
identifiera syntaxen som används, datan som modelleras,
273269
vilka operationer som används på denna data och vad det finns för lagar och samband
274270
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}
292288
Samband och ekvationer av detta slag kan visserligen modelleras som ett domänspecifikt
293289
språk, men vi menar att nyttan inte blir stor med det eftersom allt vi då gör är
294290
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
297293
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å.
299295
Alldeles för mycket fokus skulle hamna på algoritmer istället för fysik. Vi
300296
anser även att en ekvationslösare inte hjälper till att lära ut fysik, tvärtom
301297
döljer den matematiken som ligger bakom svaret.
302298

303299
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
306302
därför områden som lutande plan genom att lösa exempeluppgifter modellerade i de
307303
tidigare domänspecifika språk. De tidigare språken tillhandahåller de matematiska
308304
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
327323
detta, se även avsnitt~\ref{sec:grund_impl}. Där konstateras att en godtycklig
328324
dimension kan skrivas som de sju grunddimensionerna med tillhörande exponenter.
329325
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,
331327
välstrukturerat och förhoppningsvis enklare sätt att se på dem, vilket vi själva
332328
tycker är meningsfullt.
333329

@@ -339,9 +335,9 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
339335
akademiskt intresse för att använda domänspecifika språk i syfte att lära ut,
340336
och att det inte bara är fysik och matematik som är lämpliga områden utan att
341337
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
343339
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
345341
språk är ett sådant verktyg och att det även är ett mycket bra verktyg att
346342
använda sig av.
347343

@@ -360,15 +356,15 @@ \subsection{Domänspecifika språk, fysik och pedagogiska aspekter}\label{sec:ba
360356
kreativitet och nytänkande för att bygga upp modeller. Eftersom en stor del i fysik är just problemlösning
361357
kan denna del inte fångas upp med domänspecifika språk. Det skulle till och med
362358
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
364360
domänspecifika språk har ett värde ihop med fysik just för dessa strukturgivande
365361
möjligheter, även om inte alla aspekter av fysik kan täckas.
366362

367-
Man kan också
363+
Det går också att
368364
tänka sig att det finns ett värde i omsluta den kreativa problemlösningen
369365
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
372368
domänspecifika språk som ``tools for thinking'' och inte att vårt
373369
läromaterial kommer att ge alla svaren när det kommer till fysikalisk
374370
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
383379
läromaterial om renodlad fysik med ett lättsamt språk och nogrann förklaring av
384380
koncepten hade säkert varit uppskattat. Khan Academy är ett sådant
385381
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.
389384

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
391386
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
393388
parallellerna mellan domänspecifika språk och fysik. Ett exempel är typsystemet i
394389
Haskell och dimensioner i fysik. I bägge världarna får inte olika typer
395390
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
399394
att presentera fysik på och att vi var inne på rätt spår i vår utformning av
400395
läromaterialet, se avsnitt~\ref{sec:res_test}. Eftersom utvärderingen med
401396
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
403398
då förhoppningsvis är mer motiverad att klara fysikkurserna.
404399

405400
Avslutningsvis när det kommer till de domänspecifika språkens varande eller
406401
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
409404
vissa inslag av domänspecifika språk i en annars traditionell fysikundervisning,
410405
och på så sätt fånga upp de delar domänspecifika språk gör bra i fysik:
411406
strukturera, uppmuntra rigorös problemlösning och väcka intresse. Men samtidigt
@@ -465,12 +460,12 @@ \section{Etiska aspekter}
465460

466461
Tanken om tillgänglighet ligger även bakom valet att låta källkoden vara fritt
467462
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,
470465
se kommentarer och alternativa implementationer som inte syns i den slutgiltiga
471466
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
474469
sluta oss till skaran som skapar öppen källkod hoppas vi att fler inom samhället
475470
i stort ska gå över till denna modell.
476471

Rapport/include/Resultat.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
5757

5858
\textit{Dimensioner} behandlar fysikaliska dimensioner, storheter och enheter inom fysiken.
5959
Fysikaliska dimensioner införs på typnivå i Haskell för att visa likheten mellan
60-
Haskells typsystem och hur dimensioner måste hanteras inom fysiken.
60+
Haskells typsystem och hur dimensioner hanteras inom fysiken.
6161
Typnivåprogrammering\footnote{Vanligtvis manipuleras \textit{värden} när
6262
programmerering sker i Haskell och andra språk. Typnivåprogrammering är precis som
63-
vanlig programmering med skillnaden att den sker på typnivån, det vill säga,
63+
vanlig programmering med skillnaden att den sker på typnivån, det vill säga, att
6464
typer modifieras. Läromaterialet~\cite{LYAP} hänvisas till för en utförligare
6565
förklaring.} används för att göra likheterna så tydliga som möjligt.
6666

Rapport/include/Teori.tex

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ \section{Domänspecifika språk}
1010
Ett domänspecifikt språk är ett språk som är avgränsat till en specifik domän.
1111
Nyckelorden är språk, specifik och domän. En domän är ett område, till exempel
1212
textformatering eller matlagning. Specifikt syftar det på att det är \textit{just
13-
detta} område fokus läggs på. Med språk menas ett sätt att uttrycka
13+
detta} område som fokus läggs på. Med språk menas ett sätt att uttrycka
1414
saker inom domänen. Svenska och Java är två exempel på språk.
1515

1616
Domänspecifika språk är vanligt förekommande i programmeringssammanhang. HTML är
@@ -22,7 +22,7 @@ \section{Domänspecifika språk}
2222
Domänspecifika språk används inte bara i programmering utan förekommer även i
2323
andra mer vardagliga sammanhang. Inom domänen matlagning är steka, grilla och
2424
fritera användbara ord. Likaså inom domänen ridning är grimma, box och galopp
25-
användbara ord. Befinner användaren sig inom domänen vet den vad som menas med grimma
25+
användbara ord. Är personen bekant med domänen vet den vad som menas med grimma
2626
och det är ett kort och väldefinierat sätt att uttrycka sig. Men detta språk (här
2727
i form av ord och begrepp) blir svårtolkat utanför domänen. Ett recept kan inte
2828
förklaras i termer av grimmor, boxar och galopper.
@@ -45,18 +45,17 @@ \section{Domänspecifika språk}
4545
utvecklats inom detta projekt är inbäddade i programmeringsspråket
4646
\textit{Haskell}. Haskell är ett lämpligt val eftersom det är enkelt att skapa
4747
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
5151
det domänspecifika språket enkelt kan brytas isär och manipuleras.
5252

5353
För vidare läsning om domänspecifika språk rekommenderas \textit{DSL for the Uninitiated} \cite{DSLU}.
5454

5555
\section{Syntax, syntaxträd och semantik}\label{sec:syntax}
5656

5757
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
6059
satser. Semantik är betydelsen av sådana komplexa strukturer i ett språk.
6160
Inom aritmetik\footnote{Aritmetik är
6261
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}
8584

8685
Typen innehåller \textit{datakonstruktorer} för att representera
8786
\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å.
9091

9192
Med datakonstruktorerna kan uttryck representerade av syntaxträd konstrueras. Ett exempeluttryck
9293
från den tidigare datatypen visas i figur~\ref{fig:syntax_exempel_varde}, som visar hur det aritmetiska uttrycket $7 * (3

0 commit comments

Comments
 (0)