Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 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
33
1.2.1 Die Vorgeschichte
35
1.2.2 Die Entwicklung der elektronischen Rechner
37
1.2.3 Entwicklung der Programmiersprachen
46
1.3 Digitale Speicherung und Verarbeitung von Informationen
52
1.3.1 Digitale Bilddaten
54
1.3.2 Digitale Audiodaten
55
1.3.3 Digitale Speicherung von Text
56
1.4 Übungsaufgaben
56
2 Mathematische und technische Grundlagen
59
2.1 Einführung in die Logik
59
2.1.1 Aussagen
60
2.1.2 Aussageformen
61
2.1.3 Logische Verknüpfungen
61
2.1.4 Mengenoperationen
68
2.1.5 Weitere wichtige Berechnungsverfahren
72
2.2 Informationsspeicherung im Computer
74
2.2.1 Zahlensysteme
74
2.2.2 Bits und Bytes
79
2.3 Elektronische Grundlagen
84
2.3.1 Einfache Schaltungen
85
2.3.2 Zusammengesetzte Schaltungen
88
2.4 Automatentheorien und -simulationen
91
2.4.1 Algorithmen
92
2.4.2 Die Turing-Maschine
96
2.4.3 Der virtuelle Prozessor
100
2.5 Übungsaufgaben
107
2.5.1 Praktische Übungen
107
2.5.2 Kontrollfragen
108
3 Hardware
115
3.1 Grundlagen
115
3.2 Die Zentraleinheit
119
3.2.1 Aufbau und Aufgaben des Prozessors
121
3.2.2 Der Arbeitsspeicher
130
3.2.3 Das BIOS
132
3.2.4 Bus- und Anschlusssysteme
137
3.3 Die Peripherie
146
3.3.1 Massenspeicher
147
3.3.2 Eingabegeräte
161
3.3.3 Ausgabegeräte
164
3.3.4 Soundhardware
170
3.4 Übungsaufgaben
171
4 Netzwerkgrundlagen
179
4.1 Einführung
179
4.1.1 Was ist ein Netzwerk?
179
4.1.2 Entstehung der Netzwerke
181
4.2 Funktionsebenen von Netzwerken
186
4.2.1 Das OSI-Referenzmodell
186
4.2.2 Das Schichtenmodell der Internetprotokolle
189
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells
192
4.3 Klassifizierung von Netzwerken
195
4.3.1 Die Reichweite des Netzwerks
195
4.3.2 Die Netzwerktopologie
197
4.3.3 Der Zentralisierungsgrad des Netzwerks
198
4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren
204
4.4.1 Die verschiedenen Ethernet-Standards
206
4.4.2 Drahtlose Netze
211
4.5 Datenfernübertragung
216
4.5.1 Netzwerkzugang per Modem (analoge Telefonleitung)
217
4.5.2 ISDN
218
4.5.3 DSL-Dienste
220
4.5.4 Internetzugänge über Mobilfunk
222
4.6 Die TCP/IP-Protokollfamilie
223
4.6.1 Netzzugang in TCP/IP-Netzwerken
225
4.6.2 IP-Adressen, Datagramme und Routing
226
4.6.3 Transportprotokolle
252
4.6.4 Das Domain Name System (DNS)
258
4.6.5 Verschiedene Internetanwendungsprotokolle
262
4.7 Übungsaufgaben
275
5 Betriebssystemgrundlagen
287
5.1 Entwicklung der Betriebssysteme
288
5.1.1 Die Geschichte von Unix
290
5.1.2 PC-Betriebssysteme
291
5.2 Aufgaben und Konzepte
296
5.2.1 Allgemeiner Aufbau von Betriebssystemen
296
5.2.2 Prozessverwaltung
303
5.2.3 Speicherverwaltung
308
5.2.4 Dateisysteme
310
5.3 Übungsaufgaben
317
6 Windows
323
6.1 Allgemeine Informationen
323
6.1.1 Die verschiedenen Windows-Versionen
323
6.1.2 Windows-Dateisysteme
328
6.2 Windows im Einsatz
329
6.2.1 Die Windows-Benutzeroberfläche
330
6.2.2 Die Windows-Konsole
337
6.2.3 Die Windows PowerShell
340
6.2.4 Windows-Konfiguration
352
6.3 Windows-Netzwerkkonfiguration
356
6.3.1 Allgemeine Einstellungen
356
6.3.2 TCP/IP-Dienstprogramme
358
6.3.3 Datei- und Druckserver unter Windows
361
6.3.4 Windows-Server
363
6.4 Übungsaufgaben
364
7 Linux
369
7.1 Arbeiten mit der Shell
371
7.1.1 Booten und Log-in
371
7.1.2 Virtuelle Terminals
375
7.1.3 Grundfunktionen der Shell
376
7.1.4 Hilfefunktionen
382
7.1.5 Pipes und Ein-/Ausgabeumleitung
385
7.1.6 Die wichtigsten Systembefehle
389
7.2 Konfigurations- und Administrationsaufgaben
403
7.2.1 Syslog und Log-Dateien
403
7.2.2 Programme automatisch starten
404
7.2.3 Software installieren
406
7.3 Automatisierung
408
7.3.1 Shell-Skripte
408
7.3.2 Weitere Hilfsmittel
412
7.4 Editoren
415
7.4.1 vi
415
7.4.2 Emacs
423
7.5 Grafische Benutzeroberflächen
429
7.5.1 Der X-Server
429
7.5.2 Desktops
431
7.6 Netzwerkkonfiguration unter Linux
435
7.6.1 Grundeinstellungen
435
7.6.2 TCP/IP-Dienstprogramme
437
7.6.3 Datei- und Druckserver unter Linux
437
7.7 Übungsaufgaben
442
7.7.1 Praktische Übungen
442
7.7.2 Kontrollfragen
442
8 macOS
447
8.1 Mit Aqua arbeiten
451
8.1.1 Die Menüleiste
453
8.1.2 Das Dock
455
8.1.3 Der Finder
455
8.1.4 Mission Control und Dashboard
457
8.2 Systemkonfiguration
459
8.2.1 Besonderheiten der Mac-Dateisysteme
460
8.3 macOS-Netzwerkkonfiguration
461
8.3.1 Serverdienste unter macOS
463
8.4 Übungsaufgaben
464
9 Grundlagen der Programmierung
467
9.1 Die Programmiersprache C
469
9.1.1 Das erste Beispiel
470
9.1.2 Elemente der Sprache C
473
9.1.3 Die C-Standardbibliothek
492
9.2 Java
497
9.2.1 Grundlegende Elemente der Sprache Java
500
9.2.2 Objektorientierte Programmierung mit Java
505
9.2.3 Weitere Java-Elemente
511
9.3 Python
520
9.3.1 Das erste Beispiel
521
9.3.2 Grundelemente von Python
522
9.3.3 Objektorientierung in Python
557
9.3.4 Die Python-Standardbibliothek
580
9.4 Übungsaufgaben
585
10 Konzepte der Programmierung
589
10.1 Algorithmen und Datenstrukturen
589
10.1.1 Ein einfaches Praxisbeispiel
589
10.1.2 Sortieralgorithmen
592
10.1.3 Suchalgorithmen
597
10.1.4 Ausgewählte Datenstrukturen
598
10.2 Reguläre Ausdrücke
610
10.2.1 Muster für reguläre Ausdrücke
612
10.2.2 Programmierung mit regulären Ausdrücken
615
10.3 Systemnahe Programmierung
628
10.3.1 Prozesse und Pipes
628
10.3.2 Threads
634
10.4 Einführung in die Netzwerkprogrammierung
637
10.4.1 Die Berkeley Socket API
638
10.4.2 Ein praktisches Beispiel
644
10.5 GUI- und Grafikprogrammierung
647
10.5.1 Zeichnungen und Grafiken erstellen
649
10.5.2 Animation
654
10.5.3 Programmierung fensterbasierter Anwendungen
658
10.6 Übungsaufgaben
671
11 Mobile Development
673
11.1 iOS-Apps mit Xcode und Swift
674
11.1.1 iOS im Schnellüberblick
674
11.1.2 Xcode und Swift
675
11.1.3 Swift-Grundlagen
677
11.1.4 Eine iOS-App entwickeln
683
11.2 Eine einfache Android-App
693
11.2.1 Android im Überblick
693
11.2.2 Eine App mit Android Studio entwickeln
694
11.3 Übungsaufgaben
701
12 Software-Engineering
703
12.1 Überblick
704
12.1.1 Der Entwicklungszyklus
704
12.1.2 Planung und Analyse
706
12.1.3 Entwurf
712
12.1.4 Implementierung und Test
713
12.1.5 Dokumentation
715
12.1.6 Konkrete Entwicklungsverfahren
716
12.2 Werkzeuge
720
12.2.1 UML
720
12.2.2 Entwurfsmuster
726
12.2.3 Unit-Tests
734
12.2.4 Weitere nützliche Software
738
12.3 Übungsaufgaben
741
13 Datenbanken
745
13.1 Die verschiedenen Datenbanktypen
746
13.1.1 Einzeltabellendatenbanken
747
13.1.2 Relationale Datenbanken
749
13.1.3 Objektorientierte Datenbanken
757
13.2 MySQL – ein konkretes RDBMS
760
13.2.1 MySQL installieren und konfigurieren
760
13.2.2 Erste Schritte mit dem »mysql«-Client
763
13.3 SQL-Abfragen
764
13.3.1 Datenbanken und Tabellen erzeugen
765
13.3.2 Auswahlabfragen
769
13.3.3 Einfüge-, Lösch- und Änderungsabfragen
773
13.3.4 Transaktionen
774
13.4 MySQL-Administration
776
13.4.1 »mysqladmin«
776
13.4.2 Benutzerverwaltung
777
13.4.3 Import und Export von Daten, Backups
782
13.4.4 Konfigurationsdateien
785
13.4.5 Log-Dateien
786
13.4.6 Replikation
787
13.5 Grundlagen der Datenbankprogrammierung
789
13.6 CouchDB im Überblick
793
13.6.1 Das Konzept von CouchDB
793
13.6.2 Praktischer Einstieg in CouchDB
794
13.7 Übungsaufgaben
796
13.7.1 Praktische Übungen
796
13.7.2 Kontrollfragen
797
14 Server für Webanwendungen
801
14.1 HTTP im Überblick
801
14.1.1 Ablauf der HTTP-Kommunikation
802
14.1.2 HTTP-Statuscodes
805
14.1.3 HTTP-Header
809
14.2 Der Webserver Apache
814
14.2.1 Apache im Überblick
815
14.2.2 Apache-Module
816
14.2.3 Apache installieren
818
14.2.4 Apache-Konfiguration
821
14.3 PHP installieren und einrichten
836
14.3.1 Installation
837
14.3.2 Die PHP-Konfigurationsdatei »php.ini«
840
14.4 Virtualisierung und Container
843
14.4.1 Virtualisierungslösungen im Überblick
844
14.4.2 VirtualBox als konkretes Beispiel
845
14.4.3 Container-Virtualisierung mit Docker
848
14.5 Übungsaufgaben
852
14.5.1 Praktische Übungen
852
14.5.2 Kontrollfragen
853
15 Weitere Internet-Serverdienste
857
15.1 Namens- und Verzeichnisdienste
857
15.1.1 Der DNS-Server BIND
857
15.1.2 Der Verzeichnisdienst OpenLDAP
864
15.2 Sonstige Server
873
15.2.1 »vsftpd«, ein FTP-Server
873
15.2.2 »inetd« und »xinetd«
875
15.3 Übungsaufgaben
878
16 XML
881
16.1 Der Aufbau von XML-Dokumenten
883
16.1.1 Die grundlegenden Bestandteile von XML-Dokumenten
884
16.1.2 Wohlgeformtheit
891
16.2 DTDs und XML Schema
893
16.2.1 Document Type Definitions (DTDs)
894
16.2.2 Namensräume
905
16.2.3 XML Schema
906
16.3 XSLT
909
16.3.1 Ein einfaches Beispiel
910
16.3.2 Wichtige XSLT- und XPath-Elemente
913
16.4 Grundlagen der XML-Programmierung
916
16.4.1 SAX
918
16.4.2 DOM
925
16.4.3 Das Python-Modul »xml.etree«
927
16.5 Übungsaufgaben
930
16.5.1 Praktische Übungen
930
16.5.2 Kontrollfragen
931
17 Weitere Datei- und Datenformate
937
17.1 Textdateien und Zeichensätze
937
17.1.1 Das Problem des Zeilenumbruchs
938
17.1.2 Zeichensätze
939
17.1.3 Textbasierte Dateiformate
946
17.2 Binäre Dateiformate
949
17.2.1 Bilddateiformate
952
17.2.2 Multimedia-Dateiformate
956
17.2.3 Archivdateien verwenden
958
17.3 Übungsaufgaben
962
18 Webseitenerstellung mit HTML und CSS
967
18.1 HTML und XHTML
968
18.1.1 Die Grundstruktur von HTML-Dokumenten
969
18.1.2 Textstrukturierung und Textformatierung
972
18.1.3 Listen und Aufzählungen
979
18.1.4 Hyperlinks
982
18.1.5 Bilder in Webseiten einbetten
987
18.1.6 Tabellen
990
18.1.7 Formulare
996
18.1.8 Einbetten von Multimedia-Dateien
1004
18.1.9 Meta-Tags und Suchmaschinen
1005
18.2 Cascading Style Sheets (CSS)
1008
18.2.1 Platzieren von Stylesheets
1009
18.2.2 Stylesheet-Wertangaben
1011
18.2.3 Stylesheet-Eigenschaften
1013
18.2.4 Layer erzeugen und positionieren
1017
18.2.5 Die wichtigsten Neuerungen in CSS3
1023
18.3 Übungsaufgaben
1028
19 Webserveranwendungen
1037
19.1 PHP
1037
19.1.1 Sprachgrundlagen
1038
19.1.2 Klassen und Objekte
1055
19.1.3 Include-Dateien, Autoloader und Namespaces
1070
19.1.4 Webspezifische Funktionen
1073
19.1.5 Zugriff auf MySQL-Datenbanken
1078
19.1.6 Unit-Tests mit PHPUnit
1090
19.2 Eine REST-API implementieren
1099
19.2.1 Die API im Überblick
1099
19.2.2 Die Grundarchitektur der API
1102
19.2.3 Der komplette Quellcode
1104
19.2.4 Die API testen
1120
19.3 Übungsaufgaben
1121
20 JavaScript und Ajax
1125
20.1 Grundlagen
1126
20.1.1 JavaScript im HTML-Dokument
1126
20.1.2 Formulare und Event Handler
1131
20.1.3 Datums- und Uhrzeit-Funktionen
1144
20.1.4 Manipulation von Bildern
1147
20.1.5 Browser- und Fensteroptionen
1150
20.2 Das Document Object Model (DOM)
1156
20.2.1 W3C-DOM im Überblick
1156
20.2.2 Eine DOM-Baum-Anzeige
1159
20.2.3 DOM-Anwendung in der Praxis
1162
20.2.4 Dokumentinhalte verändern und austauschen
1165
20.2.5 »data«-Attribute verwenden
1167
20.3 Ajax
1168
20.3.1 Die erste Ajax-Anwendung
1168
20.3.2 Datenaustauschformate: XML und JSON
1175
20.3.3 Größeres Beispiel: eine interaktive Länderliste
1176
20.4 jQuery
1185
20.4.1 jQuery im Überblick
1185
20.4.2 Ein REST-Client mit jQuery
1189
20.5 Übungsaufgaben
1199
21 Computer- und Netzwerksicherheit
1201
21.1 PC-Gefahren
1202
21.1.1 Viren und Würmer
1202
21.1.2 Trojaner und Backdoors
1208
21.1.3 Weitere Schädlinge
1209
21.2 Netzwerk- und Serversicherheit
1214
21.2.1 Servergefahren
1214
21.2.2 Wichtige Gegenmaßnahmen
1216
21.2.3 Kryptografie
1222
21.3 Übungsaufgaben
1225
A Glossar
1229
B Zweisprachige Wortliste
1241
B.1 Englisch-Deutsch
1241
B.2 Deutsch-Englisch
1244
C Kommentiertes Literatur- und Linkverzeichnis
1247
C.1 Allgemeine Einführungen und Überblicke
1247
C.2 Mathematische und technische Grundlagen
1248
C.3 Hardware
1248
C.4 Netzwerktechnik
1248
C.5 Betriebssystemgrundlagen
1249
C.6 Windows
1249
C.7 Linux
1250
C.8 macOS
1250
C.9 Grundlagen der Programmierung
1251
C.10 Konzepte der Programmierung
1251
C.11 Mobile Development
1252
C.12 Software-Engineering
1252
C.13 Datenbanken
1253
C.14 Server für Webanwendungen
1254
C.15 Weitere Internet-Serverdienste
1254
C.16 XML
1254
C.17 Webseitenerstellung mit HTML und CSS
1255
C.18 Webserveranwendungen
1255
C.19 JavaScript und Ajax
1255
C.20 Computer- und Netzwerksicherheit
1256
Index
1257