Skip to content

Commit 5521a16

Browse files
committed
2 parents 36b0d26 + 123ba57 commit 5521a16

File tree

14 files changed

+110
-117
lines changed

14 files changed

+110
-117
lines changed

README.md

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,3 @@ Medlemmar: Oskar, Erik, ~~Daniel~~, Björn, Johan
1616
* 24/5 (10:35) : Muntliga slutredovisning och opposition & Avtal om publicering, lämnas in i samband med presentationen
1717
* 25/5 : Egen utvärdering på blankett till handledaren.
1818
* 1/6 : Deadline inlämning av slutrapport, elektronisk form, med införande av opponenternas kommentarer.
19-
20-
21-
## Kvar på rapporten
22-
23-
Börja gärna innan. Men på torsdagen den 19 försöker vi göra klart dem.
24-
25-
Gör en överstrykning på saker när de är klara.
26-
27-
- Annat
28-
- Titel och framsidebild
29-
- **O** Formalia
30-
- **J** Sammandrag
31-
- **E** Översätt sammandrag till abstract
32-
- **B** Att böra på slutsatser
33-
- Slutsatser
34-
- Introduktion
35-
- Teori
36-
- Metod
37-
- Resultat
38-
- Diskussion
39-
40-
41-
42-
43-
44-
45-
46-
47-
48-
49-

Rapport/include/Diskussion.tex

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ \section{Genomförandediskussion}
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
28-
första bestod testgruppen av enbart tre stycken. Fler
28+
första bestod testgruppen av enbart tre personer. Fler
2929
personer hade krävts för att få ett mindre snävt underlag. För det andra hölls
3030
utvärderingen under en ytterst kort tid, ungefär en timme. I början av den
3131
timmen såg de läromaterialet för första gången och resterande tid läste
@@ -56,7 +56,7 @@ \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 man kritisera den allmäna 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
@@ -83,11 +83,11 @@ \section{Resultatdiskussion}\label{sec:res_disk}
8383
kombinationen av domänspecifika språk och fysik.
8484

8585
I projektets mål och avgränsningar stod det att vi skulle börja med klassisk
86-
mekanik, för att i mån av tid även behandla termodynamik och våglära. Hur långt
86+
mekanik, för att i mån av tid även behandla termodynamik och vågrörelselära. Hur långt
8787
hann vi? I avsnitt~\ref{sec:res_laromaterial} nämns att de tre grundläggande
8888
områdena dimensioner, matematisk analys och vektorer är färdiga, samt de
8989
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åglära. Men hur mycket är
90+
ord har mekanik påbörjats, men inte termodynamik och vågrörelselära. Men hur mycket är
9191
kvar? Det som återstår enligt oss är att tillämpa de grundläggande områdena på
9292
fler fysikaliska problem utöver gungbräda och krafter på lådor. Vi tror att de
9393
tre grundläggande områdena som är färdiga räcker. Förutom fler tillämpningar kan
@@ -108,6 +108,8 @@ \section{Resultatdiskussion}\label{sec:res_disk}
108108
dock kunnat vara ännu mer vänligt. Till exempel beskriver vi olika koncept som
109109
``väldigt enkla'' fastän läsaren kanske inte alls tycker det.
110110

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.
112+
111113
Vem är detta läromaterial relevant för? Visserligen är målgruppen datastudenter, och vi har personligen dragit nytta av det,
112114
men vi tror att det kan vara relevant för fler än så. Läromaterialet
113115
kan även vara intressant för fysiklärare. Fäldt nämnde till exempel att han
@@ -194,24 +196,28 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
194196
och lämpar sig därmed väl för implementering i Haskell som är ett språk med nära
195197
anknytning till matematik. En annan sak som dessa väl lämpade områden hade
196198
gemensamt var en tydlig syntax och en fix struktur som bestod av ``data och
197-
operationer''. Figur~\ref{fig:data_och_ops} visar några exempel på områden med
199+
operationer''. Tabell~\ref{tab:data_och_ops} visar några exempel på områden med
198200
sina data och operationer.
199201

202+
\captionsetup[figure]{name=Tabell}
203+
200204
\begin{figure}[tph]
201205
\centering
206+
\caption{Exempel på data och operationer i några domänspecifikaspråk.}\label{tab:data_och_ops}
202207
\begin{tabular}{l|l}
203208
\toprule
204209
DSL / data & Exempel på operationer \\ \midrule
205210
Dimensioner & Multiplikation, division \\
206211
Vektorer & Addition, skalärprodukt \\
207212
Analys, funktioner & Derivera, multiplicera \\ \bottomrule
208213
\end{tabular}
209-
\caption{Exempeltabell över data och operationer i några domänspecifikaspråk.}\label{fig:data_och_ops}
210214
\end{figure}
211215

212-
Att notera ur figur~\ref{fig:data_och_ops} är att operationerna inom ett område
216+
\captionsetup[figure]{name=Figur}
217+
218+
Att notera ur tabell~\ref{tab:data_och_ops} är att operationerna inom ett område
213219
görs på en och samma slags data, och sedan resulterar i samma slags data igen.
214-
Det här exemplifieras i matematisk analys, där derivering är en operation, som
220+
Det här exemplifieras i matematisk analys, där derivering är en operation som
215221
görs på en funktion och sedan resulterar i en annan funktion. Detta illustreras
216222
i figur~\ref{fig:analys_op_exempel} där man ser hur derivering av en funktion
217223
resulterar i en ny funktion.
@@ -273,11 +279,11 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
273279
identifiera syntaxen som används, vad är det för data som modelleras,
274280
vilka operationer som görs på denna data och vad finns det för lagar och samband
275281
som gäller för dessa. Detta sätt att arbeta fungerar bra för områden som är
276-
generella och som går att modellera på ett som tillåter vidareutveckling, såsom
282+
generella och som går att modellera på ett sätt som tillåter vidareutveckling, såsom
277283
vektorer i flera dimensioner eller vektorer vars komponenter kan vara av vilken
278284
typ som helst.
279285

280-
Ett exempel på ett område som inte har några tydliga data och operationer är just
286+
Ett exempel på ett område som inte har några tydliga data och operationer är
281287
lutande plan. Ett sådant område har istället teoretiska samband som relaterar
282288
olika egenskaper i systemet till varandra. Ett sådant samband är till exempel $a
283289
= g \cdot \sin(v)$ för det lutande planet i figur~\ref{fig:lutande_plan}.
@@ -308,7 +314,7 @@ \subsection{Vilka områden passar domänspecifika språk?}\label{sec:lampligt}
308314
tidigare domänspecifika språk. De tidigare språken tillhandahåller de matematiska
309315
verktyg som behövs för att koda upp lösningar av problem. Därav innehåller det
310316
resulterande läromaterialet, som beskrivs i avsnitt~\ref{sec:res_laromaterial},
311-
inga domänspecifika språk för fysik.
317+
inga domänspecifika språk för fysikaliska problem.
312318

313319
Att vissa områden var mindre lämpliga var ett oväntat resultat i projektets
314320
genomförande. Vid start trodde vi att det skulle gå att göra domänspecifika
@@ -351,7 +357,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
351357

352358
En annan aspekt är att när de domänspecifika språken används till fysikalisk
353359
problemlösning måste det ske enligt de regler som ställdes upp när de
354-
domänspecifika språken definierades Det går med andra ord inte att fuska och ta
360+
domänspecifika språken definierades. Det går med andra ord inte att fuska och ta
355361
genvägar i beräkningarna. Detta tankesätt tycker Fäldt, se
356362
avsnitt~\ref{sec:res_ake}, är en mycket bra aspekt som förmedlas med att
357363
presentera fysik på detta sätt. Studenten skolas in i att tänka i rigorösa och
@@ -406,7 +412,7 @@ \subsection{Gör domänspecifika språk att fysik blir mer lättförståeligt?}\
406412
att presentera fysik på och att vi var inne på rätt spår i vår utformning av
407413
läromaterialet, se avsnitt~\ref{sec:res_test}. Eftersom utvärderingen med
408414
testgruppen var väldigt kort är det dock svårt att dra några säkra slutsatser
409-
med hjälp av utvärderingen. Nyttan med ett större intresse för fysik är att man
415+
med hjälp av den. Nyttan med ett större intresse för fysik är att man
410416
då förhoppningsvis är mer motiverad att klara fysikkurserna.
411417

412418
Avslutningsvis när det kommer till domänspecifika språks vara eller icke-vara
@@ -422,7 +428,7 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
422428

423429
Läromaterialet innehåller domänspecifika språk för de \textit{matematiska}
424430
områdena analys och vektorer. Dessa områden används sedan för att koda upp och
425-
lösa uppgifter av mer \textit{fysikaliska} slag, till exempel lutande plan. Med andra ord hanteras fysikaliska områden genom att tillämpa matematiska domänspecifika språk och inte genom att konstruera fysikaliska domänspecifika språk. En vidareutveckling
431+
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
426432
hade därmed varit att göra precis det, att inte tillämpa matematiska
427433
domänspecifika språk utan att göra fysikaliska domänspecifika språk. Det kan vara
428434
saker som ett språk för ett lutande plans komponenter. Det kan vara ett
@@ -434,7 +440,7 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
434440
domänspecifika språk hade därför varit en möjlig vidareutveckling.
435441

436442
En annan möjlig vidareutveckling är att göra en rigorös studie kring de
437-
pedagogiska aspekterna kring kombinationen av fysik och domänspecifika språk.
443+
pedagogiska aspekterna hos kombinationen av fysik och domänspecifika språk.
438444
Detta projekt innehöll enbart en mindre sådan studie. Det som kan vara
439445
intressant att undersöka är om studenter tycker att fysik blir intressantare
440446
genom en kombination av detta slag och kanske därför studerar mer i fysikkursen.
@@ -446,7 +452,7 @@ \section{Vidareutvecklingsmöjligheter och behov av ytterligare kunskap}
446452
så i praktiken.
447453

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

452458
Slutligen finns det en mycket intressant vidareutveckling som inte alls har
@@ -480,7 +486,7 @@ \section{Etiska aspekter}
480486
hemsidans uppbyggnad. Det handlar om att visa att man är positiv till att andra
481487
tittar hur man gjort och låta andra bygga vidare på ens skapelser. Genom att
482488
sluta oss till skaran som skapar öppen källkod hoppas vi att fler inom samhället
483-
i stort ska gå över till denna modell.
489+
i stort ska gå över till denna modell.
484490

485491
Valet att skriva på engelska har också att göra med tillgängligheten. Fler kan
486492
engelska än svenska. På detta sätt kan läromaterialet komma fler till gagn.

Rapport/include/Introduktion.tex

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
\chapter{Introduktion}
33

4+
Detta kapitel beskriver projektets bakgrund, mål och avgränsningar.
5+
46
\section{Bakgrund}
57

68
På civilingenjörsprogrammet Datateknik på Chalmers tekniska högskola ingår den obligatoriska
@@ -26,25 +28,25 @@ \section{Bakgrund}
2628
domäner från ett funktionellt programmeringsperspektiv: att ge beräkningsbevis
2729
(calculational proofs); att vara uppmärksamma på syntaxen för matematiska
2830
uttryck; och, slutligen, att organisera de resulterande funktionerna och
29-
typerna i domänspecifika språk.''~cite{tfpie2015}~\cite{lecture-notes}\
31+
typerna i domänspecifika språk.''~\cite{tfpie2015}~\cite{lecture-notes}\
3032
\end{center}
3133

3234
Det funktionella programmeringsperspektivet som kursen använder sig av bottnar i
3335
så kallade domänspecifika språk. Kortfattat kan ett domänspecifikt språk
3436
beskrivas som ett programmeringsspråk som skapats för ett väl avgränsat
3537
område. Detta område kan vara databashantering, algebraiska uttryck eller till
3638
och med fysik. Språket kan antingen vara implementerat inuti ett annat
37-
programmeringsspråk eller implementerat helt fristående. I kursen och projektet
39+
programmeringsspråk eller implementerat helt fristående. I kursen och projektet
3840
är det implementerat i Haskell.
3941

40-
Idéen bakom projektet är att på motsvarande sätt använda domänspecifika språk för att ur ett alternativt perspektiv, likt det sättet DSLsofMath
41-
presenterar kopplingar mellan matematik och programmering. Förhoppningen är att kunna visa på kopplingar mellan programmering och fysik och därmed
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+
presenterar kopplingar mellan matematik och programmering ska projektet på motsvarande sätt visa på kopplingar mellan programmering och fysik och därmed
4244
underlätta lärandet. För att förtydliga ges här en analogi:
4345

4446
%PaJa:Trevligt!
4547

4648
\begin{center}
47-
Studenterna har svårt för matematik $\rightarrow $ DSLsofMath.\\
49+
Studenterna har svårt för matematik $\rightarrow $ DSLsofMath.\\
4850
Studenterna har svårt för fysik $\rightarrow $ Detta projekt.
4951
\end{center}
5052

@@ -57,7 +59,7 @@ \section{Bakgrund}
5759
fysikkurser.
5860

5961
Angående tidigare forskning och studier har en kurs på MIT, inte helt olik
60-
DSLsofMath, tidigare givits som berör både fysik och
62+
DSLsofMath, tidigare givits som berör både fysik och
6163
domänspecifika språk.
6264
%funktionell programmering.
6365
\textit{Classical Mechanics: A Computational Approach} gavs av professor Gerald Sussman
@@ -69,7 +71,8 @@ \section{Bakgrund}
6971
förklaras fysikaliska fenomen genom att visa datorprogram för att simulera dem,
7072
skrivna i språket Scheme. Denna typ av kurs ter sig ovanliga och är, till
7173
projektgruppens kännedom, den enda kursen bortsett från DSLsofMath på Chalmers som knyter
72-
samman matematik, fysik och programmering.
74+
samman fysik, programmering och matematik på en symboliskt nivå för att förklara
75+
koncepten.
7376

7477
Även tidigare har det genomförts ett kandidatarbete på Chalmers med anknytning till DSLsofMath.
7578
Vårterminen 2016 genomfördes kandidatarbetet \textit{Programmering som
@@ -88,7 +91,7 @@ \section{Projektets mål}
8891
från 2016, som istället för fysik behandlade matematik respektive signallära.
8992

9093
Mer konkret ska ovanstående genomföras genom att skapa ett läromaterial.
91-
Läromaterialet ska bestå av
94+
Läromaterialet ska bestå av
9295
domänspecifika språk, skrivna
9396
%programkod skriven
9497
i Haskell, som

Rapport/include/Metod.tex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ \subsubsection*{Områden som valdes ut}
135135

136136
När kunskap inhämtats om olika områden kunde ett urval göras. De områden som
137137
identifierades som grundläggande och hade en väl lämpad struktur (se
138-
avsnitt~\ref{sec:lampligt}) valdes ut. Med detta som grund blev områdena som valdes ut dimensioner, matematisk analys och vektorer. Här följer en kortfattad motivering av valet av dem.
138+
avsnitt~\ref{sec:lampligt}) valdes ut. Med detta som grund blev områdena som valdes ut fysikaliska dimensioner, matematisk analys och vektorer. Här följer en kortfattad motivering av valet av dem.
139139

140140
\textit{Dimensioner} eftersom det är viktigt för studenter att förstå sig på
141141
hur dimensioner påverkas av algebraiska operationer. Det kan också vara
@@ -156,7 +156,7 @@ \subsubsection*{Områden som valdes ut}
156156
mekanik.
157157

158158
De komposita områdena identifierades som områden som byggde vidare på de redan
159-
implementerade grundläggande områdena. Det komposita områdena som valdes ut
159+
implementerade grundläggande områdena. De komposita områdena som valdes ut
160160
blev exempelproblem och partikelmekanik. Här följer en kortfattad motivering av valet av dem.
161161

162162
\textit{Exempelproblem} för att visa hur ett par typuppgifter i klassisk mekanik kan modelleras i läromaterialets domänspecifika språk. Närmare bestämt tillämpas de domänspecifika språken på \textit{krafter på lådor} och \textit{gungbräda}.
@@ -265,7 +265,7 @@ \subsubsection*{Implementation av grundläggande områden}
265265
BaseDim Le
266266
\end{lstlisting}
267267

268-
Även om en sådan förenklare går att göra valdes en annan lösning till
268+
Även om en sådan förenklare går att göra valdes en annan lösning i
269269
läromaterialet. Nyckeln ligger i att betrakta dimensioner som en multiplikation
270270
av basdimensioner med exponenter. Ta till exempel hastighet
271271
\begin{align*}
@@ -330,7 +330,7 @@ \subsubsection*{Implementation av komposita områden}
330330
där de grundläggande områdena vektorer och matematisk analys
331331
kombinerades. Anledningen till detta var att partiklars position, hastighet och
332332
acceleration modelleras med vektorer, dessutom är de krafter som påverkar
333-
partiklar även modellerade som vektorer. Sedan används matematisk analys för att
333+
partiklar även de modellerade som vektorer. Sedan används matematisk analys för att
334334
göra dessa beräkningar. Därför var det naturligt att modellera partikelmekanik
335335
med hjälp av vektorer vars komponenter var uttryck som
336336
implementerades av matematisk analys.
@@ -379,7 +379,7 @@ \subsection{Skriva lärotext}
379379
övergripande likadana. Skillnaden låg i balansen mellan Haskell och fysik. För
380380
de grundläggande områdena fokuserade lärotexten mer på Haskell eftersom det var
381381
ett helt nytt domänspecifikt språk som skulle konstrueras. Hur det fungerade var
382-
därför viktigt att förklara. I kontrast står lärotexten för det komposita
382+
därför viktigt att förklara. I kontrast står lärotexten för de komposita
383383
områdena, där ett större fokus låg på fysik. För dessa områden visades hur de
384384
domänspecifika språken var praktiskt användbara och då förklarades fysik, för
385385
att sedan kunna visa hur den fysiken kunde representeras i de domänspecifika
@@ -389,7 +389,7 @@ \subsection{Skriva lärotext}
389389
matematisk analys, där istället för att visa och förklara hur områdena kunde
390390
implementeras i Haskell visade hur det direkt gick att översätta de
391391
fysikaliska formlerna som beskriver partiklars rörelse och energier till
392-
Haskell-kod med hjälp av de grundläggande områdena. Beskrivning av relationen arbete-energi (engelska \textit{Work-Energy theorem}) gick då till som i figur \ref{fig:komposit-ex}:
392+
Haskell-kod med hjälp av de grundläggande områdena. Beskrivning av relationen arbete-energi (engelska \textit{Work-Energy theorem}) gick då till som i figur \ref{fig:komposit-ex}.
393393

394394
\begin{figure}[tph]
395395
\centering

0 commit comments

Comments
 (0)