Skip to content

Commit 7d1a923

Browse files
committed
2 parents ea0969a + e0897d8 commit 7d1a923

File tree

9 files changed

+308
-230
lines changed

9 files changed

+308
-230
lines changed

README.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Medlemmar: Oskar, Erik, ~~Daniel~~, Björn, Johan
1313
* 8/5 : Inlämning av poster för tryckning
1414
* 15/5 : Utställning enligt anvisningar.* 16/5 : Engelsk Titel, Gäller rapporter på Svenska, kompletering möjlig fram till 9/6, vi kollar 24/5 och påminner
1515
* 21/5 : Deadline inlämning av Opposition, skriftlig elektronisk
16-
* 24/5 eller 25/5 : Muntliga slutredovisningar och opposition & Avtal om publicering, lämnas in i samband med presentationen
16+
* 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.
1919

@@ -32,17 +32,11 @@ Gör en överstrykning på saker när de är klara.
3232
- **B** Att böra på slutsatser
3333
- Slutsatser
3434
- Introduktion
35-
- ~~**E** Fixa todos i bakgrund och allmän hyfsning~~
36-
- ~~**E** Allmän hyfsning mål~~
37-
- ~~**E** Allmän hyfsning avgränsningar~~
3835
- Teori
3936
- Metod
4037
- Resultat
41-
- DiskRes
4238
- Diskussion
43-
- ~~**O** Genomförandediskussion~~
44-
- **O** Ingress till resultatdiskussion
45-
- **O** Mer kritik: Överlappande områden presenterar vi som någonting dåligt, att vi gärna vill ha väl definierade områden för att det bättre DSL då, men överlappande områden kanske kan vara bra ur en pedagogisk synvinkel. Se PaJas kommentarer i rapporten.
39+
4640

4741

4842

Rapport/include/Diskussion.tex

Lines changed: 270 additions & 149 deletions
Large diffs are not rendered by default.

Rapport/include/Introduktion.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ \section{Bakgrund}
9494
\section{Projektets mål}
9595

9696
Tanken med detta kandidatarbete är att angripa fysik från ett funktionellt
97-
programeringsperspektiv. På detta sätt är förhoppningen att ämnet bli både
97+
programeringsperspektiv. På detta sätt är förhoppningen att ämnet blir både
9898
roligt och intressant för datastudenter, och därmed förhoppningsvis också
9999
enklare. Detta är likt premissen bakom kursen DSLsofMath och kandidatarbetet
100100
från 2016, som istället för fysik behandlade matematik respektive signallära.

Rapport/include/Metod.tex

Lines changed: 20 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,13 @@ \chapter{Genomförande}
1616

1717
\begin{draft}
1818

19-
Projektets genomförande bestod av fyra delar. Den största delen var att
20-
konstruera själva läromaterialet, och där ingick sökande efter fysikaliska
19+
Projektets genomförande bestod av fyra delar. Den största delen var
20+
konstruktionen av själva läromaterialet, och där ingick sökande efter fysikaliska
2121
områden, implementation av domänspecifika språk och skrivande av lärotext. De
2222
tre andra delarna var publicering av läromaterialet på en hemsida, utvärdering
2323
av läromaterialet med en testgrupp samt möten med Åke Fäldt, examinator och
2424
föreläsare för Fysik för ingenjörer. Mötena med Fäldt hade två syften: att hitta
25-
problemområden i fysikkursen och att få återkoppling på läromaterialet.
26-
27-
\begin{binge}
28-
\textbf{TODO: Skriv om enligt PaJas kommentarer i rapporten}
29-
30-
Det har inte funnits någon betydelsefull kronologi i projektet. I vilken
31-
ordningen aktiviteterna genomfördes spelar ingen roll för att förstå vad som
32-
genomfördes och hur det genomfördes. Resterande av kapitlet beskriver därför
33-
enbart aktiviteterna i sig, och inte i vilken ordningen de gjordes i relation
34-
till varandra. Självklart finns viss betydelsefull kronologi. Till exempel var
35-
(en del av) läromaterialet varit tvunget att vara skapat innan det kunde
36-
utvärderas, men sådana praktiska detaljer är obetydelsefulla för förståelsen.
37-
\end{binge}
25+
problemområden i fysikkursen och att få återkoppling på läromaterialet. Alla de olika delar i projektet genomfördes samtidigt men de finns här beskrivna separat.
3826

3927
\section{Konstruktion av läromaterialet}\label{sec:konstruktion}
4028

@@ -81,13 +69,6 @@ \section{Konstruktion av läromaterialet}\label{sec:konstruktion}
8169
sammanvävda var det också högst naturligt att processerna med att skapa dem
8270
även de var sammanvävda.
8371

84-
\begin{binge}
85-
\textbf{TODO: Utveckla eller ta bort, känns som vi upprepar oss här}
86-
87-
Genom hela projektet har skapande av kapitlena skett parallellt. De olika
88-
processerna har även befunnit sig i olika faser samtidigt.
89-
\end{binge}
90-
9172
De tre följande avsnitten beskriver i detalj hur de tre faserna, val,
9273
implementation och skrivande, såg ut. Det är viktigt att minnas att det, som
9374
nämndes ovan, fanns överlapp mellan både faserna och kapitlena.
@@ -106,7 +87,7 @@ \subsection{Sökande efter områden att behandla}\label{sec:valet}
10687
var viktig för att kunna implementera de domänspecifika spårken på bästa sätt
10788
och undvika överlappande implementationer.
10889

109-
\subsubsection{Kontakt med fysikläraren}
90+
\subsubsection*{Kontakt med fysikläraren}
11091
\label{sec:kontakt_faldt}
11192

11293
Fäldt befrågades om vilka områden han i allmänhet anser studenter har
@@ -125,17 +106,16 @@ \subsubsection{Kontakt med fysikläraren}
125106
förhoppningsvis kunna underlätta för studenter att lära sig att identifiera vilken
126107
typ av uppgift de handskas med.
127108

128-
\subsubsection{Studerande av kursbok och kursmaterial}
109+
\subsubsection*{Studerande av kursbok och kursmaterial}
129110

130111
Efter kontakten med Fäldt kunde ett sökande efter konkreta områden genomföras.
131112
Detta gjordes genom att studera kursboken och kursmaterialet tillhörande Fysik
132113
för ingenjörer. Innehållet som hittades delades upp i avgränsade områden för att
133114
de skulle bli lämpade till varsitt domänspecifikt språk. Av speciellt intresse
134115
var de kapitel som behandlade mekanik (i enlighet med projektets mål att börja
135116
med klassisk mekanik), matematisk analys samt de kapitel som använde sig av en
136-
specifik syntax \todo{Syntax?}. Domänspecifik syntax var av intresse att finna
117+
specifik syntax. Domänspecifik syntax var av intresse att finna
137118
då en betydlig del av domänspecifika språk är modellering av just syntaxen.
138-
\todo{Kanske förtydliga/utveckla varför detta är av intresse}
139119

140120
Sökandet i kursboken och kursmaterialet gav viktiga kunskaper om områden att
141121
behandla. Men minst lika viktiga var de inledande experiment som gjordes på
@@ -155,25 +135,13 @@ \subsubsection{Studerande av kursbok och kursmaterial}
155135
Komposita områden bygger vidare på andra områden eller tillämpar andra områden
156136
på konkreta fysikaliska problem.
157137

158-
\subsubsection{Områden som valdes ut}
159-
160-
TODO: Skriv om att varför just dessa. Var för att projektgruppen identifierade
161-
dessa grundläggande områden som resten av fysiken byggde på.
162-
163-
De grundläggande områdena som under projekets gång valdes ut blev bevis,
164-
dimensioner, matematisk analys och vektorer.
138+
\subsubsection*{Områden som valdes ut}
165139

166140
När kunskap inhämtats om olika områden kunde ett urval göras. De områden som
167141
identifierades som grundläggande och hade en väl lämpad struktur (se
168142
avsnitt~\ref{sec:valdes lampligt}) ut. Med detta som grund blev följande de
169143
områden som valdes ut.
170144

171-
\textbf{OCH FLER?}
172-
173-
\textit{Bevis} eftersom det ger en insikt i hur de formler man använder
174-
faktiskt uppstår. För att genomföra bevis krävs också att formler och
175-
beteckningar görs rigorösa, vilket ger en bättre förståelse av dem.
176-
177145
\textit{Dimensioner} eftersom det är viktigt för studenter att förstå sig på
178146
hur dimensioner påverkas av algebraiska operationer. Det kan också vara
179147
hjälpsamt att kunna utföra automatisk, datorassisterad dimensionsanalys på
@@ -192,23 +160,23 @@ \subsubsection{Områden som valdes ut}
192160
planet eller rummet, och dessa är alla fundamentala element inom klassisk
193161
mekanik.
194162

195-
\end{draft}
196-
\begin{binge}
197-
198-
TODO: Skriv om varför just dessa komposita. Finns säkert många komposita, så något urval måste ha gjorts.
163+
De komposita områdena identifierades som områden som byggde vidare på de redan
164+
implementerade grundläggande områdena. Det komposita områdena som valdes ut
165+
blev:
199166

200-
De komposita som valdes ut blev...
167+
\textit{Punktpartikelsmekanik}. Här gås mycket av den gymnasiala fysiken igenom.
168+
Lägesenergi, rörelseenergi, gravitation o.s.v. Den modelleras med vektorer vars
169+
komponenter består av matematiska uttryck tagna från kapitlet om matematisk
170+
analys. Förhoppningen är att detta område inte ska presentera någon ny fysik för
171+
läsaren utan istället visar hur redan känd fysik direkt går att översätta till
172+
domänspecifika våra domänspecifika språk.
201173

202-
Ett exempel på ett komposit område är momentan- och medel-rörelse eftersom det
203-
direkt utgör en stor delmängd av alla problem inom mekanik i Fysik för
204-
ingenjörer. Väldigt många av de uppgifter studenter lär sig lösa inom mekanik
205-
är sträcka/hastighet/acceleration/kraft problem. Hur lång tid tar det att åka
206-
en sträcka om man har en viss medelhastighet? Om ett objekt med massa $m$
207-
påverkas av en kraft som varierar enligt $\sin(t)$, vad är då
208-
momentanhastigheten vid $t=10$? Detta är en kombination av det grundläggande
209-
området som behandlar vektorer och området som behandlar matematisk analys.
174+
\end{draft}
210175

176+
\begin{binge}
177+
\textbf{TODO:~OCH FLER?}
211178
\end{binge}
179+
212180
\begin{draft}
213181

214182
\subsection{Implementation av DSL för områdena}

Rapport/include/Resultat.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ \section{Läromaterialet}\label{sec:res_laromaterial}
2121
mörkgrå.}~\label{fig:smakprov_laromaterial}
2222
\end{figure}
2323

24-
I läromaterialet finns även bilder och övningar.
24+
Språket i lärotexten är någorlunda lättsamt\footnote{Diskuteras utförligare i avsnitt \ref{sec:res_disk}.} och det finns även bilder och övningar.
2525
Figur~\ref{fig:smakprov_bild_laromaterial} är ett exempel på en bild ur
2626
läromaterialet. Notera speciellt den medvetet oseriösa ritningstekniken som är
2727
tänkt att vara rolig och muntra upp läsaren. Övningar ligger både i den löpande

Rapport/include/Teori.tex

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ \section{Domänspecifika språk}
2525

2626
Domänspecifika språk är vanligt förekommande i programmeringssammanhang. HTML är
2727
ett domänspecifikt språk för textformatering, SQL för databashantering och
28-
algebraiska uttryck. Precis som domänspecifika språk i vardagen passar
28+
CSV för tabeller. Precis som domänspecifika språk i vardagen passar
2929
domänspecifika språk inom programmering bäst för sitt egna domän. SQL är bra för
3030
databaser men inte att göra ett spel i.
3131

@@ -38,9 +38,7 @@ \section{Domänspecifika språk}
3838
minnestillgångar\cite{turing_ne}\cite{turing_book}. Begränsningen med dessa
3939
generella språk är just deras egen generaliserbarhet, eftersom de har stöd för
4040
alla typer av beräkningar så blir både läsbarheten och användarvänligheten
41-
lidande.
42-
43-
Ett exempel på ett domänspecifikt språk är \textit{syntaxträd}. Syntaxträd har
41+
lidande. Ett exempel på ett domänspecifikt språk i datavärlden är \textit{syntaxträd}. Syntaxträd har
4442
använts mycket i projektet och beskrivs mer utförligt i
4543
avsnitt~\ref{sec:syntax}.
4644

@@ -54,15 +52,15 @@ \section{Domänspecifika språk}
5452
och betydelse. Slutligen gör dess mönstermatchning att de datatyper som utgör
5553
det domänspecifika språket enkelt kan brytas isär och manipuleras.
5654

57-
För vidare läsning rekommenderas \textit{DSL for the Uninitiated} \cite{DSLU}.
55+
För vidare läsning om domänspecifka språk rekommenderas \textit{DSL for the Uninitiated} \cite{DSLU}.
5856

5957
\section{Syntax, syntaxträd och semantik}\label{sec:syntax}
6058

6159
I samband med domänspecifika språk dyker begreppen \textit{syntax} och
6260
\textit{semantik} upp. Syntax är grammatiken för ett språk medan semantiken är
6361
betydelsen av en konstruktion, en mening, i språket. Inom
64-
aritmetik\footnote{Aritmetik är den gren inom matematiken som behandlar att
65-
räkna.} är tal och operationer syntax medan värdet av uttrycket är semantiken.
62+
aritmetik\footnote{Aritmetik är den gren inom matematiken som behandlar
63+
räkning av tal.} är tal och operationer syntax medan värdet av uttrycket är semantiken.
6664
Till exempel är $((3 + 2) * 10)^4$ syntax medan $6.250.000$ är semantiken,
6765
eftersom det är det som det syntaktiska uttrycket \textit{betyder}.
6866
Domänspecifika språk har med syntax att göra eftersom många domänspecifika språk
@@ -118,7 +116,7 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
118116
i samband med syntaxträd. I detta exempel är semantiken det värde som
119117
syntaxträdet betyder. Detta värde kan beräknas utifrån syntaxträdet. Det görs
120118
genom en \textit{beräkningsfunktion}. För exemplets syntaxträd kan
121-
utvärderingsfunktionen se ut som i figur \ref{fig:eval_tree}
119+
beräkningsfunktionen se ut som i figur \ref{fig:eval_tree}
122120

123121
\begin{figure}[tph]
124122
\begin{lstlisting}
@@ -127,27 +125,27 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
127125
evaluate (e1 :*: e2) = evaluate e1 * evaluate e2
128126
evaluate (Const v) = v
129127
\end{lstlisting}
130-
\caption{En utvärderingsfunktion för syntaxträdet.}\label{fig:eval_tree}
128+
\caption{En beräkningsfunktion för syntaxträdet.}\label{fig:eval_tree}
131129
\end{figure}
132130

133131
Det finns tre saker som är speciellt värda att notera i
134132
figur~\ref{fig:eval_tree}. Den första är att eftersom syntaxen innehåller tre olika
135133
typer av element, här motsvarat av de tre datakonstruktorerna, krävs tre fall i
136-
utvärderingsfunktionen som beräknar vardera av dem. \textit{evaluate} har
134+
beräkningsfunktionen som beräknar vardera av dem. \textit{evaluate} har
137135
därför ett fall för \texttt{:+:}, ett för \texttt{:*:} och ett för
138136
\texttt{Const}.
139137

140138
Den andra saken att notera ur figur~\ref{fig:eval_tree} är hur ett fall
141-
utvärderas. Hur utvärderingen ska ses ut får man genom att ta hänsyn till
139+
beräknas. Hur beräkningen ska ses ut får man genom att ta hänsyn till
142140
semantiken hos det syntaktiska elementet. \texttt{e1 :+: e2} är syntax för
143141
addition av de två uttrycken \texttt{e1} och \texttt{e2}. Därför blir
144142
semantiken, värdet, av \texttt{e1 :+: e2} lika med värdet hos \texttt{e1} och
145-
\texttt{e2} adderade. Ett liknande resonemang ger svaret på hur utvärderingen av
143+
\texttt{e2} adderade. Ett liknande resonemang ger svaret på hur beräkningen av
146144
de två resterande fallen ska se ut.
147145

148146
Den tredje saken i figur~\ref{fig:eval_tree} värd att poängtera är dess
149147
typsignatur, \texttt{Expr -> Double}. Den gör nämligen att man kan tolka
150-
\texttt{evaluate}, och utvärderingsfunktioner i allmänhet, som en översättning
148+
\texttt{evaluate}, och beräkningsfunktioner i allmänhet, som en översättning
151149
från syntax (här \texttt{Expr}) till semantik (här \texttt{Double}).
152150

153151
\end{draft}

Rapport/include/backmatter/Utdrag.tex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,3 @@ \chapter{Utdrag ur läromaterialet}
44
Här följer ett utdrag ur läromaterialet. Det är avsnitt ''Quantity'' ur kapitlet ''Dimensions'' (Dimensioner).
55

66
\includepdf[pages={-}]{include/backmatter/Utdrag.pdf}
7-
8-
\newpage
9-
10-
Är inte detta med så tas bara halva sista sidan med av föregående

Rapport/include/backmatter/referenser.bib

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ @misc{LSB_kap5
7575
note = "U. P. Lundgren, R. Säljö, C. Liberg (Red.), ``Lärande Skola Bildning'', 2 uppl.,ss. 139-197, Stockholm, Natur \& Kultur, 2012."
7676
}
7777
@article{MD,
78-
Author = {William R. Saunders and James Grant and Eike H. Müller},
78+
Author = {William R. Saunders och James Grant och Eike H. Müller},
7979
Title = {A Domain Specific Language for Performance Portable Molecular Dynamics Algorithms},
8080
Year = {2017},
8181
Eprint = {arXiv:1704.03329},
8282
Doi = {10.1016/j.cpc.2017.11.006},
83+
Note = {[Online]. Tillgänglig: \url{https://arxiv.org/abs/1704.03329}, hämtad: 2018-04-20.}
8384
}

Rapport/include/frontmatter/Ordlista.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ \chapter*{Ordlista}
1212

1313
\textbf{Åke Fäldt} Föreläsare och examinator i kursen Fysik för ingenjörer.
1414

15-
\textbf{Fysik för ingenjörer} En fysikkurs som är obligatorisk för studenter på Datateknik civilingenjör på Chalmers. Den ges i årskurs 2 och innehåller grunderna i mekanik, termodynamik och vågrörelselära.
15+
\textbf{Fysik för ingenjörer} En fysikkurs som är obligatorisk för studenter på Datateknik civilingenjör på Chalmers. Den ges i årskurs 2 och innehåller grunderna i klassisk mekanik, termodynamik och våglära.
1616

1717
\textbf{Univerisity Physics} Den fysikbok som används i Fysik för ingenjörer.
1818

0 commit comments

Comments
 (0)