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
kunnat väljas utifrån de fysikaliska problem studenter ska lösa i Fysik för
50
50
ingenjörer, till exempel lutande plan, block och talja eller momentjämvikt, och
51
51
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å
53
53
implementationsperspektivet. Visserligen gjordes enstaka försök att tänka på det
54
54
andra sättet också, men vi tyckte det var svårt att skapa några domänspecifika
55
55
språk på det sättet, se avsnitt~\ref{sec:lampligt}. Vi hade dock kunnat utforska
56
56
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äna metoden som valdes för utformningen av
59
+
Till sist kan man 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
63
områden. Nackdelen är att det blir en passiv inlärning. Läsaren visas hur man
64
64
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
66
66
riskerar ändå att bli en passiv inlärning. Valet att använda Literete
67
67
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
70
69
Haskell är sämre än ``bara'' Haskell, med avseende på aktivt lärande, då det är
71
70
enklare att ändra och experimentera med en programfil utan dokumentation som är i vägen. Under
72
71
projektets genomförande hade det därför varit av intresse att undersöka
dock kunnat vara ännu mer vänligt. Till exempel beskriver vi olika koncept som
109
108
``väldigt enkla'' fastän läsaren kanske inte alls tycker det.
110
109
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.
112
111
113
112
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
119
116
integreras i undervisningen.
120
117
121
118
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
182
179
av domänspecifika språk. Men betyder det att det är idealt för implementering
183
180
av fysik? Kanske ett objektorienterat språk som Java hade passat bättre. Att
184
181
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
186
183
bakom fysiken, utan istället på fysiken framför matematiken.
187
184
188
185
\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}
218
215
Att notera ur tabell~\ref{tab:data_och_ops} är att operationerna inom ett område
219
216
görs på en och samma slags data, och sedan resulterar i samma slags data igen.
220
217
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}.
224
220
225
221
\begin{figure}[tph]
226
222
\begin{mdframed}
@@ -276,8 +272,8 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
276
272
lämpat för ett domänspecifika språk?
277
273
278
274
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
281
277
som gäller för dessa. Detta sätt att arbeta fungerar bra för områden som är
282
278
generella och som går att modellera på ett sätt som tillåter vidareutveckling, såsom
283
279
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?}\
331
327
språken något i detta läromaterial eller hade det varit bättre att enbart hålla
332
328
sig till fysik? Dessa tre frågor diskuteras nedan.
333
329
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
335
331
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å
337
333
detta, se även avsnitt~\ref{sec:grund_impl}. Där konstateras att en godtycklig
338
334
dimension kan skrivas som de sju grunddimensionerna med tillhörande exponenter.
339
335
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?}\
345
341
detta~\cite{kandidat2016}. Det kandidatarbetet resulterade också i ett
346
342
läromaterial. Skillnaden är att det handlade om signallära medan detta handlar
347
343
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 på att det finns ett
349
345
akademiskt intresse för att använda domänspecifika språk i syfte att lära ut,
350
346
och att det inte bara är fysik och matematik som är lämpliga områden utan att
351
347
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?}\
375
371
möjligheter, även om inte alla aspekter av fysik kan täckas.
376
372
377
373
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
379
375
med ett fyrkantigt system och på så sätt stoppa problemlösaren från att göra
380
376
misstag. På ett förenklat sätt kan man säga att så länge typsystemet inte klagar
381
377
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?}\
387
383
388
384
Hittills har domänspecifika språk framförts som ett sätt att strukturera fysik.
389
385
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
391
387
traditionell fysikundervisning, nämligen ett lättillgängligt språk och en
392
388
nogrann genomgång av koncepten. Hade inte detta räckt? Hade fysiken i sig inte
393
389
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?}\
408
404
respektive dimensioner adderas, och vid operationer behandlas de på liknande
409
405
sätt. Denna likhet påvisades i läromaterialet genom att implementera fysikaliska
410
406
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
412
408
att presentera fysik på och att vi var inne på rätt spår i vår utformning av
413
409
läromaterialet, se avsnitt~\ref{sec:res_test}. Eftersom utvärderingen med
414
410
testgruppen var väldigt kort är det dock svårt att dra några säkra slutsatser
415
411
med hjälp av den. Nyttan med ett större intresse för fysik är att man
416
412
då förhoppningsvis är mer motiverad att klara fysikkurserna.
417
413
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.
420
416
Istället kan man kombinera dem på ett balanserat sätt. Det kan handla om att ha
421
417
vissa inslag av domänspecifika språk i en annars traditionell fysikundervisning,
422
418
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}
430
426
områdena analys och vektorer. Dessa områden används sedan för att koda upp och
431
427
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
432
428
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
437
431
fysikalisk problemlösning i allmänhet. Vi vet inte hur ett domänspecifikt språk
438
432
av detta slag kan se ut, vilket är anledningen till att vi gick den andra vägen,
439
433
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}
446
440
genom en kombination av detta slag och kanske därför studerar mer i fysikkursen.
447
441
Det hade också varit intressant att undersöka om det rigorösa tankesätt
448
442
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
450
444
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
452
446
så i praktiken.
453
447
454
448
Ä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.
457
451
458
452
Slutligen finns det en mycket intressant vidareutveckling som inte alls har
459
453
behandlats i detta projekt, nämligen att använda matematiska och fysikaliska domänspecifika språk som
460
454
ett syntaktiskt lager mellan användare och en underliggande komplex kodbas. I
461
455
många fall kan dessa kodbaser vara implementerade på ointuitivt sätt och utan
462
456
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:
465
459
\url{http://www.cse.chalmers.se/\~yutingc/}.}
466
460
på Chalmers, men är även någonting som har genomförts på andra områden, till
467
461
exempel inom molekylär dynamik~\cite{MD}.
@@ -498,6 +492,6 @@ \section{Etiska aspekter}
498
492
grund av en impuls att göra något som kan vara mer stimulerande. Genom att
499
493
använda ett enkelt språk, roliga formuleringar och bilder, minskar chansen för
500
494
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
502
496
intresserade av fysik på en mer avancerad nivå än de studerar i sin ordinarie
Copy file name to clipboardExpand all lines: Rapport/include/Introduktion.tex
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ \section{Bakgrund}
37
37
område. Detta område kan vara databashantering, algebraiska uttryck eller till
38
38
och med fysik. Språket kan antingen vara implementerat inuti ett annat
39
39
programmeringsspråk eller implementerat helt fristående. I kursen och projektet
40
-
är de implementerat i Haskell.
40
+
är de implementerade i Haskell.
41
41
42
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
43
43
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