Sie sind hier
E-Book

Informatik

Eine praktische Einführung mit Bash und Python

AutorTobias Häberlein
VerlagDe Gruyter Oldenbourg
Erscheinungsjahr2017
ReiheDe Gruyter Studium 
Seitenanzahl242 Seiten
ISBN9783110496871
FSK5
Altersgruppe13 – 
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis29,95 EUR
Die praktische Informatik lebt vom Ausprobieren verschiedener Lösungswege, dem Experimentieren mit Programmkonstrukten und Algorithmen, und allgemein vom 'Selbermachen'. Darauf baut das didaktische Konzept des Buchs auf: Anhand einer Vielzahl an Aufgaben kann der Student die präsentierten Konzepte selbst erfahren, mit Ihnen arbeiten und so die eigentlichen Probleme der Informatik wirklich verstehen.

Kaufen Sie hier:

Horizontale Tabs

Blick ins Buch
Inhaltsverzeichnis
Vorwort????????????????????????????5
Inhalt??????????????????????????11
1 Was ist Informatik?????????????????????????????????????????????????????????15
2 Unix/Linux und Shell-Programmierung????????????????????????????????????????????????????????????????????????????????????????22
2.1 Grundlegendes????????????????????????????????????????????????22
2.1.1 Wozu dient ein Betriebssystem???????????????????????????????????????????????????????????????????????????????????????22
2.1.2 Unix vs. Linux??????????????????????????????????????????????????????24
2.1.3 Der Aufbau von Linux??????????????????????????????????????????????????????????????????24
2.1.4 Die Shell????????????????????????????????????????????25
2.1.5 Multitasking??????????????????????????????????????????????????26
2.1.6 Das Dateisystem von Unix??????????????????????????????????????????????????????????????????????????27
2.2 Erste wichtige Kommandos??????????????????????????????????????????????????????????????????????28
2.2.1 Aufbau von Shell-Kommandos??????????????????????????????????????????????????????????????????????????????29
2.2.2 Befehle für Verzeichnisse????????????????????????????????????????????????????????????????????????????30
2.2.3 Befehle für Dateien????????????????????????????????????????????????????????????????31
2.2.4 Befehle für die Benutzerverwaltung??????????????????????????????????????????????????????????????????????????????????????????????33
2.2.5 Befehle des Prozesssystems??????????????????????????????????????????????????????????????????????????????34
2.2.6 Sonstige Befehle??????????????????????????????????????????????????????????35
2.3 Textdateien erstellen und editieren mit vi??????????????????????????????????????????????????????????????????????????????????????????????????????????36
2.4 Features der Shell??????????????????????????????????????????????????????????38
2.4.1 Eingabe????????????????????????????????????????38
2.4.2 Wildcards????????????????????????????????????????????39
2.4.3 Umleitungen und Pipes????????????????????????????????????????????????????????????????????40
2.4.4 Shellvariablen??????????????????????????????????????????????????????43
2.4.5 Ausblendung von Sonderbedeutungen????????????????????????????????????????????????????????????????????????????????????????????45
2.4.6 Verknüpfungen von Kommandos????????????????????????????????????????????????????????????????????????????????46
2.5 Weitere Kommandos????????????????????????????????????????????????????????48
2.5.1 Das find-Kommando????????????????????????????????????????????????????????????48
2.5.2 Das grep-Kommando????????????????????????????????????????????????????????????50
2.5.3 Der cut-Befehl??????????????????????????????????????????????????????53
2.5.4 Das sort-Kommando????????????????????????????????????????????????????????????54
2.5.5 Die head- und tail-Kommandos??????????????????????????????????????????????????????????????????????????????????55
2.6 Shell-Programmierung??????????????????????????????????????????????????????????????55
2.6.1 Dateneingabe??????????????????????????????????????????????????56
2.6.2 Kommandozeilenparameter????????????????????????????????????????????????????????????????????????57
2.6.3 Bedingungen testen??????????????????????????????????????????????????????????????58
2.6.4 Programmschleifen????????????????????????????????????????????????????????????61
3 Python-Programmierung????????????????????????????????????????????????????????????65
3.1 Arbeiten mit Python????????????????????????????????????????????????????????????66
3.1.1 Python 3 vs. Python 2????????????????????????????????????????????????????????????????????66
3.1.2 Installation??????????????????????????????????????????????????67
3.1.3 Ein erstes Python-Programm??????????????????????????????????????????????????????????????????????????????67
3.1.4 Die Python-Shell??????????????????????????????????????????????????????????68
3.1.5 Python Notebooks??????????????????????????????????????????????????????????68
3.2 Einfache Datentypen????????????????????????????????????????????????????????????70
3.2.1 Zahlen??????????????????????????????????????70
3.2.2 Boolesche Werte????????????????????????????????????????????????????????70
3.2.3 Strings????????????????????????????????????????71
3.2.4 Variablen????????????????????????????????????????????71
3.2.5 Operatoren??????????????????????????????????????????????72
3.3 Grundlegende Konzepte????????????????????????????????????????????????????????????????74
3.3.1 Einrücktiefe??????????????????????????????????????????????????74
3.3.2 Kontrollfluss????????????????????????????????????????????????????75
3.3.3 Schleifenabbruch??????????????????????????????????????????????????????????79
3.3.4 Anweisungen vs. Ausdrücke????????????????????????????????????????????????????????????????????????????79
3.3.5 Funktionen??????????????????????????????????????????????81
3.4 Zusammengesetzte Datentypen????????????????????????????????????????????????????????????????????????????84
3.4.1 Listen und Sequenzen??????????????????????????????????????????????????????????????????84
3.4.2 Allgemeine Sequenzoperationen????????????????????????????????????????????????????????????????????????????????????86
3.4.3 Wichtige Operationen auf Listen????????????????????????????????????????????????????????????????????????????????????????88
3.4.4 Referenzen??????????????????????????????????????????????90
3.4.5 Tupel????????????????????????????????????91
3.4.6 Dictionaries??????????????????????????????????????????????????91
3.4.7 Strings (Fortsetzung)????????????????????????????????????????????????????????????????????94
3.5 Funktionale Programmierung??????????????????????????????????????????????????????????????????????????97
3.5.1 Listenkomprehensionen????????????????????????????????????????????????????????????????????98
3.5.2 Die map-Funktion??????????????????????????????????????????????????????????103
3.5.3 Die filter-Funktion????????????????????????????????????????????????????????????????105
3.5.4 Die reduce-Funktion????????????????????????????????????????????????????????????????107
3.6 Dateien und Verzeichnisse????????????????????????????????????????????????????????????????????????110
3.6.1 Datei-Objekte????????????????????????????????????????????????????111
3.6.2 Dateimanipulation mit Listenkomprehensionen????????????????????????????????????????????????????????????????????????????????????????????????????????????????114
3.6.3 Verzeichnisse????????????????????????????????????????????????????117
3.7 Objektorientierte Programmierung??????????????????????????????????????????????????????????????????????????????????????119
3.7.1 Definition und Verwendung einer Klasse??????????????????????????????????????????????????????????????????????????????????????????????????????120
4 Programmierung mit regulären Ausdrücken????????????????????????????????????????????????????????????????????????????????????????????????125
4.1 Verwendung Regulärer Ausdrücke in Python??????????????????????????????????????????????????????????????????????????????????????????????????????125
4.1.1 Das Kommando re.findall????????????????????????????????????????????????????????????????????????126
4.1.2 Das Kommando re.sub????????????????????????????????????????????????????????????????127
4.1.3 Das Kommando re.search??????????????????????????????????????????????????????????????????????130
4.2 Komponenten Regulärer Ausdrücke????????????????????????????????????????????????????????????????????????????????????131
4.2.1 Einfache Konstrukte????????????????????????????????????????????????????????????????132
4.2.2 Rückwärtsreferenzen (Backreferences)??????????????????????????????????????????????????????????????????????????????????????????????????138
4.2.3 Greedy vs. Non-Greedy????????????????????????????????????????????????????????????????????140
4.2.4 Lookahead????????????????????????????????????????????141
4.3 Reguläre Ausdrücke vs. Suchausdrücke mit Listenkomprehensionen??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????144
5 Datenbanken und Datenbankprogrammierung????????????????????????????????????????????????????????????????????????????????????????????????149
5.1 Wozu Datenbanken?????????????????????????????????????????????????????????149
5.1.1 Daten-Persistenz??????????????????????????????????????????????????????????149
5.1.2 Dateisystem als Datenspeicher????????????????????????????????????????????????????????????????????????????????????149
5.1.3 Anforderungen an Persistenzmechanismen??????????????????????????????????????????????????????????????????????????????????????????????????????150
5.2 Datenbankmanagementsysteme (DBMS)????????????????????????????????????????????????????????????????????????????????????????151
5.2.1 Transaktionskonzept????????????????????????????????????????????????????????????????151
5.2.2 Funktionsweise eines DBMS????????????????????????????????????????????????????????????????????????????152
5.2.3 Einsatz von DBMS??????????????????????????????????????????????????????????153
5.3 Relationale DBMS??????????????????????????????????????????????????????153
5.3.1 Tabellen, Schemata, Zeilen, Spalten????????????????????????????????????????????????????????????????????????????????????????????????153
5.3.2 Erstellen einer Tabelle in MySQL mit Python????????????????????????????????????????????????????????????????????????????????????????????????????????????????154
5.4 SQL-Abfragen??????????????????????????????????????????????158
5.4.1 Relationenalgebra????????????????????????????????????????????????????????????158
5.4.2 Das SELECT-Kommando????????????????????????????????????????????????????????????????159
5.4.3 Zählen und Statistiken??????????????????????????????????????????????????????????????????????162
5.4.4 Joins: Verknüpfung von Tabellen????????????????????????????????????????????????????????????????????????????????????????163
5.5 Entwurf relationaler DBMS????????????????????????????????????????????????????????????????????????164
5.5.1 Entity-Relationship-Diagramme????????????????????????????????????????????????????????????????????????????????????164
5.5.2 Umsetzung in ein relationales Modell??????????????????????????????????????????????????????????????????????????????????????????????????167
5.5.3 Normalisierung??????????????????????????????????????????????????????169
5.6 Nicht-Relationale DBMS??????????????????????????????????????????????????????????????????172
5.6.1 CouchDB: Datenverfügbarkeit vs. Datenkonsistenz????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????172
5.6.2 Funktionsprinzipien????????????????????????????????????????????????????????????????173
5.6.3 JSON??????????????????????????????????176
5.6.4 Erzeugen einer CouchDB-Datenbank mit Python????????????????????????????????????????????????????????????????????????????????????????????????????????????????177
5.6.5 Benutzerdefinierte Views mit MapReduce??????????????????????????????????????????????????????????????????????????????????????????????????????179
6 Internet und Internetprogrammierung????????????????????????????????????????????????????????????????????????????????????????184
6.1 Einführung in die Funktionsweise des Internet????????????????????????????????????????????????????????????????????????????????????????????????????????????????184
6.1.1 Geschichtliches????????????????????????????????????????????????????????184
6.1.2 Netzwerk-Protokolle????????????????????????????????????????????????????????????????185
6.1.3 Das TCP/IP-Referenzmodell????????????????????????????????????????????????????????????????????????????185
6.1.4 Internetworking????????????????????????????????????????????????????????187
6.1.5 Sockets????????????????????????????????????????188
6.1.6 Host, Server, Client??????????????????????????????????????????????????????????????????189
6.2 Socketprogrammierung??????????????????????????????????????????????????????????????190
6.3 Dateitransfer mit FTP????????????????????????????????????????????????????????????????193
6.4 HTML und Datentransfer von URLs????????????????????????????????????????????????????????????????????????????????????195
6.4.1 HTML??????????????????????????????????195
6.4.2 Datentransfer von URLs??????????????????????????????????????????????????????????????????????196
6.5 Dynamische Web-Seiten????????????????????????????????????????????????????????????????198
6.5.1 htmlgen: Generierung von HTML-Code??????????????????????????????????????????????????????????????????????????????????????????????198
6.5.2 Ein einfacher Web-Server??????????????????????????????????????????????????????????????????????????200
6.5.3 Ein erstes CGI-Skript????????????????????????????????????????????????????????????????????201
6.5.4 Komplexere CGI-Skripte??????????????????????????????????????????????????????????????????????202
7 Nebenläufige und Parallele Programmierung????????????????????????????????????????????????????????????????????????????????????????????????????205
7.1 Grundlegendes????????????????????????????????????????????????205
7.1.1 Prozesse, Tasks und Threads????????????????????????????????????????????????????????????????????????????????205
7.1.2 Nebenläufigkeit vs. Parallelität??????????????????????????????????????????????????????????????????????????????????????????206
7.1.3 Multithreading, Time-Sharing und Threadzustände????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????207
7.1.4 Programmierung mit Threads vs. Multi-Core-Programmierung??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????208
7.2 Parallele Rechnerarchitekturen??????????????????????????????????????????????????????????????????????????????????208
7.2.1 NOWs??????????????????????????????????209
7.2.2 SMPs und Mehrkern-Prozessoren????????????????????????????????????????????????????????????????????????????????????209
7.2.3 GPUs??????????????????????????????????210
7.2.4 Hardware-seitiges Multithreading??????????????????????????????????????????????????????????????????????????????????????????212
7.3 Techniken Paralleler Programmierung????????????????????????????????????????????????????????????????????????????????????????????212
7.3.1 Locks????????????????????????????????????212
7.3.2 Message-Passing????????????????????????????????????????????????????????213
7.3.3 Bulk Synchronous Parallel Model (BSP)????????????????????????????????????????????????????????????????????????????????????????????????????213
7.4 Multithread-Programmierung in Python??????????????????????????????????????????????????????????????????????????????????????????????214
7.4.1 Das threading-Modul????????????????????????????????????????????????????????????????215
7.4.2 Verwendung von Locks??????????????????????????????????????????????????????????????????216
7.4.3 Das queue-Modul????????????????????????????????????????????????????????219
7.5 Multicore-Programmierung in Python??????????????????????????????????????????????????????????????????????????????????????????222
7.5.1 Das multiprocessing-Modul????????????????????????????????????????????????????????????????????????????222
7.5.2 Das mpi4py-Modul??????????????????????????????????????????????????????????225
Literatur????????????????????????????????233
Stichwortverzeichnis??????????????????????????????????????????????????????234

Weitere E-Books zum Thema: Informatik - Algorithmen - Softwaresysteme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Software Engineering

E-Book Software Engineering
Architektur-Design und Prozessorientierung Format: PDF

Das Lehrbuch behandelt alle Aspekte der Software-Entwicklung, besonders aber Methoden und Richtlinien zur Herstellung großer und qualitativ hochwertiger Softwareprodukte. Es vermittelt das zur…

Weitere Zeitschriften

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 53. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

BEHINDERTEPÄDAGOGIK

BEHINDERTEPÄDAGOGIK

Für diese Fachzeitschrift arbeiten namhafte Persönlichkeiten aus den verschiedenen Fotschungs-, Lehr- und Praxisbereichen zusammen. Zu ihren Aufgaben gehören Prävention, Früherkennung, ...

Berufsstart Gehalt

Berufsstart Gehalt

»Berufsstart Gehalt« erscheint jährlich zum Sommersemester im Mai mit einer Auflage von 50.000 Exemplaren und ermöglicht Unternehmen sich bei Studenten und Absolventen mit einer ...

BIELEFELD GEHT AUS

BIELEFELD GEHT AUS

Freizeit- und Gastronomieführer mit umfangreichem Serviceteil, mehr als 700 Tipps und Adressen für Tag- und Nachtschwärmer Bielefeld genießen Westfälisch und weltoffen – das zeichnet nicht ...

Gastronomie Report

Gastronomie Report

News & Infos für die Gastronomie: Tipps, Trends und Ideen, Produkte aus aller Welt, Innovative Konzepte, Küchentechnik der Zukunft, Service mit Zusatznutzen und vieles mehr. Frech, offensiv, ...

DER PRAKTIKER

DER PRAKTIKER

Technische Fachzeitschrift aus der Praxis für die Praxis in allen Bereichen des Handwerks und der Industrie. “der praktiker“ ist die Fachzeitschrift für alle Bereiche der fügetechnischen ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

building & automation

building & automation

Das Fachmagazin building & automation bietet dem Elektrohandwerker und Elektroplaner eine umfassende Übersicht über alle Produktneuheiten aus der Gebäudeautomation, der Installationstechnik, dem ...