Skip to content

Commit 5d56856

Browse files
committed
Merge branch 'master' of github.com:DSLsofMath/BScProj2018 into johan
2 parents 8ddc4af + b2a8d8c commit 5d56856

File tree

6 files changed

+103
-106
lines changed

6 files changed

+103
-106
lines changed

Rapport/include/Diskussion.tex

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ \section{Genomförandediskussion}
2121

2222
Under projektets genomförande har det gjorts flera val av teorier och metoder
2323
att använda. Självklart behöver inte dessa val vi gjorde vara de bästa.
24-
Därför kommer vi här kritisera dem och föreslå andra möjliga val. Närmare
24+
Därför kommer vi här att kritisera dem och föreslå andra möjliga val. Närmare
2525
bestämt kommer utvärderingen, urvalet och Literate Haskell diskuteras.
2626

2727
Utvärderingen som gjordes under projektet kan kritiseras på flera sätt. För det
@@ -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 inga domänspecifika språk för fysik kunde
43+
Dels kan det ha lett till att inga 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
@@ -49,24 +49,23 @@ \section{Genomförandediskussion}
4949
kunnat väljas utifrån de fysikaliska problem studenter ska lösa i Fysik för
5050
ingenjörer, till exempel lutande plan, block och talja eller momentjämvikt, och
5151
utifrån det utforma domänspecifika språk. De olika sätten att tänka vid val av
52-
områden skiljer sig åt och mest fokus under projektet har varit ur
52+
områden skiljer sig åt och mest fokus under projektet har lagts på
5353
implementationsperspektivet. Visserligen gjordes enstaka försök att tänka på det
5454
andra sättet också, men vi tyckte det var svårt att skapa några domänspecifika
5555
språk på det sättet, se avsnitt~\ref{sec:lampligt}. Vi hade dock kunnat utforska
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äna metoden som valdes för utformningen av
59+
Till sist kan man 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
6363
områden. Nackdelen är att det blir en passiv inlärning. Läsaren visas hur man
6464
kan göra utan att försöka så mycket själv. Visserligen har övningar inkluderats
65-
i läromaterialet, och läsaren uppmuntras implementera koden parallellt, men det
65+
i läromaterialet, och läsaren uppmuntras till att implementera koden parallellt, men det
6666
riskerar ändå att bli en passiv inlärning. Valet att använda Literete
6767
Haskell har definitivt bidragit till dessa passiva tendenser. Literate Haskell är
68-
inget annat än en färdig implementation fast mer väldokumenterad
69-
än en vanlig programfil. Det kan till och med vara så att Literate
68+
inget annat än en vanlig programfil fast mer väldokumenterad, som i projektets fall varit färdiga implementationer av domänspecifika språk. Det kan till och med vara så att Literate
7069
Haskell är sämre än ``bara'' Haskell, med avseende på aktivt lärande, då det är
7170
enklare att ändra och experimentera med en programfil utan dokumentation som är i vägen. Under
7271
projektets genomförande hade det därför varit av intresse att undersöka
@@ -87,7 +86,7 @@ \section{Resultatdiskussion}\label{sec:res_disk}
8786
hann vi? I avsnitt~\ref{sec:res_laromaterial} nämns att de tre grundläggande
8887
områdena dimensioner, matematisk analys och vektorer är färdiga, samt de
8988
komposita områdena partikelmekanik, gungbräda och krafter på lådor. Med andra
90-
ord har mekanik påbörjats, men inte termodynamik och vågrörelselära. Men hur mycket är
89+
ord har mekanik påbörjats, men inte termodynamik eller vågrörelselära. Men hur mycket är
9190
kvar? Det som återstår enligt oss är att tillämpa de grundläggande områdena på
9291
fler fysikaliska problem utöver gungbräda och krafter på lådor. Vi tror att de
9392
tre grundläggande områdena som är färdiga räcker. Förutom fler tillämpningar kan
@@ -108,14 +107,12 @@ \section{Resultatdiskussion}\label{sec:res_disk}
108107
dock kunnat vara ännu mer vänligt. Till exempel beskriver vi olika koncept som
109108
``väldigt enkla'' fastän läsaren kanske inte alls tycker det.
110109

111-
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 reaktioner av glädje.
110+
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.
112111

113112
Vem är detta läromaterial relevant för? Visserligen är målgruppen datastudenter, och vi har personligen dragit nytta av det,
114-
men vi tror att det kan vara relevant för fler än så. Läromaterialet
115-
kan även vara intressant för fysiklärare. Fäldt nämnde till exempel att han
116-
tyckte det rigorösa tankesätt läromaterialet skolar in läsaren i kan vara
117-
användbart även i traditionell fysikundervisning. Fysiklärare skulle därför
118-
kunna finna intresse i att undersöka hur ett sådant här läromaterial kan
113+
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
114+
tyckte att det rigorösa tankesätt läromaterialet skolar in läsaren i kan vara
115+
användbart även i traditionell fysikundervisning. Det kan därför vara intressant att undersöka hur ett sådant här läromaterial kan
119116
integreras i undervisningen.
120117

121118
En del av projektets mål var att diskutera kombinationen av
@@ -182,7 +179,7 @@ \subsection{Om läromaterialets fokus på matematik och Haskell snarare än
182179
av domänspecifika språk. Men betyder det att det är idealt för implementering
183180
av fysik? Kanske ett objektorienterat språk som Java hade passat bättre. Att
184181
använda ett språk som inte har en lika stark koppling till ren matematik som
185-
Haskell har hade kanske lett till att det stora fokuset inte låg på matematiken
182+
Haskell hade kanske lett till att det stora fokuset inte låg på matematiken
186183
bakom fysiken, utan istället på fysiken framför matematiken.
187184

188185
\subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
@@ -218,9 +215,8 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
218215
Att notera ur tabell~\ref{tab:data_och_ops} är att operationerna inom ett område
219216
görs på en och samma slags data, och sedan resulterar i samma slags data igen.
220217
Det här exemplifieras i matematisk analys, där derivering är en operation som
221-
görs på en funktion och sedan resulterar i en annan funktion. Detta illustreras
222-
i figur~\ref{fig:analys_op_exempel} där man ser hur derivering av en funktion
223-
resulterar i en ny funktion.
218+
görs på en funktion och resulterar i en annan funktion. Detta illustreras
219+
i figur~\ref{fig:analys_op_exempel}.
224220

225221
\begin{figure}[tph]
226222
\begin{mdframed}
@@ -276,8 +272,8 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
276272
lämpat för ett domänspecifika språk?
277273

278274
När man skapar ett domänspecifikt språk till ett område gör man det genom att
279-
identifiera syntaxen som används, vad är det för data som modelleras,
280-
vilka operationer som görs på denna data och vad finns det för lagar och samband
275+
identifiera syntaxen som används, datan som modelleras,
276+
vilka operationer som görs på denna data och vad det finns för lagar och samband
281277
som gäller för dessa. Detta sätt att arbeta fungerar bra för områden som är
282278
generella och som går att modellera på ett sätt som tillåter vidareutveckling, såsom
283279
vektorer i flera dimensioner eller vektorer vars komponenter kan vara av vilken
@@ -331,9 +327,9 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
331327
språken något i detta läromaterial eller hade det varit bättre att enbart hålla
332328
sig till fysik? Dessa tre frågor diskuteras nedan.
333329

334-
Domänspecifika språk kan betraktas som ``tools for thinking''\footnote{Uttryckt i Patrik Janssons egna ord. Han är föreläsare i DSLsofMath-kursen.}. Med det menas att domänspecifika språk kan användas
330+
Domänspecifika språk kan betraktas som ``tools for thinking''\footnote{Uttryckt i Patrik Janssons egna ord, han är föreläsare i DSLsofMath-kursen.}. Med det menas att domänspecifika språk kan användas
335331
till att strukturera ett område så att det blir enklare att få en överblick och
336-
enklare att förstå det. Dimensioner i läromaterialet är ett bra exempel på
332+
förstå det. Dimensioner i läromaterialet är ett bra exempel på
337333
detta, se även avsnitt~\ref{sec:grund_impl}. Där konstateras att en godtycklig
338334
dimension kan skrivas som de sju grunddimensionerna med tillhörande exponenter.
339335
Eftersom dimensionerna måste definieras så tydligt att det går att göra ett
@@ -345,7 +341,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
345341
detta~\cite{kandidat2016}. Det kandidatarbetet resulterade också i ett
346342
läromaterial. Skillnaden är att det handlade om signallära medan detta handlar
347343
om fysik. Grundidėn är dock densamma: att använda domänspecifika språk för att
348-
ge struktur till ett annat område. Detta tycker vi visar att det finns ett
344+
ge struktur till ett annat område. Detta tycker vi visar att det finns ett
349345
akademiskt intresse för att använda domänspecifika språk i syfte att lära ut,
350346
och att det inte bara är fysik och matematik som är lämpliga områden utan att
351347
den generella idén som vi presenterar i denna rapport även går att applicera på
@@ -375,7 +371,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
375371
möjligheter, även om inte alla aspekter av fysik kan täckas.
376372

377373
Man kan också
378-
tänka sig att det finns ett värde i ett fånga upp den kreativa problemlösningen
374+
tänka sig att det finns ett värde i omsluta den kreativa problemlösningen
379375
med ett fyrkantigt system och på så sätt stoppa problemlösaren från att göra
380376
misstag. På ett förenklat sätt kan man säga att så länge typsystemet inte klagar
381377
betyder det att man löser problemet på ett korrekt sätt. Igen handlar det om att se
@@ -387,7 +383,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
387383

388384
Hittills har domänspecifika språk framförts som ett sätt att strukturera fysik.
389385
Projektets läromaterial är ett exempel på ett sådant försök. Men läromaterialet
390-
har även haft två andra drag, förutom domänspecifika språk, som skiljer sig från
386+
har även haft två andra drag förutom domänspecifika språk, som skiljer sig från
391387
traditionell fysikundervisning, nämligen ett lättillgängligt språk och en
392388
nogrann genomgång av koncepten. Hade inte detta räckt? Hade fysiken i sig inte
393389
kunnat förklarats bättre om den haft allt fokus?
@@ -408,15 +404,15 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
408404
respektive dimensioner adderas, och vid operationer behandlas de på liknande
409405
sätt. Denna likhet påvisades i läromaterialet genom att implementera fysikaliska
410406
dimensioner i Haskells typsystem, se avsnitt~\ref{sec:res_laromaterial}. Denna
411-
tanke stöds av att även testgruppen tyckte läromaterialet var ett intressant sätt
407+
tanke stöds även av att testgruppen tyckte läromaterialet var ett intressant sätt
412408
att presentera fysik på och att vi var inne på rätt spår i vår utformning av
413409
läromaterialet, se avsnitt~\ref{sec:res_test}. Eftersom utvärderingen med
414410
testgruppen var väldigt kort är det dock svårt att dra några säkra slutsatser
415411
med hjälp av den. Nyttan med ett större intresse för fysik är att man
416412
då förhoppningsvis är mer motiverad att klara fysikkurserna.
417413

418-
Avslutningsvis när det kommer till domänspecifika språks vara eller icke-vara
419-
ihop med fysikundervisning anser vi att en antingen-eller syn inte är bra.
414+
Avslutningsvis när det kommer till de domänspecifika språkens vara eller icke-vara
415+
ihop med fysikundervisning anser vi att en antingen-eller syn inte är konstruktiv.
420416
Istället kan man kombinera dem på ett balanserat sätt. Det kan handla om att ha
421417
vissa inslag av domänspecifika språk i en annars traditionell fysikundervisning,
422418
och på så sätt fånga upp de delar domänspecifika språk gör bra i fysik:
@@ -430,10 +426,8 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
430426
områdena analys och vektorer. Dessa områden används sedan för att koda upp och
431427
lösa uppgifter av mer \textit{fysikaliska} slag, till exempel krafter på lådor. Med andra ord hanteras fysikaliska områden genom att \textit{tillämpa} matematiska domänspecifika språk och inte genom att \textit{konstruera} fysikaliska domänspecifika språk. En vidareutveckling
432428
hade därmed varit att göra precis det, att inte tillämpa matematiska
433-
domänspecifika språk utan att göra fysikaliska domänspecifika språk. Det kan vara
434-
saker som ett språk för ett lutande plans komponenter. Det kan vara ett
435-
språk för vilka krafter som verkar på fysikaliska kroppar i mekanikproblem.
436-
Det kan till och med vara ett domänspecifikt språk för något så abstrakt som
429+
domänspecifika språk utan att göra fysikaliska domänspecifika språk. Det kan till exempel vara
430+
saker som ett språk för ett lutande plans komponenter, ett språk för vilka krafter som verkar på fysikaliska kroppar i mekanikproblem eller till och med ett språk för något så abstrakt som
437431
fysikalisk problemlösning i allmänhet. Vi vet inte hur ett domänspecifikt språk
438432
av detta slag kan se ut, vilket är anledningen till att vi gick den andra vägen,
439433
som vi diskuterade i avsnitt~\ref{sec:fpf}. Att ger mer fysik-orienterade
@@ -446,22 +440,22 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
446440
genom en kombination av detta slag och kanske därför studerar mer i fysikkursen.
447441
Det hade också varit intressant att undersöka om det rigorösa tankesätt
448442
domänspecifika språk förmedlar (se avsnitt~\ref{sec:bara_fysik}) spiller över och
449-
gör nytta inom traditionell fysikundervisning. Det är inom dessa två frågor det
443+
gör nytta inom traditionell fysikundervisning. Det är för dessa två frågor det
450444
främsta behovet av ytterligare kunskaper ligger. Ett av målen med detta projekt var trots allt att förbättra fysikkunskaper (genom ökat intresse eller mer
451-
rigorösitet) och då är det av yttersta vikt att undersöka om det faktiskt blir
445+
rigorösitet) och då är det viktigt att undersöka om det faktiskt blir
452446
så i praktiken.
453447

454448
Även det befintliga läromaterialet kan byggas vidare på. I sin nuvarande
455-
form behandlas varken termodynamik eller vågrörelselära alls. Dessutom lär
456-
det finnas aspekter inom den klassiska mekaniken som fattas.
449+
form behandlas varken termodynamik eller vågrörelselära alls. Dessutom
450+
finns det aspekter inom den klassiska mekaniken som fattas.
457451

458452
Slutligen finns det en mycket intressant vidareutveckling som inte alls har
459453
behandlats i detta projekt, nämligen att använda matematiska och fysikaliska domänspecifika språk som
460454
ett syntaktiskt lager mellan användare och en underliggande komplex kodbas. I
461455
många fall kan dessa kodbaser vara implementerade på ointuitivt sätt och utan
462456
någon typsäkerhet. I dessa fall kan det vara mycket användbart med ett
463-
domänspecifikt språk med hög typsäkerhet som möjliggör för användaren att
464-
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ämde överens 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:
457+
domänspecifikt språk med hög typsäkerhet som tvingar användaren att
458+
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 utan att Matlab klagar. Uttrycket är korrekt men semantiken är fel. Med ett syntaktiskt lager som kräver att de fysikaliska dimensionerna stämmer överens hade vissa misstag kunnat upptäckas vid kompilering istället för att kanske inte upptäckas alls. Denna idé framfördes till oss av Jeff Chen\footnote{Jeffs sida på Chalmers:
465459
\url{http://www.cse.chalmers.se/\~yutingc/}.}
466460
på Chalmers, men är även någonting som har genomförts på andra områden, till
467461
exempel inom molekylär dynamik~\cite{MD}.
@@ -498,6 +492,6 @@ \section{Etiska aspekter}
498492
grund av en impuls att göra något som kan vara mer stimulerande. Genom att
499493
använda ett enkelt språk, roliga formuleringar och bilder, minskar chansen för
500494
flyktförsök. Detta kan tänkas vara extra viktigt för yngre elever vars kontroll
501-
av uppmärksamhet inte är lika utvecklat som hos äldre men som ändå är
495+
av uppmärksamhet inte är lika utvecklad som hos äldre, men som ändå är
502496
intresserade av fysik på en mer avancerad nivå än de studerar i sin ordinarie
503497
undervisning.

Rapport/include/Introduktion.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ \section{Bakgrund}
3737
område. Detta område kan vara databashantering, algebraiska uttryck eller till
3838
och med fysik. Språket kan antingen vara implementerat inuti ett annat
3939
programmeringsspråk eller implementerat helt fristående. I kursen och projektet
40-
är de implementerat i Haskell.
40+
är de implementerade i Haskell.
4141

4242
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
4343
presenterar kopplingar mellan matematik och programmering ska projektet på motsvarande sätt visa på kopplingar mellan programmering och fysik och därmed

0 commit comments

Comments
 (0)