Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
16
Vorwort
17
1 Einführung
25
1.1 Informationstechnik, Informatik und EDV
25
1.1.1 Fachrichtungen der Informatik
26
1.1.2 Überblick über die IT-Ausbildung
27
1.2 Die Geschichte der Rechenmaschinen und Computer
35
1.2.1 Die Vorgeschichte
37
1.2.2 Die Entwicklung der elektronischen Rechner
39
1.2.3 Die Entwicklung der Programmiersprachen
48
1.3 Digitale Speicherung und Verarbeitung von Informationen
55
1.3.1 Digitale Bilddaten
56
1.3.2 Digitale Audiodaten
57
1.3.3 Digitale Speicherung von Text
58
1.4 Übungsaufgaben
59
2 Mathematische Grundlagen
63
2.1 Einführung in die Logik
63
2.1.1 Aussagen
64
2.1.2 Aussageformen
65
2.1.3 Logische Verknüpfungen
66
2.1.4 Mengenoperationen
75
2.1.5 Folgen und Reihen
80
2.2 Weitere mathematische Verfahren
83
2.2.1 Dreisatz
83
2.2.2 Lösen von Gleichungssystemen
83
2.2.3 Grundlagen der Stochastik
86
2.2.4 Grundlagen der linearen Algebra
93
2.2.5 Grundlagen der Analysis
100
2.3 Informationsspeicherung im Computer
105
2.3.1 Zahlensysteme
105
2.3.2 Bits und Bytes
111
2.4 Übungsaufgaben
115
2.4.1 Praktische Übungen
115
2.4.2 Kontrollfragen
117
3 Elektronische und technische Grundlagen
121
3.1 Elektronische Grundlagen
121
3.1.1 Einfache Schaltungen
122
3.1.2 Zusammengesetzte Schaltungen
125
3.2 Automatentheorien und -simulationen
129
3.2.1 Algorithmen
129
3.2.2 Die Turing-Maschine
136
3.2.3 Der virtuelle Prozessor
140
3.3 Übungsaufgaben
146
3.3.1 Praktische Übungen
146
3.3.2 Kontrollfragen
147
4 Hardware
149
4.1 Grundlagen
149
4.2 Die Zentraleinheit
153
4.2.1 Aufbau und Aufgaben des Prozessors
155
4.2.2 Der Arbeitsspeicher
165
4.2.3 Das BIOS
167
4.2.4 Bus- und Anschlusssysteme
172
4.3 Die Peripherie
181
4.3.1 Massenspeicher
182
4.3.2 Eingabegeräte
196
4.3.3 Ausgabegeräte
199
4.3.4 Soundhardware
205
4.4 Übungsaufgaben
206
5 Netzwerkgrundlagen
213
5.1 Einführung
213
5.1.1 Was ist ein Netzwerk?
213
5.1.2 Entstehung der Netzwerke
215
5.2 Funktionsebenen von Netzwerken
220
5.2.1 Das OSI-Referenzmodell
221
5.2.2 Das Schichtenmodell der Internetprotokolle
223
5.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells
226
5.3 Klassifizierung von Netzwerken
230
5.3.1 Die Reichweite des Netzwerks
230
5.3.2 Die Netzwerktopologie
232
5.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren
239
5.4.1 Die verschiedenen Ethernet-Standards
241
5.4.2 Drahtlose Netze
246
5.5 Datenfernübertragung
251
5.5.1 DSL-Dienste
252
5.5.2 Internetzugänge über Mobilfunk
253
5.6 Die TCP/IP-Protokollfamilie
254
5.6.1 Netzzugang in TCP/IP-Netzwerken
256
5.6.2 IP-Adressen, Datagramme und Routing
257
5.6.3 Transportprotokolle
284
5.6.4 Das Domain Name System (DNS)
289
5.6.5 Verschiedene Internetanwendungsprotokolle
294
5.7 Übungsaufgaben
306
6 Betriebssysteme
319
6.1 Entwicklung der Betriebssysteme
320
6.1.1 Die Vorgeschichte
320
6.1.2 Die Geschichte von Unix
322
6.1.3 PC-Betriebssysteme
324
6.2 Aufgaben und Konzepte
328
6.2.1 Allgemeiner Aufbau von Betriebssystemen
329
6.2.2 Prozessverwaltung
336
6.2.3 Speicherverwaltung
340
6.2.4 Dateisysteme
343
6.3 Windows
349
6.3.1 Allgemeine Informationen
349
6.3.2 Windows im Einsatz
355
6.3.3 Die Windows-Eingabeaufforderung
355
6.3.4 Die Windows PowerShell
358
6.3.5 Windows-Server
370
6.4 Linux und Unix
372
6.4.1 Arbeiten mit der Shell
374
6.4.2 Die wichtigsten Systembefehle
386
6.4.3 Automatisierung
394
6.4.4 Editoren
401
6.4.5 Grafische Benutzeroberflächen
407
6.5 Übungsaufgaben
409
7 Grundlagen der Programmierung
419
7.1 Python
421
7.1.1 Das erste Beispiel
423
7.1.2 Grundelemente von Python
424
7.1.3 Objektorientierung in Python
471
7.1.4 Die Python-Standardbibliothek einsetzen
500
7.2 Java
508
7.2.1 Einführungsbeispiel
510
7.2.2 Wichtige Merkmale von Java
513
7.2.3 Objektorientierte Programmierung mit Java
530
7.2.4 Weitere Java-Elemente
541
7.3 Übungsaufgaben
554
8 Algorithmen und Datenstrukturen
557
8.1 Algorithmen erarbeiten und implementieren
557
8.1.1 Einen Algorithmus planen
558
8.1.2 Den Algorithmus implementieren
561
8.1.3 Ein effizienterer GGT-Algorithmus
562
8.2 Datensammlungen sortieren
564
8.2.1 Bubblesort implementieren
565
8.2.2 Quicksort einsetzen
570
8.3 Nach Daten suchen
571
8.3.1 In Listen suchen
572
8.3.2 Nicht sequenzielle Datenstrukturen durchsuchen
574
8.4 Bäume und Graphen
593
8.4.1 Bäume verwenden
594
8.4.2 Graphen verwenden
604
8.5 Bedingungserfüllungsprobleme
616
8.5.1 Den Algorithmus für Bedingungserfüllungsprobleme implementieren
616
8.5.2 Anwendungsbeispiel: Ein Sudoku lösen
620
8.6 Übungsaufgaben
626
9 Weitere Konzepte der Programmierung
629
9.1 Reguläre Ausdrücke
629
9.1.1 Muster für reguläre Ausdrücke schreiben
631
9.1.2 Programmierung mit regulären Ausdrücken
634
9.2 Systemnahe Programmierung
647
9.2.1 Prozesse und Pipes
647
9.2.2 Threads
651
9.3 Einführung in die Netzwerkprogrammierung
654
9.3.1 Die Berkeley Socket API
655
9.3.2 Ein praktisches Beispiel
661
9.4 Externe Module und Abhängigkeiten
664
9.4.1 Externe Python-Module installieren
664
9.4.2 NumPy verwenden
665
9.4.3 Das Java-Build-Tool Maven
671
9.5 Übungsaufgaben
674
10 Datenanalyse, Machine Learning, künstliche Intelligenz
675
10.1 Einführung
676
10.1.1 Was ist künstliche Intelligenz?
676
10.1.2 Machine Learning im Überblick
679
10.2 Daten auswählen und aufbereiten
681
10.2.1 Textdaten aufbereiten
681
10.2.2 Bilddaten vorbereiten
688
10.2.3 Numerische Daten visualisieren
692
10.3 Konkrete Machine-Learning-Verfahren
699
10.3.1 Lineare Regression
700
10.3.2 Logistische Regression
705
10.3.3 K-Means-Clustering
708
10.3.4 Künstliche neuronale Netzwerke
709
10.4 Übungsaufgaben
713
11 Software-Engineering
715
11.1 Überblick
716
11.1.1 Der Entwicklungszyklus
717
11.1.2 Planung und Analyse
718
11.1.3 Entwurf
724
11.1.4 Implementierung und Test
725
11.1.5 Dokumentation
727
11.1.6 Konkrete Entwicklungsverfahren
728
11.2 Werkzeuge
731
11.2.1 UML
732
11.2.2 Entwurfsmuster
738
11.2.3 Unit-Tests
753
11.2.4 Weitere nützliche Software
759
11.3 Übungsaufgaben
765
12 Geschäftsprozessanalyse
769
12.1 Überblick
769
12.1.1 Historische Entwicklung
770
12.1.2 Geschäftsprozesse
772
12.1.3 Einteilung der Aufgabenbereiche im Prozessmanagement
773
12.2 Prozesse modellieren mit BPMN
774
12.2.1 BPMN 2.0 im Überblick
776
12.2.2 Beispiele für BPMN-Diagramme
780
12.3 Übungsaufgaben
784
13 Datenbanken
785
13.1 Die verschiedenen Datenbanktypen
786
13.1.1 Einzeltabellendatenbanken
788
13.1.2 Relationale Datenbanken
789
13.1.3 Objektorientierte Datenbanken
797
13.2 MySQL – ein konkretes RDBMS
800
13.2.1 MySQL installieren und konfigurieren
800
13.2.2 Erste Schritte mit dem »mysql«-Client
804
13.3 SQL-Abfragen
805
13.3.1 Datenbanken und Tabellen erzeugen
806
13.3.2 Auswahlabfragen
810
13.3.3 Einfüge-, Lösch- und Änderungsabfragen
814
13.3.4 Transaktionen
815
13.4 MySQL-Administration
816
13.4.1 »mysqladmin«
817
13.4.2 Zugangsverwaltung
817
13.4.3 Import und Export von Daten, Backups
823
13.4.4 Konfigurationsdateien
825
13.4.5 Log-Dateien
826
13.4.6 Replikation
828
13.5 Grundlagen der Datenbankprogrammierung
830
13.6 CouchDB im Überblick
835
13.6.1 Das Konzept von CouchDB
835
13.6.2 Praktischer Einstieg in CouchDB
836
13.7 Übungsaufgaben
839
13.7.1 Praktische Übungen
839
13.7.2 Kontrollfragen
839
14 Server für Webanwendungen
843
14.1 HTTP im Überblick
843
14.1.1 Ablauf der HTTP-Kommunikation
844
14.1.2 HTTP-Statuscodes
847
14.1.3 HTTP-Header
851
14.2 Der Webserver Apache
857
14.2.1 Apache im Überblick
857
14.2.2 Apache-Module
858
14.2.3 Apache installieren
860
14.2.4 Apache konfigurieren
863
14.2.5 Andere Webserver im Überblick
875
14.3 PHP installieren und einrichten
876
14.3.1 PHP installieren
876
14.3.2 Die PHP-Konfigurationsdatei »php.ini«
880
14.4 Virtualisierung und Container
883
14.4.1 Virtualisierungslösungen im Überblick
884
14.4.2 VirtualBox als konkretes Beispiel
885
14.4.3 Container-Virtualisierung mit Docker
888
14.4.4 Cloud Computing
892
14.5 Übungsaufgaben
893
14.5.1 Praktische Übungen
893
14.5.2 Kontrollfragen
894
15 Weitere Internet-Serverdienste
899
15.1 Namens- und Verzeichnisdienste
899
15.1.1 Der DNS-Server BIND
899
15.1.2 Der Verzeichnisdienst OpenLDAP
906
15.2 Die »Meta-Server« inetd und xinetd
915
15.2.1 »inetd«
916
15.2.2 »xinetd«
916
15.3 Übungsaufgaben
919
16 XML
923
16.1 Der Aufbau von XML-Dokumenten
925
16.1.1 Die grundlegenden Bestandteile von XML-Dokumenten
926
16.1.2 Wohlgeformtheit
933
16.2 DTDs und XML Schema
936
16.2.1 Document Type Definitions (DTDs)
936
16.2.2 Namensräume
947
16.2.3 XML Schema
949
16.3 XSLT
952
16.3.1 Ein einfaches Beispiel
954
16.3.2 Wichtige XSLT- und XPath-Elemente
956
16.4 Grundlagen der XML-Programmierung
959
16.4.1 XML-Verarbeitungsmethoden im Überblick
960
16.4.2 Das Python-Modul »xml.etree«
962
16.5 Übungsaufgaben
965
16.5.1 Praktische Übungen
965
16.5.2 Kontrollfragen
966
17 Weitere Datei- und Datenformate
971
17.1 Textdateien und Zeichensätze
971
17.1.1 Das Problem des Zeilenumbruchs
972
17.1.2 Zeichensätze
974
17.1.3 Textbasierte Dateiformate
981
17.2 Binäre Dateiformate
993
17.2.1 Datenkomprimierung
995
17.2.2 Bilddateiformate
996
17.2.3 Multimedia-Dateiformate
999
17.2.4 Archivdateien verwenden
1001
17.3 Übungsaufgaben
1005
18 Webseitenerstellung mit HTML und CSS
1009
18.1 HTML und XHTML
1010
18.1.1 Die Grundstruktur von HTML-Dokumenten
1011
18.1.2 Textstrukturierung und Textformatierung
1013
18.1.3 Listen und Aufzählungen
1021
18.1.4 Hyperlinks
1024
18.1.5 Bilder in Webseiten einbetten
1029
18.1.6 Tabellen
1033
18.1.7 Formulare
1040
18.1.8 Einbetten von Multimedia-Dateien
1048
18.1.9 Metatags und Suchmaschinen
1049
18.2 Cascading Style Sheets (CSS)
1052
18.2.1 Stylesheets platzieren
1053
18.2.2 Stylesheet-Wertangaben
1055
18.2.3 Stylesheet-Eigenschaften
1057
18.2.4 Layer erzeugen und positionieren
1061
18.2.5 Die wichtigsten Neuerungen in CSS3
1068
18.3 Übungsaufgaben
1072
19 Webserveranwendungen
1081
19.1 PHP
1081
19.1.1 Sprachgrundlagen
1082
19.1.2 Klassen und Objekte
1100
19.1.3 Include-Dateien, Autoloader und Namespaces
1118
19.1.4 Webspezifische Funktionen
1120
19.1.5 Auf MySQL-Datenbanken zugreifen
1126
19.1.6 Unit-Tests mit PHPUnit
1138
19.1.7 PHP als Kommandozeilensprache verwenden
1147
19.2 Eine REST-API implementieren
1148
19.2.1 Die API im Überblick
1149
19.2.2 Die Grundarchitektur der API
1151
19.2.3 Der komplette Quellcode
1153
19.2.4 Die API testen
1171
19.3 Übungsaufgaben
1172
20 JavaScript und Ajax
1175
20.1 Grundlagen
1176
20.1.1 JavaScript im HTML-Dokument
1176
20.1.2 Fehler suchen mit der JavaScript-Konsole
1180
20.1.3 Ausdrücke und Operationen
1180
20.1.4 Funktionen
1185
20.1.5 Objektorientiertes JavaScript
1189
20.1.6 Formulare und Event-Handler
1192
20.1.7 Datum und Uhrzeit verwenden
1204
20.1.8 Bilder manipulieren
1207
20.1.9 Browser- und Fensteroptionen
1210
20.2 Das Document Object Model (DOM)
1216
20.2.1 W3C-DOM im Überblick
1216
20.2.2 Eine DOM-Baum-Anzeige
1220
20.2.3 DOM in der Praxis anwenden
1222
20.2.4 Dokumentinhalte verändern und austauschen
1225
20.2.5 »data«-Attribute verwenden
1228
20.3 Ajax
1229
20.3.1 Die erste Ajax-Anwendung
1230
20.3.2 Datenaustauschformate: XML und JSON
1236
20.4 Die JavaScript-Bibliothek React.js
1237
20.4.1 Einführungsbeispiel
1237
20.4.2 Eigene React-Child-Komponenten definieren
1243
20.4.3 Einen API-Client mit React schreiben
1247
20.4.4 Der REST-Client im Detail
1252
20.5 Übungsaufgaben
1265
21 Computer- und Netzwerksicherheit
1267
21.1 PC-Gefahren
1268
21.1.1 Viren und Würmer
1268
21.1.2 Trojaner und Backdoors
1274
21.1.3 Weitere Schädlinge
1275
21.2 Netzwerk- und Serversicherheit
1280
21.2.1 Servergefahren
1281
21.2.2 Wichtige Gegenmaßnahmen
1283
21.2.3 Kryptografie
1289
21.3 Übungsaufgaben
1292
A Glossar
1295
B Zweisprachige Wortliste
1309
C Kommentiertes Literatur- und Linkverzeichnis
1317
Index
1331