From a7a3014c3ba68b510e3f7aca3511ed3d7816dc8b Mon Sep 17 00:00:00 2001 From: Noah Peeters Date: Wed, 17 Jan 2018 00:34:13 +0100 Subject: [PATCH 01/11] Small fixes --- src/DiskreteMathematik/BoolescheAlgebra.tex | 2 +- src/DiskreteMathematik/FormaleGrundlagen.tex | 14 +++++++------- src/Informatik/EinfuehrungProgrammierung.tex | 2 +- src/Informatik/InformatikGesellschaft.tex | 2 +- src/Informatik/TechnischeGrundlagen.tex | 2 +- src/Seminare/RhetorikI.tex | 5 ++--- src/Seminare/WissenschaftlichesArbeiten.tex | 2 +- src/Sprachen/Englisch.tex | 2 +- src/Wirtschaft/ABWL.tex | 2 +- 9 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/DiskreteMathematik/BoolescheAlgebra.tex b/src/DiskreteMathematik/BoolescheAlgebra.tex index b119741..e309c48 100644 --- a/src/DiskreteMathematik/BoolescheAlgebra.tex +++ b/src/DiskreteMathematik/BoolescheAlgebra.tex @@ -252,4 +252,4 @@ \begin{equation} (A \rightarrow B) \cdot (B \rightarrow C) \models (A \rightarrow C) \end{equation} -\end{document} \ No newline at end of file +\end{document} diff --git a/src/DiskreteMathematik/FormaleGrundlagen.tex b/src/DiskreteMathematik/FormaleGrundlagen.tex index 6bb0a85..c16a229 100644 --- a/src/DiskreteMathematik/FormaleGrundlagen.tex +++ b/src/DiskreteMathematik/FormaleGrundlagen.tex @@ -8,7 +8,7 @@ \subsection{Naive Mengenlehre} In der naiven Mengenlehre ist eine Menge durch die Elemente, die sie umschließt, definiert. Eine einfache Menge kann mit $A = \{a, b, c\}$ beschrieben werden. Dabei ist $A$ der Name der Menge und $a, b, c$ sind die Urelemente der Menge. Dabei sind die Elemente atomar, also nicht weiter zerlegbar und divers bzw. wohlverschieden. Es gilt also $\{a, a, b, c\} = \{a, b, c\}$. - \\ + Eine Methode zur Beschreibung einer Menge $B$, welche alle durch zwei teilbaren natürlichen Zahlen enthält, ist: \begin{equation} @@ -143,15 +143,15 @@ \end{equation} \paragraph{Linkseindeutig oder Injektiv} - Eine Relation ist genau dann linkseindeutig, wenn jedem Element aus $B$ höchstens ein Element aus $A$ zugeordnet wird. + Eine Relation ist genau dann linkseindeutig, wenn jedem Element aus $B$ höchstens ein Element aus $A$ zugeordnet wird. \begin{equation} - \forall b \in B\; \forall a,c \in A\colon \left(a, b\right) \in R \wedge \left(c, b\right) \in R \rightarrow a = c + \forall b \in B\; \forall a, c \in A\colon \left(a, b\right) \in R \wedge \left(c, b\right) \in R \rightarrow a = c \end{equation} \paragraph{Rechtseindeutig} Eine Relation ist genau dann rechtseindeutig, wenn jedem Element aus $A$ höchstens ein Element aus $B$. \begin{equation} - \forall a \in A\; \forall b,d \in B\colon \left(a, b\right) \in R \wedge \left(a, d\right) \in R \rightarrow b = d + \forall a \in A\; \forall b, d \in B\colon \left(a, b\right) \in R \wedge \left(a, d\right) \in R \rightarrow b = d \end{equation} \paragraph{Bitotal} @@ -271,6 +271,8 @@ Die Funktion $\delta^*\colon S \times \Sigma^*$ kann ganze Wörter verarbeiten. + + \paragraph{Startzustand} Ein Element $S_0 \in S$ wird als Startzustand festgelegt. @@ -301,6 +303,4 @@ \paragraph{Typ 3} Typ 3 Sprachen sind reguläre Sprachen mit einer regulären Grammatik und sind eine Teilmenge der Typ 2 Sprachen. - - -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index 847ab55..a2333b0 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -28,4 +28,4 @@ \paragraph{Quellprogramm} Quellprogramm\footnote{Auch: Sourcecode} ist ein Programm in einer Hochsprache. -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Informatik/InformatikGesellschaft.tex b/src/Informatik/InformatikGesellschaft.tex index dc85dd8..364d592 100644 --- a/src/Informatik/InformatikGesellschaft.tex +++ b/src/Informatik/InformatikGesellschaft.tex @@ -12,4 +12,4 @@ TODO: Content Bisher war der gesamte Inhalt nur Grundlagen, die im Kursübergreifenden Teil gefunden werden können. -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Informatik/TechnischeGrundlagen.tex b/src/Informatik/TechnischeGrundlagen.tex index b63f37d..b958748 100644 --- a/src/Informatik/TechnischeGrundlagen.tex +++ b/src/Informatik/TechnischeGrundlagen.tex @@ -88,4 +88,4 @@ \paragraph{Vektorgrafiken} Vektorgrafiken speichern das Bild mithilfe von primitiven Objekten wie Linien und Kurven. Die eigentlichen Bildinformationen, die auf gerasterten Bildschirmen angezeigt werden können, werden erst berechnet, wenn die Auflößung bekannt ist. Auf diese Weise kann verlustfrei an Bilder gezoomt werden. Vektorgrafiken eignet sich damit sehr für am Computer erstellte Bilder. -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Seminare/RhetorikI.tex b/src/Seminare/RhetorikI.tex index c304f87..301deed 100644 --- a/src/Seminare/RhetorikI.tex +++ b/src/Seminare/RhetorikI.tex @@ -44,7 +44,7 @@ \\ Nun steht man auf um die Präsentation zu beginnen. Hier kommt es häufig vor, dass unterbewusst die Hände zur Hilfe genommen werden, was im besten Fall vermieden werden sollte. Sobald man aufgerichtet ist entsteht der natürliche Reflex die Kleidung zurecht zu rücken. Dies wirkt unprofessionell und in den allermeisten Fällen sitzt diese bereits angemessen. - \subsubsection{erster Blickkontakt} + \subsubsection{Erster Blickkontakt} Der unterbewusste, erste Eindruck ist geschaffen und das Publikum bildet sich eine bewusste, zweite Meinung über den Präsentierenden. An dieser Stelle kommt Blickkontakt ins Spiel. Nicht sofort Richtung Bühne los sprinten sondern einen Moment verweilen. Ruhe und Gelassenheit ausstrahlen und diese wertvollen Momente benutzen um einen Blick in die Runde zu wagen. Einen schnellen Blick über die Zuhörerschaft schweifen lassen, kurzzeitig mit den Augen auf bestimmten Personen verweilen und dann die Reise zur Präsentationsfläche antreten. \paragraph{Aufgang} Der Weg zur Bühne sollte auf keinen Fall dafür verwendet werden den Boden genauer zu inspizieren sondern stattdessen dazu verwendet werden einen langsamen Blick in die Runde zu werfen und sich Sympathie-Inseln zu suchen (dazu mehr in Abschnitt \ref{section:Seminar:RhetorikI:SympathieInsel}), während man idealerweise und sofern möglich in einem Halbkreis auf die Bühne schreitet. @@ -84,5 +84,4 @@ \section*{Danksagung} % TODO Thank Jan and the whole crew from Adventure Learning for the weekend and recommend it to the reader. - -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Seminare/WissenschaftlichesArbeiten.tex b/src/Seminare/WissenschaftlichesArbeiten.tex index 859cc48..5712ab2 100644 --- a/src/Seminare/WissenschaftlichesArbeiten.tex +++ b/src/Seminare/WissenschaftlichesArbeiten.tex @@ -50,4 +50,4 @@ \item Beobachtungen \end{itemize} -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Sprachen/Englisch.tex b/src/Sprachen/Englisch.tex index 28ecaf3..de0601d 100644 --- a/src/Sprachen/Englisch.tex +++ b/src/Sprachen/Englisch.tex @@ -6,4 +6,4 @@ \section{Content} No content yet... -\end{document} \ No newline at end of file +\end{document} diff --git a/src/Wirtschaft/ABWL.tex b/src/Wirtschaft/ABWL.tex index f3a27e4..209d9ca 100644 --- a/src/Wirtschaft/ABWL.tex +++ b/src/Wirtschaft/ABWL.tex @@ -6,4 +6,4 @@ \section{Content} No content yet... -\end{document} \ No newline at end of file +\end{document} From b4d6c761d03fabfe690712424f79a0b7a8432289 Mon Sep 17 00:00:00 2001 From: Noah Peeters Date: Wed, 17 Jan 2018 00:34:42 +0100 Subject: [PATCH 02/11] Added Einfuehrung Programmierung 16.01.2018 --- src/Informatik/EinfuehrungProgrammierung.tex | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index a2333b0..d33feb6 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -28,4 +28,20 @@ \paragraph{Quellprogramm} Quellprogramm\footnote{Auch: Sourcecode} ist ein Programm in einer Hochsprache. + + \section{Auswertungsregeln} + \paragraph{Syntax} + Die Syntax einer Programmiersprache legt zulässige Elemente und Struktur fest. + + \paragraph{Semantik} + Die Semantik einer Programmiersprache legt die Bedeutung von syntaktisch korrekten Ausdrücken fest. Die Semantik funktionaler Programmiersprachen orientiert sich an der Semantik der Mathematik. + + \paragraph{Ersetzungen} + Um die Bedeutung eines Ausdrucks zu bestimmen, werden nacheinander semantisch äquivalente Umformungen mit dem \emph{Ersetzungsmodell für Funktionsanwendungen} durchgeführt. Die Reihenfolge der Auswertung von Teilausdrücken in funktionalen Sprachen hat dabei keine Auswirkung auf das Endergebnis. + + \paragraph{Self Evaluating Expressions} + \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den \emph{Self Evaluating Expressions}. Die Auswertung eines Ausdrucks ist beendet, wenn eine \emph{Self Evaluating Expressions} erreicht wurde. + + \paragraph{Funktionsaufruf} + Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Diese Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. \end{document} From 09230d64da9cdf17c71e89d707d8a3fe4fc29894 Mon Sep 17 00:00:00 2001 From: Noah Peeters Date: Wed, 17 Jan 2018 09:33:05 +0100 Subject: [PATCH 03/11] Added transitive, reflxive and symmetric relations --- src/Abbildungen/Reflexivitaet_Graph.png | Bin 0 -> 3757 bytes src/Abbildungen/Symmetrie_Graph.png | Bin 0 -> 4778 bytes src/Abbildungen/Transitivitaet_Graph.png | Bin 0 -> 3495 bytes src/DiskreteMathematik/FormaleGrundlagen.tex | 43 +++++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 src/Abbildungen/Reflexivitaet_Graph.png create mode 100644 src/Abbildungen/Symmetrie_Graph.png create mode 100644 src/Abbildungen/Transitivitaet_Graph.png diff --git a/src/Abbildungen/Reflexivitaet_Graph.png b/src/Abbildungen/Reflexivitaet_Graph.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa30425c4e43b810a0b1c79f3483439f8c5c978 GIT binary patch literal 3757 zcmai1`#;nF`<|`Mn#s~)C@f;6HgcBJggG`*4i!U+9FkK?VY4~pkdX6XWaKQNL=5Xd zGAZ$%4k+f3TICpdee?%>AKxFI_jTR(UvaOT(>gp;00DL~*+uJ)TDoRyVwXm>|#bW*V@dJy+j*N`3+3dc) zJ~$j65D+jvK90d)xLhvq^Eto^0NyzPW8T294e%iZSbUV3nMtS9f!|zUrVv>D1pHkA z*7?A6Ht;EmNFJ_ovOx&Gq&5z#9@Ucno;& z2C!j3uNd%W5twCdI|aHx4h{}LpYo%uL%_gM;Mc&T@*v=aES(nZ?CdNiCI$=h_CgJ; zj+;6~@)nEch+lNYV_AhW^CpRQ@Ife5(L_H`U-;p;ferWjKnEaG7i!QNuyDW0ykV(Q zEdAikBX_M2p2|ZxZW8TE-;oJuB-E_?{|Brw;$dY${Kav{@xXg6^)@nB(C&tpJFB$( z-3>ysw&vc#3W%c%Trlu$Y2VsamZOXjUgZ+3CPWTv)|N+=!oWbKLco?lQqz z{~A|$>{^Ypj2dFs!X1cAbHa9=IrKAk3d%Ek&7+VpNY|DH!~GePmoCMbdxrHAdSXSTpYkZYG9}+g=Lz z8qo^Y+*(W{m#l@ynn&tIwV|tH12@+9cyenTWz@GAe(V9}eqo=51_v2+^oQOQ>FB6{ zvL*68ZIUWyGNkQ>%w*^Nj`75M6Gl+~c3r%6f%X(GOq$A*wHDU86jz>K(mU<3zfgAm zt%Vw+eQUnbnZE0aQtjzLPKo8f+<%b|TvC7t6}LC6RQkiJ_ft1Rw61wH3$EX{k@<;M zN*-S>d6c}v@?Ea)qT5cEwZYMsTNDn4z_WVNizOer;fu^Pn(CgxSiY#QDs^j2!ACv z4VHkFbeDarsSo-2bzffh*S58@=@r2-7Kc27%e&oPzq^Yod^fv}$?Lh9+G;(Fjy~yj z$Z;RCJnVrubl!OBo2w&~7+F3`&; zf)aD>J*B7XFEC}h(pVQcN#+gTRbcVUnePvm6fh;n<s^`)YG{Q6s`o?q8l#&u-C`Q+a?B9qnhs8s>g;CNS0pCwT@w&he zN`9Xe`_h_T?QXBQxOh~SP^T6s6U-M-u>0U_5V;byUtWbt98&-(GVQS%oZAwz^f*+k z++3BBz&E|+N*iN`r!rKczqI0)SzPZiF?<2!uA&tC*G-(Or?lQULZ@)t6;mi^I%wazXg(w`*v9YG*4HP zGMV=0eX&(cb$sXK!alb z;N#*0?vPXXlo4p@@7c#6|IQw3FBmj=9PjQ=-@BLoXGxbe7M$M-sLnv>SR6`&8bal`3e?nS2k{lUw4cn+D5;4fV zMr+;OKsEDRk|;;nW+@`EN=NVIoQEfkn&j_({o=APqP_-1)vJgoi%cFhDVsq07X1=| zSdHm)5Sj?rld8^e{3pn3zo#SZpJ*hTb-2}hRy4BjfFT&9&SRFcG(cKmB`vdQK5>-I zL|J9b3{GQ*u8&R3vZ|tfO2g5-I~^`ou760?_)>M5@p%NQ48`_N9N}E^NT2 zdu74bDJ`~2quPqg(R@MVU2sFhr)js}9Dfr>c#?Nn^jDgRhZr&e2%j;20@sRFNeOzq zsAms1-P_e~wYGu02UBCX7qyN1?1WD*YwCD_y|35Ydl$>19L>4V(CeS7!JX|><;@T6kunY#&PE~x`g)tVQ1j^iuRIwv0LhFX2SG8uY8j%v(T25W_srk^~{ zEx*lW_bootzvz9I_@cpS^4&25MD}d=W&=*-_~tE(C1jxoKBX!fz2k1r#d8X={NBoD z$zklvv##RYEnE&h!`DEr_3xg+EnFr(W7a_K{h?yIM7C$$+@Hn=m|apzZLchCoDoe| z*Jx5o>j;Hx2T4Tsx4^-YZe-@!gVL|=i$D+5NSjG1>5W?3sgP=(2gmnuZK*Fm2kp9; zyU9VL>vb$OY@^)}$EVApShzxPsK%Q+wC0gqAFO_I58iCjF%hf{UD%Gwj4vEYK`pr} z9aruMXT|IHi<@fHkt)PQy-Y#h0Vpe)v_lA0b;3Maceu3N zCzXnVvbJv?#GGodFik#*=7vPFQzq=7#Hpr(E}$}|1SGTSDSHM~w)dSErKvR^vrjG7 z#q}8`_gml#(l7}A@jeEUnE<^x&<);Ma5|aV=OcF|iv)Qd`H%bQgeOW1YZQ-oQ9{NY z>z@hv=9O2g6V?}N`(TiF*={N@r4s;c8X`|tIheJrS#Cm+UeK(Ow)JR}kEz=(^&A^P zp|v;;`>UlBN@S9R9Y+`Hnyy`9|AdH$_9jQ${*aO z_NE-*qR_?3j5I2>LjEfNF;2dd`j1WlX1b;3TQGe*bocg*;%s}pP(>sZ3&?FwmS377 z$s>qc#)6%txq9M37VtFyzD6g%+LvToy1zzZ7OyG--ZG{q%lyhype}BkkTWHnt?rY? zP5=)H!;da`;RPE2>c~%Y^#%r$f&VAya2q>c^!Yjam{TZ=JqN@&i^#y+_clGjIfs^S z=MZNRe|RQ;>UTt0ozW?W*SEnXfSB9i0L95pi!-buLaiqKt|Zh5kZW`si%Ft&IM3Q+ zj#w+|xK8{6glZUublz{Pzy>Mnq0jB;d5r`>?DXLsT~@!sFKegmT$99`N9Xkd!cUTP zkt@l-?N=rxRCTz+ga9zDX0XYhZJgy;x+;CS;O)M2VlcD(6#Z}UT?E4^N|vlwA-ZQt z=6++8fo@B>5y=GUg+BQ=hN8WPi<%_B9Z0L|CRL1-uC&^8t%N#>+Hdlp=)ICo60up{ zGahz1BO>0%r*RsZOfDp@ez!cD1B20o-n++=Map_aBjvj;NwSElUTz{teOL`PcJ74@E7pdj9qY7A!BKU8`;3qqZu^76^X-jSEZQ@S)g{cvS6W9Ko}?-v8CkV@ zJJIe}i#Ps+$tokPJAJg{?*s}fvfJZI1xHoeSCI(HnT|YdkOPjS2_9`_6c;@rUqrNzVSgJzf0N_JZ8q45t`IkKyy}Q*J8S zUBMC|YV~<<X+mXo9k};lqBn7xCmXc-SEH?CkH_=x*S?Rhx_&me z^myUTF%>!<*1Eb8EhyMZ5Kil?OL@jTQ|ZCI3trT@{gv{FUzC-s%x8+;6n$*`{!2{J z_j6L=1v55O?UjbfBNKpL)tk_vS6dAJ{XMhK{`>Hv`o&Dc%M{`Z_aCd{hLv);)mzme zFloec@L(`QRJJJkx1aA--%sdG=PMr@iwXptU1TFjz?as&Ur-&PAGLG(?$}gOKlvFQ zE-5*8D<%+o8BwX6o?*iM`*h@4&I!xXv$akX{9_U2Y;FnBvqk+#x3nGWgr#YY7Y>7n lrgu_i3jjO-+ymeyXx{+t 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 Date: Wed, 17 Jan 2018 11:00:46 +0100 Subject: [PATCH 04/11] IuG 16.01.2017 --- src/Informatik/InformatikGesellschaft.tex | 61 +++++++++++++++++++++-- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/src/Informatik/InformatikGesellschaft.tex b/src/Informatik/InformatikGesellschaft.tex index 364d592..6f0d76a 100644 --- a/src/Informatik/InformatikGesellschaft.tex +++ b/src/Informatik/InformatikGesellschaft.tex @@ -8,8 +8,63 @@ \end{quote} \clearpage - \section{Content} - TODO: Content + \section{Programmierung und Software Engineering} + Für den Unterschied zwischen Programmierung und Software Engineering spielt die Geschichte der Programmierung eine entscheidende Role. - Bisher war der gesamte Inhalt nur Grundlagen, die im Kursübergreifenden Teil gefunden werden können. + \subsection{Geschichte der Programmierung} + + \paragraph{40er und 50er Jahren} + In den 40er und 50er Jahren war die Hardware teuer und hatte keine Betriebssysteme, sodass Computer nur von Experten für den Eigengebrauch programmiert wurden. Die so erstellten Programme hatten meistens nur genau eine Aufgabe und wurden danach nicht weiter verwendet. + + \paragraph{Ab den 60er Jahren} + In den 60er Jahren gab es eine Wende da Hardware bezahlbar wurde, sodass auch normale Anwender Programme brauchten. Software hat sich unüberschaubar ausgeweitet und die Lebensdauer von Software war nun länger als von der Hardware. + + \subsection{Die Softwarekrise} + Aufgrund des abrupten Wandels von Software, die nur von den Entwicklern bedient wurde, zu Software, die für jeden war, und die damit verbundenen Probleme ist es zu der sogenannten Software Krise gekommen. Die NATO SE-Konferenz prägte diesen Begriff 1968 mit folgenden Eigenschaften + + \begin{itemize} + \item Software erfüllt nicht die Wünsche der Kunden. + \item Software ist nicht zuverlässig. + \item Softwareentwicklung und -wartung ist zu Zeit und Kostenintensive. + \item Die Kosten für Software übersteigt die Kosten für Hardware. + \item Nur 34\% der Softwareprojekte wurden erfolgreich abgeschlossen. + \end{itemize} + + \subsubsection{Ursachen} + \begin{itemize} + \item Software ist ein immaterielles Gut und hat damit keinen Materialwert. + \item Software ist schwer verständlich, sodass es zu Kommunikationsproblemen zwischen Auftraggeber und Entwickler kommt. + \item Software ist nur in den Wirkungen beim Ablauf auf Computern beobachtbar. + \item Software verschleißt nicht, sodass nur Erweiterungen angebaut werden. Dennoch kann Software altern, wie es beim 2000 Problem sichtbar geworden ist. + \item Software Fehler sind schwer zu erkennen. + \item Software ist scheinbar leicht zu verändern. + \item Kleinste Änderungen in einer Software können massive Änderungen im Verhalten der Software zur folge haben. + \item Nachweiß der wunschgemäßen Verhaltens ist schwierig. + \end{itemize} + + \subsection{Schlussfolgerung} + Aufgrund der Softwarekrise soll die Erstellung von Software nicht mehr eine kreative Kunst bleiben sondern eine Ingenieurwissenschaft mit wohldefinierten Vorgehensweisen werden. Deshalb wurde der Begriff des Software Engineering geprägt. + + \subsection{Software Engineering} + Unter Software Engineering versteht man + + \begin{itemize} + \item die Entwicklung, + \item die Pflege und + \item den Einsatz + \end{itemize} + von \emph{qualitativ hochwertiger} Software unter Einsatz von + + \begin{itemize} + \item wissenschaftlichen Methoden, + \item wirtschaftlichen Prinzipien, + \item geplanten Vorgehensmodellen, + \item Werkzeugen und + \item quantifizierbaren Zielen. + \end{itemize} + + \subsection{Usability Engineering} + Eine Erweiterung des Software Engineering ist das Usability Engineering. Mit dem Aufkommen des \emph{Apple Lisa} in den 80ern merkte man, dass interaktive, technische System nicht unabhängig von der Arbeitswelt betrachtet werden können, sondern die Aufgaben und das Umfeld entscheidend für die Gestaltung des Systems ist. Seit den 90er Jahren ist es deshalb ein strategisches Ziel aller Unternehmen eine intuitive Benutzerschnittstelle zu haben. + + Verschärft wird der Druck durch das Konzept von \emph{Software as a service}, da die Konkurrenz nur ein Klick entfernt ist und ein Produkt auf den ersten Blick überzeugen muss. \end{document} From 8ea218204c656342645d59af9249cbe8a8f8d52a Mon Sep 17 00:00:00 2001 From: Til Blechschmidt Date: Mon, 22 Jan 2018 12:37:54 +0100 Subject: [PATCH 05/11] Fixes for review by Til Blechschmidt --- src/DiskreteMathematik/FormaleGrundlagen.tex | 2 +- src/Informatik/EinfuehrungProgrammierung.tex | 2 +- src/Informatik/InformatikGesellschaft.tex | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/DiskreteMathematik/FormaleGrundlagen.tex b/src/DiskreteMathematik/FormaleGrundlagen.tex index 02ab37f..82f4d89 100644 --- a/src/DiskreteMathematik/FormaleGrundlagen.tex +++ b/src/DiskreteMathematik/FormaleGrundlagen.tex @@ -206,7 +206,7 @@ Gibt es kein Paar $x, y \in M$ bei dem aus $xRy$ $yRx$ folgt, so nennt man die Relation asymmetrisch. - Gibt es nur Paare $x, y \in M$, für die entweder aus $xRy$ nich $yRx$ folgt oder $x = y$, so nennt man die Relation antisymmetrisch. + Gibt es nur Paare $x, y \in M$, für die entweder aus $xRy$ nicht $yRx$ folgt oder $x = y$, so nennt man die Relation antisymmetrisch. \begin{figure} diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index d33feb6..3c5ecf2 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -43,5 +43,5 @@ \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den \emph{Self Evaluating Expressions}. Die Auswertung eines Ausdrucks ist beendet, wenn eine \emph{Self Evaluating Expressions} erreicht wurde. \paragraph{Funktionsaufruf} - Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Diese Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. + Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. \end{document} diff --git a/src/Informatik/InformatikGesellschaft.tex b/src/Informatik/InformatikGesellschaft.tex index 6f0d76a..c624113 100644 --- a/src/Informatik/InformatikGesellschaft.tex +++ b/src/Informatik/InformatikGesellschaft.tex @@ -35,11 +35,11 @@ \item Software ist ein immaterielles Gut und hat damit keinen Materialwert. \item Software ist schwer verständlich, sodass es zu Kommunikationsproblemen zwischen Auftraggeber und Entwickler kommt. \item Software ist nur in den Wirkungen beim Ablauf auf Computern beobachtbar. - \item Software verschleißt nicht, sodass nur Erweiterungen angebaut werden. Dennoch kann Software altern, wie es beim 2000 Problem sichtbar geworden ist. + \item Software verschleißt nicht, sodass nur Erweiterungen angebaut werden. Dennoch kann Software altern, wie es beim Millenium Bug sichtbar geworden ist. \item Software Fehler sind schwer zu erkennen. \item Software ist scheinbar leicht zu verändern. - \item Kleinste Änderungen in einer Software können massive Änderungen im Verhalten der Software zur folge haben. - \item Nachweiß der wunschgemäßen Verhaltens ist schwierig. + \item Kleinste Änderungen in einer Software können massive Änderungen im Verhalten der Software zur Folge haben. + \item Nachweiß des wunschgemäßen Verhaltens ist schwierig. \end{itemize} \subsection{Schlussfolgerung} @@ -66,5 +66,5 @@ \subsection{Usability Engineering} Eine Erweiterung des Software Engineering ist das Usability Engineering. Mit dem Aufkommen des \emph{Apple Lisa} in den 80ern merkte man, dass interaktive, technische System nicht unabhängig von der Arbeitswelt betrachtet werden können, sondern die Aufgaben und das Umfeld entscheidend für die Gestaltung des Systems ist. Seit den 90er Jahren ist es deshalb ein strategisches Ziel aller Unternehmen eine intuitive Benutzerschnittstelle zu haben. - Verschärft wird der Druck durch das Konzept von \emph{Software as a service}, da die Konkurrenz nur ein Klick entfernt ist und ein Produkt auf den ersten Blick überzeugen muss. + Verschärft wird der Druck durch das Konzept von \emph{Software as a service} (SaaS), da die Konkurrenz nur ein Klick entfernt ist und ein Produkt auf den ersten Blick überzeugen muss. \end{document} From 0a9853ea22d52520bb6b56d20dce512ca3a7cca7 Mon Sep 17 00:00:00 2001 From: Noah Peeters Date: Tue, 30 Jan 2018 09:19:26 +0100 Subject: [PATCH 06/11] Completed Auswertungsregelen --- src/Informatik/EinfuehrungProgrammierung.tex | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index 3c5ecf2..30ab7c3 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -39,8 +39,13 @@ \paragraph{Ersetzungen} Um die Bedeutung eines Ausdrucks zu bestimmen, werden nacheinander semantisch äquivalente Umformungen mit dem \emph{Ersetzungsmodell für Funktionsanwendungen} durchgeführt. Die Reihenfolge der Auswertung von Teilausdrücken in funktionalen Sprachen hat dabei keine Auswirkung auf das Endergebnis. + Beim Ersetzen von Variablen mit Konstanten wird dieser Prozess als Auswertung bezeichnet. Die Reihenfolge der Auswertungen spielt dabei in funktionalen Programmiersprachen keine Rolle. + + \paragraph{Ersetzungsmodell für Funktionsanwendungen} + Eine Funktion wird ausgewertet, in dem jeder formale Parameter im Funktionsrumpf durch das korrespondierende ausgewertete Argument ersetzt wird. + \paragraph{Self Evaluating Expressions} - \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den \emph{Self Evaluating Expressions}. Die Auswertung eines Ausdrucks ist beendet, wenn eine \emph{Self Evaluating Expressions} erreicht wurde. + \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den Self Evaluating Expressions. Die Auswertung eines Ausdrucks ist beendet, wenn eine Self Evaluating Expressions erreicht wurde. Beispiele für Self Evaluating Expressions sind Zahlen und die Wahrheitswerte $\#t$ und $\#f$. \paragraph{Funktionsaufruf} Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. From 2b403cac294b2c591cfe50ea2e467ad1def02a0f Mon Sep 17 00:00:00 2001 From: Noah Peeters Date: Tue, 30 Jan 2018 10:05:42 +0100 Subject: [PATCH 07/11] Add Aufschreibregeln --- src/Informatik/EinfuehrungProgrammierung.tex | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index 30ab7c3..e27974d 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -48,5 +48,22 @@ \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den Self Evaluating Expressions. Die Auswertung eines Ausdrucks ist beendet, wenn eine Self Evaluating Expressions erreicht wurde. Beispiele für Self Evaluating Expressions sind Zahlen und die Wahrheitswerte $\#t$ und $\#f$. \paragraph{Funktionsaufruf} - Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. + Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. + + \section{Aufschreibregeln für Funktionen} + \paragraph{Regel 1} + Verwende aussagekräftige Namen für Funktionen und deren Parameter. + + \paragraph{Regel 2} + Beschreibe den Zweck der Funktion in einem Satz mithilfe eines Kommentars in der Zeile vor der Funktionsdefinition. Der Satz sollte das Resultat der Funktion in Abhängigkeit von den Parametern beschreiben. + + \paragraph{Regel 3} + Füge unter der Funktion Tests hinzu, die die Richtigkeit der Funktion auch in Zukunft sicherstellen. Dazu müssen Test für alle Randbereiche vorhanden sein. + + \paragraph{Regel 4} + Definiere für jeden Zusammenhang zwischen Größen, die sich aus der Problemstellung ergeben, eine Funktion. + + \paragraph{Regel 5} + Ersetze jede Konstante, deren Bedeutung sich nicht aus dem Kontext ergibt, durch einen sprechenden Variablennamen. + \end{document} From b6c42df70b79f2b1b2f14e515b4e9630fdf58486 Mon Sep 17 00:00:00 2001 From: Til Blechschmidt Date: Tue, 30 Jan 2018 10:30:38 +0100 Subject: [PATCH 08/11] Reduced repetition of `Self Evaluating Expression` The term SEE was used way too much and the example of a number was given twice. --- src/Informatik/EinfuehrungProgrammierung.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index e27974d..ce79617 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -45,7 +45,7 @@ Eine Funktion wird ausgewertet, in dem jeder formale Parameter im Funktionsrumpf durch das korrespondierende ausgewertete Argument ersetzt wird. \paragraph{Self Evaluating Expressions} - \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. In Racket gehören Zahlen zu den Self Evaluating Expressions. Die Auswertung eines Ausdrucks ist beendet, wenn eine Self Evaluating Expressions erreicht wurde. Beispiele für Self Evaluating Expressions sind Zahlen und die Wahrheitswerte $\#t$ und $\#f$. + \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. Die Auswertung eines Ausdrucks ist beendet, wenn eine solche Expressions erreicht wurde. Beispiele sind Zahlen sowie die Wahrheitswerte $\#t$ und $\#f$. \paragraph{Funktionsaufruf} Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. From e63feb5567eb7494c81fb46ca6e31e855d01f6df Mon Sep 17 00:00:00 2001 From: Til Blechschmidt Date: Tue, 30 Jan 2018 10:33:15 +0100 Subject: [PATCH 09/11] Removed redundant whitespace --- src/Informatik/EinfuehrungProgrammierung.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index ce79617..ed075da 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -61,7 +61,7 @@ Füge unter der Funktion Tests hinzu, die die Richtigkeit der Funktion auch in Zukunft sicherstellen. Dazu müssen Test für alle Randbereiche vorhanden sein. \paragraph{Regel 4} - Definiere für jeden Zusammenhang zwischen Größen, die sich aus der Problemstellung ergeben, eine Funktion. + Definiere für jeden Zusammenhang zwischen Größen, die sich aus der Problemstellung ergeben, eine Funktion. \paragraph{Regel 5} Ersetze jede Konstante, deren Bedeutung sich nicht aus dem Kontext ergibt, durch einen sprechenden Variablennamen. From 0b0ff7c7840692a33451f505f2e9ba92861117d2 Mon Sep 17 00:00:00 2001 From: Til Blechschmidt Date: Tue, 30 Jan 2018 10:38:36 +0100 Subject: [PATCH 10/11] Replaced conjunction --- src/Informatik/EinfuehrungProgrammierung.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index ed075da..45f1ffb 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -48,7 +48,7 @@ \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. Die Auswertung eines Ausdrucks ist beendet, wenn eine solche Expressions erreicht wurde. Beispiele sind Zahlen sowie die Wahrheitswerte $\#t$ und $\#f$. \paragraph{Funktionsaufruf} - Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, die zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. + Bei strikter Auswertung werden erst alle Argumente eines Funktionsaufrufs berechnet. Dieses Verfahren kommt bei Racket zum Einsatz. Diesem Verfahren steht die lazy Auswertung gegenüber, welche zum Beispiel in Haskel verwendet wird, bei dem auch die Argumente erst berechnet werden, wenn sie benötigt werden. \section{Aufschreibregeln für Funktionen} \paragraph{Regel 1} From 063a71d9c14c31ada8139bcd917b05836cdf564d Mon Sep 17 00:00:00 2001 From: Til Blechschmidt Date: Tue, 30 Jan 2018 11:06:57 +0100 Subject: [PATCH 11/11] =?UTF-8?q?Added=20reference=20to=20Ersetzungsmodell?= =?UTF-8?q?=20f=C3=BCr=20Funktionsanwendung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Informatik/EinfuehrungProgrammierung.tex | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Informatik/EinfuehrungProgrammierung.tex b/src/Informatik/EinfuehrungProgrammierung.tex index 45f1ffb..7faac3e 100644 --- a/src/Informatik/EinfuehrungProgrammierung.tex +++ b/src/Informatik/EinfuehrungProgrammierung.tex @@ -37,12 +37,13 @@ Die Semantik einer Programmiersprache legt die Bedeutung von syntaktisch korrekten Ausdrücken fest. Die Semantik funktionaler Programmiersprachen orientiert sich an der Semantik der Mathematik. \paragraph{Ersetzungen} - Um die Bedeutung eines Ausdrucks zu bestimmen, werden nacheinander semantisch äquivalente Umformungen mit dem \emph{Ersetzungsmodell für Funktionsanwendungen} durchgeführt. Die Reihenfolge der Auswertung von Teilausdrücken in funktionalen Sprachen hat dabei keine Auswirkung auf das Endergebnis. + Um die Bedeutung eines Ausdrucks zu bestimmen, werden nacheinander semantisch äquivalente Umformungen mit dem \hyperref[section:Programmierung:Auswertungsregeln:ErsetzungsmodellFunktionsanwendungen]{\emph{Ersetzungsmodell für Funktionsanwendungen}} durchgeführt. Die Reihenfolge der Auswertung von Teilausdrücken in funktionalen Sprachen hat dabei keine Auswirkung auf das Endergebnis. Beim Ersetzen von Variablen mit Konstanten wird dieser Prozess als Auswertung bezeichnet. Die Reihenfolge der Auswertungen spielt dabei in funktionalen Programmiersprachen keine Rolle. \paragraph{Ersetzungsmodell für Funktionsanwendungen} - Eine Funktion wird ausgewertet, in dem jeder formale Parameter im Funktionsrumpf durch das korrespondierende ausgewertete Argument ersetzt wird. + \label{section:Programmierung:Auswertungsregeln:ErsetzungsmodellFunktionsanwendungen} + Eine Funktion wird ausgewertet, in dem jeder formale Parameter im Funktionsrumpf durch das korrespondierende ausgewertete Argument ersetzt wird. \paragraph{Self Evaluating Expressions} \emph{Self Evaluating Expressions} sind Ausdrücke, die zu sich selbst ausgewertet werden. Die Auswertung eines Ausdrucks ist beendet, wenn eine solche Expressions erreicht wurde. Beispiele sind Zahlen sowie die Wahrheitswerte $\#t$ und $\#f$.