Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
17
Vorwort
19
1 Einführung
27
1.1 Informationstechnik, Informatik und EDV
27
1.1.1 Fachrichtungen der Informatik
28
1.1.2 Überblick über die IT-Ausbildung
29
1.2 Die Geschichte der Rechenmaschinen und Computer
36
1.2.1 Die Vorgeschichte
38
1.2.2 Die Entwicklung der elektronischen Rechner
40
1.2.3 Die Entwicklung der Programmiersprachen
49
1.3 Digitale Speicherung und Verarbeitung von Informationen
55
1.3.1 Digitale Bilddaten
57
1.3.2 Digitale Audiodaten
58
1.3.3 Digitale Speicherung von Text
59
1.4 Übungsaufgaben
59
2 Mathematische und technische 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
65
2.1.4 Mengenoperationen
72
2.1.5 Weitere wichtige Berechnungsverfahren
76
2.2 Informationsspeicherung im Computer
78
2.2.1 Zahlensysteme
78
2.2.2 Bits und Bytes
84
2.3 Elektronische Grundlagen
89
2.3.1 Einfache Schaltungen
90
2.3.2 Zusammengesetzte Schaltungen
93
2.4 Automatentheorien und -simulationen
97
2.4.1 Algorithmen
98
2.4.2 Die Turing-Maschine
102
2.4.3 Der virtuelle Prozessor
107
2.5 Übungsaufgaben
112
2.5.1 Praktische Übungen
112
2.5.2 Kontrollfragen
113
3 Hardware
119
3.1 Grundlagen
119
3.2 Die Zentraleinheit
124
3.2.1 Aufbau und Aufgaben des Prozessors
125
3.2.2 Der Arbeitsspeicher
135
3.2.3 Das BIOS
137
3.2.4 Bus- und Anschlusssysteme
142
3.3 Die Peripherie
151
3.3.1 Massenspeicher
152
3.3.2 Eingabegeräte
166
3.3.3 Ausgabegeräte
169
3.3.4 Soundhardware
175
3.4 Übungsaufgaben
176
4 Netzwerkgrundlagen
183
4.1 Einführung
183
4.1.1 Was ist ein Netzwerk?
183
4.1.2 Entstehung der Netzwerke
185
4.2 Funktionsebenen von Netzwerken
190
4.2.1 Das OSI-Referenzmodell
191
4.2.2 Das Schichtenmodell der Internetprotokolle
193
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells
196
4.3 Klassifizierung von Netzwerken
200
4.3.1 Die Reichweite des Netzwerks
200
4.3.2 Die Netzwerktopologie
201
4.3.3 Der Zentralisierungsgrad des Netzwerks
203
4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren
209
4.4.1 Die verschiedenen Ethernet-Standards
211
4.4.2 Drahtlose Netze
216
4.5 Datenfernübertragung
221
4.5.1 DSL-Dienste
222
4.5.2 Internetzugänge über Mobilfunk
224
4.6 Die TCP/IP-Protokollfamilie
225
4.6.1 Netzzugang in TCP/IP-Netzwerken
227
4.6.2 IP-Adressen, Datagramme und Routing
228
4.6.3 Transportprotokolle
254
4.6.4 Das Domain Name System (DNS)
260
4.6.5 Verschiedene Internetanwendungsprotokolle
264
4.7 Übungsaufgaben
276
5 Betriebssystemgrundlagen
289
5.1 Entwicklung der Betriebssysteme
290
5.1.1 Die Vorgeschichte
290
5.1.2 Die Geschichte von Unix
292
5.1.3 PC-Betriebssysteme
294
5.2 Aufgaben und Konzepte
298
5.2.1 Allgemeiner Aufbau von Betriebssystemen
299
5.2.2 Prozessverwaltung
306
5.2.3 Speicherverwaltung
311
5.2.4 Dateisysteme
313
5.3 Übungsaufgaben
319
6 Windows
325
6.1 Allgemeine Informationen
325
6.1.1 Die verschiedenen Windows-Versionen
325
6.1.2 Windows-Dateisysteme
330
6.2 Windows im Einsatz
331
6.2.1 Die Windows-Benutzeroberfläche
332
6.2.2 Die Windows-Konsole
339
6.2.3 Die Windows PowerShell
343
6.2.4 Windows-Konfiguration
354
6.3 Windows-Netzwerkkonfiguration
359
6.3.1 Allgemeine Einstellungen
359
6.3.2 TCP/IP-Dienstprogramme
361
6.3.3 Datei- und Druckserver unter Windows
364
6.3.4 Windows-Server
365
6.4 Übungsaufgaben
367
7 Linux
373
7.1 Arbeiten mit der Shell
375
7.1.1 Booten und Log-in
376
7.1.2 Virtuelle Terminals
379
7.1.3 Grundfunktionen der Shell
380
7.1.4 Hilfefunktionen
386
7.1.5 Pipes und Ein-/Ausgabeumleitung
389
7.1.6 Die wichtigsten Systembefehle
392
7.2 Konfigurations- und Administrationsaufgaben
406
7.2.1 Syslog und Log-Dateien
407
7.2.2 Programme automatisch starten
408
7.2.3 Software installieren
410
7.3 Automatisierung
412
7.3.1 Shell-Skripte
412
7.3.2 Weitere Hilfsmittel
416
7.4 Editoren
418
7.4.1 vi
419
7.4.2 Emacs
427
7.5 Grafische Benutzeroberflächen
433
7.5.1 Der X-Server
433
7.5.2 Desktops
435
7.6 Netzwerkkonfiguration unter Linux
439
7.6.1 Grundeinstellungen
439
7.6.2 TCP/IP-Dienstprogramme
441
7.6.3 Datei- und Druckserver unter Linux
441
7.7 Übungsaufgaben
446
7.7.1 Praktische Übungen
446
7.7.2 Kontrollfragen
446
8 macOS
451
8.1 Mit Aqua arbeiten
455
8.1.1 Die Menüleiste
457
8.1.2 Das Dock
459
8.1.3 Der Finder
460
8.1.4 Mission Control und Dashboard
462
8.2 Systemkonfiguration
464
8.2.1 Besonderheiten der Mac-Dateisysteme
465
8.3 macOS-Netzwerkkonfiguration
466
8.3.1 Serverdienste unter macOS
468
8.4 Übungsaufgaben
469
9 Grundlagen der Programmierung
473
9.1 Die Programmiersprache C
475
9.1.1 Das erste Beispiel
476
9.1.2 Elemente der Sprache C
479
9.1.3 Die C-Standardbibliothek
498
9.2 Java
504
9.2.1 Grundlegende Elemente der Sprache Java
507
9.2.2 Objektorientierte Programmierung mit Java
512
9.2.3 Weitere Java-Elemente
518
9.3 Python
530
9.3.1 Das erste Beispiel
532
9.3.2 Grundelemente von Python
533
9.3.3 Objektorientierung in Python
567
9.3.4 Die Python-Standardbibliothek
590
9.4 Übungsaufgaben
595
10 Konzepte der Programmierung
599
10.1 Algorithmen und Datenstrukturen
599
10.1.1 Ein einfaches Praxisbeispiel
599
10.1.2 Sortieralgorithmen
602
10.1.3 Suchalgorithmen
607
10.1.4 Ausgewählte Datenstrukturen
608
10.2 Reguläre Ausdrücke
625
10.2.1 Muster für reguläre Ausdrücke
627
10.2.2 Programmierung mit regulären Ausdrücken
630
10.3 Systemnahe Programmierung
643
10.3.1 Prozesse und Pipes
643
10.3.2 Threads
648
10.4 Einführung in die Netzwerkprogrammierung
652
10.4.1 Die Berkeley Socket API
652
10.4.2 Ein praktisches Beispiel
658
10.5 GUI- und Grafikprogrammierung
661
10.5.1 Zeichnungen und Grafiken erstellen
662
10.5.2 Animation
668
10.5.3 Programmierung fensterbasierter Anwendungen
672
10.6 Übungsaufgaben
686
11 Mobile Development
689
11.1 iOS-Apps mit Xcode und Swift
690
11.1.1 iOS im Schnellüberblick
690
11.1.2 Xcode und Swift
691
11.1.3 Swift-Grundlagen
693
11.2 Eine iOS-App entwickeln
699
11.2.1 Das Projekt einrichten
699
11.2.2 Die Benutzeroberfläche vorbereiten
702
11.2.3 Die Swift-Klasse für die Datenausgabe erstellen
702
11.2.4 Letzte Schritte
707
11.3 Übungsaufgaben
709
12 Software-Engineering
711
12.1 Überblick
712
12.1.1 Der Entwicklungszyklus
713
12.1.2 Planung und Analyse
714
12.1.3 Entwurf
720
12.1.4 Implementierung und Test
721
12.1.5 Dokumentation
723
12.1.6 Konkrete Entwicklungsverfahren
724
12.2 Werkzeuge
728
12.2.1 UML
728
12.2.2 Entwurfsmuster
734
12.2.3 Unit-Tests
749
12.2.4 Weitere nützliche Software
754
12.3 Übungsaufgaben
759
13 Datenbanken
763
13.1 Die verschiedenen Datenbanktypen
764
13.1.1 Einzeltabellendatenbanken
766
13.1.2 Relationale Datenbanken
767
13.1.3 Objektorientierte Datenbanken
775
13.2 MySQL - ein konkretes RDBMS
778
13.2.1 MySQL installieren und konfigurieren
779
13.2.2 Erste Schritte mit dem »mysql«-Client
782
13.3 SQL-Abfragen
783
13.3.1 Datenbanken und Tabellen erzeugen
784
13.3.2 Auswahlabfragen
788
13.3.3 Einfüge-, Lösch- und Änderungsabfragen
792
13.3.4 Transaktionen
793
13.4 MySQL-Administration
794
13.4.1 »mysqladmin«
795
13.4.2 Benutzerverwaltung
795
13.4.3 Import und Export von Daten, Backups
800
13.4.4 Konfigurationsdateien
803
13.4.5 Log-Dateien
804
13.4.6 Replikation
805
13.5 Grundlagen der Datenbankprogrammierung
807
13.6 CouchDB im Überblick
811
13.6.1 Das Konzept von CouchDB
811
13.6.2 Praktischer Einstieg in CouchDB
812
13.7 Übungsaufgaben
815
13.7.1 Praktische Übungen
815
13.7.2 Kontrollfragen
816
14 Server für Webanwendungen
821
14.1 HTTP im Überblick
821
14.1.1 Ablauf der HTTP-Kommunikation
822
14.1.2 HTTP-Statuscodes
825
14.1.3 HTTP-Header
829
14.2 Der Webserver Apache
835
14.2.1 Apache im Überblick
835
14.2.2 Apache-Module
837
14.2.3 Apache installieren
839
14.2.4 Apache-Konfiguration
842
14.3 PHP installieren und einrichten
857
14.3.1 Installation
857
14.3.2 Die PHP-Konfigurationsdatei »php.ini«
861
14.4 Virtualisierung und Container
864
14.4.1 Virtualisierungslösungen im Überblick
865
14.4.2 VirtualBox als konkretes Beispiel
866
14.4.3 Container-Virtualisierung mit Docker
869
14.5 Übungsaufgaben
873
14.5.1 Praktische Übungen
873
14.5.2 Kontrollfragen
873
15 Weitere Internet-Serverdienste
877
15.1 Namens- und Verzeichnisdienste
877
15.1.1 Der DNS-Server BIND
877
15.1.2 Der Verzeichnisdienst OpenLDAP
884
15.2 Sonstige Server
893
15.2.1 »vsftpd«, ein FTP-Server
893
15.2.2 »inetd« und »xinetd«
895
15.3 Übungsaufgaben
898
16 XML
901
16.1 Der Aufbau von XML-Dokumenten
903
16.1.1 Die grundlegenden Bestandteile von XML-Dokumenten
904
16.1.2 Wohlgeformtheit
911
16.2 DTDs und XML Schema
913
16.2.1 Document Type Definitions (DTDs)
914
16.2.2 Namensräume
925
16.2.3 XML Schema
926
16.3 XSLT
929
16.3.1 Ein einfaches Beispiel
930
16.3.2 Wichtige XSLT- und XPath-Elemente
932
16.4 Grundlagen der XML-Programmierung
935
16.4.1 SAX
937
16.4.2 DOM
945
16.4.3 Das Python-Modul »xml.etree«
947
16.5 Übungsaufgaben
950
16.5.1 Praktische Übungen
950
16.5.2 Kontrollfragen
950
17 Weitere Datei- und Datenformate
957
17.1 Textdateien und Zeichensätze
957
17.1.1 Das Problem des Zeilenumbruchs
958
17.1.2 Zeichensätze
960
17.1.3 Textbasierte Dateiformate
967
17.2 Binäre Dateiformate
969
17.2.1 Bilddateiformate
972
17.2.2 Multimedia-Dateiformate
976
17.2.3 Archivdateien verwenden
978
17.3 Übungsaufgaben
982
18 Webseitenerstellung mit HTML und CSS
987
18.1 HTML und XHTML
988
18.1.1 Die Grundstruktur von HTML-Dokumenten
989
18.1.2 Textstrukturierung und Textformatierung
991
18.1.3 Listen und Aufzählungen
999
18.1.4 Hyperlinks
1002
18.1.5 Bilder in Webseiten einbetten
1007
18.1.6 Tabellen
1011
18.1.7 Formulare
1017
18.1.8 Einbetten von Multimedia-Dateien
1025
18.1.9 Metatags und Suchmaschinen
1026
18.2 Cascading Style Sheets (CSS)
1029
18.2.1 Platzieren von Stylesheets
1030
18.2.2 Stylesheet-Wertangaben
1032
18.2.3 Stylesheet-Eigenschaften
1034
18.2.4 Layer erzeugen und positionieren
1038
18.2.5 Die wichtigsten Neuerungen in CSS3
1045
18.3 Übungsaufgaben
1049
19 Webserveranwendungen
1059
19.1 PHP
1059
19.1.1 Sprachgrundlagen
1060
19.1.2 Klassen und Objekte
1077
19.1.3 Include-Dateien, Autoloader und Namespaces
1092
19.1.4 Webspezifische Funktionen
1095
19.1.5 Zugriff auf MySQL-Datenbanken
1100
19.1.6 Unit-Tests mit PHPUnit
1112
19.1.7 PHP als Kommandozeilensprache
1121
19.2 Eine REST-API implementieren
1122
19.2.1 Die API im Überblick
1123
19.2.2 Die Grundarchitektur der API
1125
19.2.3 Der komplette Quellcode
1127
19.2.4 Die API testen
1145
19.3 Übungsaufgaben
1146
20 JavaScript und Ajax
1149
20.1 Grundlagen
1150
20.1.1 JavaScript im HTML-Dokument
1150
20.1.2 Formulare und Event-Handler
1157
20.1.3 Datums- und Uhrzeitfunktionen
1174
20.1.4 Manipulation von Bildern
1180
20.1.5 Browser- und Fensteroptionen
1182
20.2 Das Document Object Model (DOM)
1188
20.2.1 W3C-DOM im Überblick
1189
20.2.2 Eine DOM-Baum-Anzeige
1192
20.2.3 DOM-Anwendung in der Praxis
1195
20.2.4 Dokumentinhalte verändern und austauschen
1198
20.2.5 »data«-Attribute verwenden
1200
20.3 Ajax
1201
20.3.1 Die erste Ajax-Anwendung
1202
20.3.2 Datenaustauschformate: XML und JSON
1208
20.3.3 Größeres Beispiel: eine interaktive Länderliste
1209
20.4 jQuery
1219
20.4.1 jQuery im Überblick
1219
20.4.2 Ein REST-Client mit jQuery
1223
20.5 Die JavaScript-Bibliothek React.js
1233
20.5.1 Einführungsbeispiel
1234
20.5.2 Eigene React-Child-Komponenten definieren
1239
20.5.3 Einen API-Client mit React schreiben
1243
20.5.4 Der REST-Client im Detail
1248
20.6 Übungsaufgaben
1260
21 Computer- und Netzwerksicherheit
1263
21.1 PC-Gefahren
1264
21.1.1 Viren und Würmer
1264
21.1.2 Trojaner und Backdoors
1270
21.1.3 Weitere Schädlinge
1272
21.2 Netzwerk- und Serversicherheit
1277
21.2.1 Servergefahren
1277
21.2.2 Wichtige Gegenmaßnahmen
1279
21.2.3 Kryptografie
1285
21.3 Übungsaufgaben
1288
Anhang
1291
A Glossar
1291
B Zweisprachige Wortliste
1303
C Kommentiertes Literatur- und Linkverzeichnis
1309
Index
1321