Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions book/content/Script/01_computer/013_zahlendarstellung.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Wie in vorhergehenden Kapitel beschrieben, werden digitale Informationen als diskrete Werte dargestellt. Hierzu wird zwischen der Darstellung von ganzen Zahlen und reellen Zahlen unterschieden. Im Folgenden werden beide Darstellungsformen vorgestellt. "
"Wie im vorhergehenden Kapitel beschrieben, werden digitale Informationen als diskrete Werte dargestellt. Hierzu wird zwischen der Darstellung von ganzen Zahlen und reellen Zahlen unterschieden. Im Folgenden werden beide Darstellungsformen vorgestellt. "
]
},
{
Expand Down Expand Up @@ -84,7 +84,7 @@
"source": [
"## Darstellung ganzer Zahlen\n",
"\n",
"Die Grundidee bei der digitalen Darstellung von Zahlen, hier ganze Zahlen, ist die Verwendung einer festen Anzahl von Bits. Diese bilden dann eine entsprechende Anazahl von Stellen im Dualsystem ab. Dieser Idee folgend, kann eine ganze Zahl mit Vorzeichen wie folgt als 8-Bit-Zahl dargestellt werden:"
"Die Grundidee bei der digitalen Darstellung von Zahlen, hier ganze Zahlen, ist die Verwendung einer festen Anzahl von Bits. Diese bilden dann eine entsprechende Anzahl von Stellen im Dualsystem ab. Dieser Idee folgend, kann eine ganze Zahl mit Vorzeichen wie folgt als 8-Bit-Zahl dargestellt werden:"
]
},
{
Expand Down Expand Up @@ -139,7 +139,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Natürlich können auch länger Bitfolgen für einen größeren Zahlenbereich genutzt werden. Zusätzlich kann eines der Bits auch genutzt werden, um das Vorzeichen darzustellen. Folgende Abbildung zeigt die Darstellung einer vorzeichenbehafteten ganzen Zahl mit 32 Bit."
"Natürlich können auch länger Bitfolgen für einen größeren Zahlenbereich genutzt werden. Zusätzlich kann eines der Bits auch genutzt werden, um das Vorzeichen darzustellen. Hierbei wird die Stelle ganz links dem Vorzeichen zugeordnet, wobei eine Null ein positives und eine Eins ein negatives Vorzeichen darstellt. Folgende Abbildung zeigt die Darstellung einer vorzeichenbehafteten ganzen Zahl mit 32 Bit."
]
},
{
Expand Down Expand Up @@ -168,7 +168,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In der Informatik wird solch eine Darstellung von ganzen Zahlen als [Integer Datentyp](https://de.wikipedia.org/wiki/Integer_(Datentyp)) bezeichnet. Im Englischen wird dieser als *integer* bezeichnet."
"In der Informatik wird solch eine Darstellung von ganzen Zahlen als [Integer Datentyp](https://de.wikipedia.org/wiki/Integer_(Datentyp)), kurz int, bezeichnet. Im Englischen wird dieser als *integer* bezeichnet."
]
},
{
Expand All @@ -177,7 +177,7 @@
"source": [
"## Darstellung reeller Zahlen\n",
"\n",
"Reelle Zahlen können nur angenährt als eine [Gleitkommazahl](https://de.wikipedia.org/wiki/Gleitkommazahl) digital dargestellt werden. Dazu wir die zur Verfügung stehende Menge an Bits auf folgende Zuordnungen aufgeteilt: Vorzeichen $\\sf s$, Exponent $\\sf e$ und Mantisse $\\sf m$. Jedem dieser Bereiche wird eine feste Anzahl von Bits zugeordnet wodruch sich der Wertebereich und Genauigkeit der Darstellung ergibt. Im Allgemeinen kann somit eine Gleitkommazahl dargestellt werden als\n",
"Reelle Zahlen können nur angenährt als eine [Gleitkommazahl](https://de.wikipedia.org/wiki/Gleitkommazahl) digital dargestellt werden. Dazu wir die zur Verfügung stehende Menge an Bits auf folgende Zuordnungen aufgeteilt: Vorzeichen $\\sf s$, Exponent $\\sf e$ und Mantisse $\\sf m$. Jedem dieser Bereiche wird eine feste Anzahl von Bits zugeordnet, wodurch sich der Wertebereich und die Genauigkeit der Darstellung ergibt. Im Allgemeinen kann somit eine Gleitkommazahl dargestellt werden als\n",
"\n",
"$$ \\sf z = (-1)^s \\cdot m \\cdot 2^e .$$"
]
Expand Down Expand Up @@ -205,7 +205,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Aus der obigen Festlegung der Bitzuweisung, ergeben sich die Größenordnung für den Wertebereich, welcher durch den Exponenten vorgegeben ist. Um auch Zahlen kleiner 1 darstellen zu können, kann der Exponent $\\sf e$ auch negative Werte annehmen.\n",
"Aus der obigen Festlegung der Bitzuweisung, ergibt sich die Größenordnung für den Wertebereich, welcher durch den Exponenten vorgegeben ist. Um auch Zahlen kleiner 1 darstellen zu können, kann der Exponent $\\sf e$ auch negative Werte annehmen.\n",
"\n",
"Für den Exponenten $\\sf e$ gilt\n",
"\n",
Expand Down Expand Up @@ -237,7 +237,7 @@
"source": [
"## Zeichendarstellung\n",
"\n",
"Neben Zahlen können auch Zeichen, z.B. für die Darstellung von Text, abgebildet werden. Die Grundidee ist dabei, dass die Zeichen als vorzeichenlose ganze Zahlen gespeichert und dann anhand einer Tabelle interpretiert werden. Ein Beispiel für eine solche Tabelle, welche den Zahlenwerte Zeichen zuordnet, ist die [ASCII Tabelle](https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange). In dieser werden 7-Bit-Zahlen, d.h. 128 Zeichen, kodiert. In der 1963 erstellten – und bis heute genutzten – Tabelle, sind sowohl nicht-druckbare Zeichen (z.B. Zeilenvorschub, Tabulatorzeichen) als auf folgende druckbare Zeichen enthalten:\n",
"Neben Zahlen können auch Zeichen, z.B. für die Darstellung von Text, abgebildet werden. Die Grundidee ist dabei, dass die Zeichen als vorzeichenlose ganze Zahlen gespeichert und dann anhand einer Tabelle interpretiert werden. Ein Beispiel für eine solche Tabelle, welche den Zahlenwerten Zeichen zuordnet, ist die [ASCII Tabelle](https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange). In dieser werden 7-Bit-Zahlen, d.h. 128 Zeichen, kodiert. In der 1963 erstellten – und bis heute, in aktualisierter Form, genutzten – Tabelle, sind sowohl nicht-druckbare Zeichen (z.B. Zeilenvorschub, Tabulatorzeichen) als auch folgende druckbare Zeichen enthalten:\n",
"\n",
"```\n",
" !\"#$%&'()*+,-./0123456789:;<=>?\n",
Expand Down
8 changes: 4 additions & 4 deletions book/content/Script/01_computer/021_sortieralgorithmen.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"source": [
"Sortieralgoritmen werden genutzt um Listen von Werten der Größe nach zu sortieren. Anwendung finden diese Algorithmen bei Datenbanken oder Suchvorgängen. Insbesondere bei langen Listen mit Millionen oder Milliarden Einträgen ist es wichtig, dass der Algorithmus mit möglichst wenigen Operationen pro Element auskommt. Diese, als Komplexität bezeichnete Eigenschaft, wird im nächsten Kapitel genauer erläutert. \n",
"\n",
"Zunächst werden zwei einfache Sortieralgorithmen \n",
"Zunächst werden zwei einfache Sortieralgorithmen vorgestellt: \n",
"\n",
"* [Selectionsort](https://de.wikipedia.org/wiki/Selectionsort)\n",
"* [Bubblesort](https://de.wikipedia.org/wiki/Bubblesort)\n",
"\n",
"vorgestellt. Diese werden in der Praxis kaum noch eingesetzt, da es eine Vielzahl anderer [Sortierverfahren](https://de.wikipedia.org/wiki/Sortierverfahren) gibt, welche effektiver arbeiten. Jedoch eignen sich diese beiden besonders gut, um die Grundideen zu verdeutlichen. "
"Diese werden in der Praxis kaum noch eingesetzt, da es eine Vielzahl anderer [Sortierverfahren](https://de.wikipedia.org/wiki/Sortierverfahren) gibt, welche effektiver arbeiten. Jedoch eignen sich diese beiden besonders gut, um die Grundideen zu verdeutlichen. "
]
},
{
Expand All @@ -36,7 +36,7 @@
"\n",
"1. Wiederhole die Schritte 2 bis 4 $\\sf n$ Mal. Setzte die Hilfsvariable $i$ initial auf Null.\n",
"1. Suche den minimalen Wert der Liste ab dem $\\sf i$-ten Element.\n",
"1. Tausche dieses Element mit dem $\\sf i$-ten Element.\n",
"1. Verschiebe dieses Element an die Stelle des (dann ehemals) $\\sf i$-ten Element.\n",
"1. Erhöhe den Wert von $\\sf i$ um Eins.\n",
"1. Die Vertauschungen der Elemente haben zu einer sortierten Liste geführt."
]
Expand Down Expand Up @@ -156,7 +156,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Im Gegensatz zum Selectionsort beruht die Idee des Bubblesort auf rein lokalen Operationen. D.h. hier wird nicht nach den maximalen Werten gesucht, sondern durch Vertauschungen eine Sortierung erzielt. Das Verfahren für eine Liste mit $\\sf n$ Elementen ist durch folgende Vorschrift gegeben.\n",
"Im Gegensatz zum Selectionsort beruht die Idee des Bubblesorts auf rein lokalen Operationen. D.h. hier wird nicht nach den maximalen Werten gesucht, sondern durch Vertauschungen eine Sortierung erzielt. Das Verfahren für eine Liste mit $\\sf n$ Elementen ist durch folgende Vorschrift gegeben.\n",
"\n",
"1. Die Schritte 2 bis 4 werden $\\sf n$ Mal durchgeführt. Die Hilfsvariable $\\sf i$ wird initial auf Null gesetzt.\n",
"1. Starte beim $\\sf i$-ten Element und iteriere bis zum Ende der Liste. Falls das aktuell betrachtete Element größer ist als das Folgende, tausche beide Elemente.\n",
Expand Down
6 changes: 3 additions & 3 deletions book/content/Script/01_computer/022_eigenschaften.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Terminiertheit bedeutet, dass ein Algorithmus nach endlich vielen Schritten anhält, oder er bricht kontrolliert ab. Einfache Beispiele:\n",
"Terminiertheit bedeutet, dass ein Algorithmus nach endlich vielen Schritten anhält, oder er kontrolliert abbricht. Einfache Beispiele:\n",
"* Addition zweier Dezimalzahlen\n",
"* Summe der ersten N natürlichen Zahlen"
]
Expand All @@ -64,7 +64,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Allerdings kann die Terminiertheit nicht für alle Algerithmen gezeigt werden. Das [Halteproblem](https://de.wikipedia.org/wiki/Halteproblem) besagt, dass es gibt keinen Verfahren gibt, welches immer zutreffend sagen kann, ob der Algorithmus für die Eingabe terminiert. Hierzu kann das [Collatz-Problem](https://de.wikipedia.org/wiki/Collatz-Problem) als Beispiel herangezogen werden. \n",
"Allerdings kann die Terminiertheit nicht für alle Algorithmen gezeigt werden. Das [Halteproblem](https://de.wikipedia.org/wiki/Halteproblem) besagt, dass es kein Verfahren gibt, welches immer zutreffend sagen kann, ob der Algorithmus für die Eingabe terminiert. Hierzu kann das [Collatz-Problem](https://de.wikipedia.org/wiki/Collatz-Problem) als Beispiel herangezogen werden. \n",
"\n",
"Die Zahlenfolge wird wie folgt konstruiert: \n",
"* beginne mit irgendeiner natürlichen Zahl $\\sf n_0 > 0$\n",
Expand Down Expand Up @@ -182,7 +182,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Um sich ein besseres Bild zu den Auswirkungen hoher Kompexitäten zu machen, sei folgendes Beispiel gegeben.\n",
"Um sich ein besseres Bild zu den Auswirkungen hoher Komplexitäten zu machen, sei folgendes Beispiel gegeben.\n",
"* ein Berechnungsschritt (unabhängig von der Problemgröße $\\sf n$) sei z.B. 1 s lang\n",
"* das $\\sf n$ sei beispielsweise 1000\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Eines der einfachsten und auch ältesten Verfahren zur Suche von Nullstellen von Funktionen ist das [Newton-Raphson-Verfahren](https://de.wikipedia.org/wiki/Newtonverfahren), welches bereits im 17-ten Jahrhundert entwickelt und eingestetzt wurde."
"Eines der einfachsten und auch ältesten Verfahren zur Suche von Nullstellen von Funktionen ist das [Newton-Raphson-Verfahren](https://de.wikipedia.org/wiki/Newtonverfahren), welches bereits im 17-ten Jahrhundert entwickelt und eingesetzt wurde."
]
},
{
Expand All @@ -64,10 +64,10 @@
"### Anwendungen\n",
"Das Finden von Nullstellen ist die Grundlage für viele Verfahren, welche z.B. für \n",
"* das Lösen von nicht-linearen Gleichungen, \n",
"* das Finden von Extremwerten, oder\n",
"* das Finden von Extremwerten oder\n",
"* Optimierungsverfahren\n",
"\n",
"eingesetzt werden kann.\n",
"eingesetzt werden können.\n",
" "
]
},
Expand All @@ -91,7 +91,7 @@
"source": [
"### Beispiel 1\n",
"\n",
"Gegeben ist die Funktion $\\sf f(x) = x^2 - 1$. Die Ableitung ist gegeben durch $\\sf f'(x) = 2x$ und die Nullstellen lauten $\\sf x_{ns} = \\{-1, 1\\}$."
"Gegeben ist die Funktion $\\sf f(x) = x^2 - 1$. Die Ableitung ist gegeben durch $\\sf f'(x) = 2x$ (im Folgenden als $\\sf fp$) und die Nullstellen lauten $\\sf x_{ns} = \\{-1, 1\\}$."
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions book/content/Script/01_computer/02_algorithmen.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"source": [
"<font size='5'>**Definition**</font>\n",
"\n",
"Ein Algorithmus ist eine formale Vorschrift darüber, wie die Lösung einer Fragestellung gefunden werden kann. Dabei handelt es sich meist um eine Folge von einfachen Anweisungen, welche zur Lösung komplexer Probleme führen kann. \n",
"Ein Algorithmus ist eine formale Vorschrift darüber, wie die Lösung einer Fragestellung gefunden werden kann. Dabei handelt es sich meist um eine Folge von einfachen Anweisungen, welche zur Lösung komplexer Probleme führen können. \n",
"\n",
"\n",
":::{figure-md} fig-algorithmus\n",
Expand All @@ -30,7 +30,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Die obigen Beispiele für einen Algorithmus sind zwei von vielen, welche von Menschen eingesetzt werden (können):\n",
"Die obigen Beispiele für Algorithmen sind zwei von vielen, welche von Menschen eingesetzt werden (können):\n",
"* Schriftliches Rechnen\n",
"* Lösen von linearen Gleichungssystemen\n",
"* Bestimmung des Durchschnitts\n",
Expand Down
6 changes: 3 additions & 3 deletions book/content/Script/01_computer/032_komponenten.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"\n",
"Die grundlegenden Recheneinheiten zum Rechnen mit binären Zahlen sind die logischen Gatter. Sie realisieren die logischen Operationen, z.B. das logische UND, ODER und NICHT, in Form von sogenannten [Logikgattern](https://de.wikipedia.org/wiki/Logikgatter). Das dafür notwendige elektrische Bauteil ist der [Transistor](https://de.wikipedia.org/wiki/Transistor), welcher den allergrößten Teil des datenverarbeitenden Teils eines Computers ausmacht.\n",
"\n",
"Beispielhaft ist hier der Schaltplan eines UND-Gatters als Schaltkreis mit fünf Transistoren:\n",
"Beispielhaft ist hier der Schaltplan eines UND-Gatters als Schaltkreis mit sechs Transistoren:\n",
"\n",
":::{figure-md} fig-and\n",
"\n",
Expand Down Expand Up @@ -173,7 +173,7 @@
"source": [
"### Hierarchie des Speichers\n",
"\n",
"Optimal wäre ein möglichst schneller Speicher. Jedoch steigt der Herstellungspreis mit der Zugriffsgeschwindigkeit, so dass sich die folgende Volumenverteilung etabliert hat. Die verschiedenen Stufen versuchen die langsamen Zugriffszeiten zu puffern. Insbesondere ist für numerische Berechnungen der Cache, welcher selbst in drei Stufen, sogenannte Level, aufgeteilt ist. \n",
"Optimal wäre ein möglichst schneller Speicher. Jedoch steigt der Herstellungspreis mit der Zugriffsgeschwindigkeit, so dass sich die folgende Volumenverteilung etabliert hat. Die verschiedenen Stufen versuchen die langsamen Zugriffszeiten zu puffern, wie insbesondere der Cache für numerische Berechnungen. Der Cache ist selber wiederum in drei Stufen, sogenannte Level, aufgeteilt. \n",
"\n",
":::{figure-md} fig-speicher \n",
"![Speicherhierarchie](./bilder/storage_hierachy.svg)\n",
Expand All @@ -188,7 +188,7 @@
"source": [
"### Beispiel AMD Zen Architektur\n",
"\n",
"Welche Operation als nächstes abgearbeitet wird – und das Veranlassen dieser Operation – wird von der Steuerlogik auf der CPU (central processing unit) geregelt. Daneben befindet sich auf dem Mikrochip auch noch die arithmetische Einheit (Rechenwerk) und der Cache-Speicher, als auch andere Kontrolleinheiten. Diese werden anhand der [AMD Zen Architektur](https://en.wikichip.org/wiki/amd/microarchitectures/zen) exemplarisch vorgestellt.\n",
"Welche Operation als nächstes abgearbeitet wird – und das Veranlassen dieser Operation – wird von der Steuerlogik auf der CPU (central processing unit) geregelt. Daneben befinden sich auf dem Mikrochip auch noch die arithmetische Einheit (Rechenwerk) und der Cache-Speicher, als auch andere Kontrolleinheiten. Diese werden anhand der [AMD Zen Architektur](https://en.wikichip.org/wiki/amd/microarchitectures/zen) exemplarisch vorgestellt.\n",
"\n",
"**Zen Core**\n",
"\n",
Expand Down