Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
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
34
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
62
2.1.4 Mengenoperationen
69
2.1.5 Weitere wichtige Berechnungsverfahren
72
2.2 Informationsspeicherung im Computer
74
2.2.1 Zahlensysteme
75
2.2.2 Bits und Bytes
80
2.3 Elektronische Grundlagen
85
2.3.1 Einfache Schaltungen
85
2.3.2 Zusammengesetzte Schaltungen
89
2.4 Automatentheorien und -simulationen
92
2.4.1 Algorithmen
93
2.4.2 Die Turing-Maschine
97
2.4.3 Der virtuelle Prozessor
101
2.5 Übungsaufgaben
108
2.5.1 Praktische Übungen
108
2.5.2 Kontrollfragen
109
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
160
3.3.3 Ausgabegeräte
163
3.3.4 Soundhardware
169
3.4 Übungsaufgaben
170
4 Netzwerkgrundlagen
177
4.1 Einführung
177
4.1.1 Was ist ein Netzwerk?
177
4.1.2 Entstehung der Netzwerke
179
4.2 Funktionsebenen von Netzwerken
184
4.2.1 Das OSI-Referenzmodell
185
4.2.2 Das Schichtenmodell der Internetprotokolle
187
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells
190
4.3 Klassifizierung von Netzwerken
194
4.3.1 Die Reichweite des Netzwerks
194
4.3.2 Die Netzwerktopologie
195
4.3.3 Der Zentralisierungsgrad des Netzwerks
196
4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren
203
4.4.1 Die verschiedenen Ethernet-Standards
205
4.4.2 Drahtlose Netze
210
4.5 Datenfernübertragung
214
4.5.1 Netzwerkzugang per Modem (analoge Telefonleitung)
215
4.5.2 ISDN
216
4.5.3 DSL-Dienste
218
4.5.4 Internetzugänge über Mobilfunk
220
4.6 Die TCP/IP-Protokollfamilie
222
4.6.1 Netzzugang in TCP/IP-Netzwerken
223
4.6.2 IP-Adressen, Datagramme und Routing
224
4.6.3 Transportprotokolle
251
4.6.4 Das Domain Name System (DNS)
256
4.6.5 Verschiedene Internetanwendungsprotokolle
261
4.7 Übungsaufgaben
274
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
307
5.2.4 Dateisysteme
309
5.3 Die allgegenwärtige Virtualisierung
316
5.3.1 Virtualisierungslösungen im Überblick
317
5.3.2 VMware Workstation als konkretes Beispiel
318
5.4 Übungsaufgaben
321
6 Windows
327
6.1 Allgemeine Informationen
327
6.1.1 Die verschiedenen Windows-Versionen
327
6.1.2 Windows-Dateisysteme
332
6.2 Windows im Einsatz
333
6.2.1 Die Windows-Benutzeroberfläche
334
6.2.2 Die Windows-Konsole
341
6.2.3 Die Windows PowerShell
344
6.2.4 Windows-Konfiguration
356
6.3 Windows-Netzwerkkonfiguration
361
6.3.1 Allgemeine Einstellungen
361
6.3.2 TCP/IP-Dienstprogramme
362
6.3.3 Datei- und Druckserver unter Windows
366
6.3.4 Windows-Server
367
6.4 Übungsaufgaben
369
7 Linux
375
7.1 Arbeiten mit der Shell
377
7.1.1 Booten und Log-in
377
7.1.2 Virtuelle Terminals
381
7.1.3 Grundfunktionen der Shell
382
7.1.4 Hilfefunktionen
388
7.1.5 Pipes und Ein-/Ausgabeumleitung
391
7.1.6 Die wichtigsten Systembefehle
394
7.2 Konfigurations- und Administrationsaufgaben
409
7.2.1 Syslog und Log-Dateien
409
7.2.2 Programme automatisch starten
410
7.2.3 Software installieren
412
7.3 Automatisierung
414
7.3.1 Shell-Skripte
415
7.3.2 Weitere Hilfsmittel
418
7.4 Editoren
421
7.4.1 vi
421
7.4.2 Emacs
429
7.5 Grafische Benutzeroberflächen
435
7.5.1 Der X-Server
435
7.5.2 Desktops
437
7.6 Netzwerkkonfiguration unter Linux
441
7.6.1 Grundeinstellungen
441
7.6.2 TCP/IP-Dienstprogramme
443
7.6.3 Datei- und Druckserver unter Linux
443
7.7 Übungsaufgaben
448
7.7.1 Praktische Übungen
448
7.7.2 Kontrollfragen
448
8 OS X
453
8.1 Mit Aqua arbeiten
457
8.1.1 Die Menüleiste
459
8.1.2 Das Dock
461
8.1.3 Der Finder
461
8.1.4 Mission Control und Dashboard
463
8.2 Systemkonfiguration
465
8.2.1 Besonderheiten der Mac-Dateisysteme
466
8.3 OS-X-Netzwerkkonfiguration
467
8.3.1 Serverdienste unter OS X
469
8.4 Übungsaufgaben
470
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
506
9.2.2 Objektorientierte Programmierung mit Java
511
9.2.3 Weitere Java-Elemente
517
9.3 Python
526
9.3.1 Das erste Beispiel
528
9.3.2 Grundelemente von Python
529
9.3.3 Objektorientierung in Python
564
9.3.4 Die Python-Standardbibliothek
587
9.4 Übungsaufgaben
592
10 Konzepte der Programmierung
597
10.1 Algorithmen und Datenstrukturen
597
10.1.1 Ein einfaches Praxisbeispiel
597
10.1.2 Sortieralgorithmen
600
10.1.3 Suchalgorithmen
605
10.1.4 Ausgewählte Datenstrukturen
606
10.2 Reguläre Ausdrücke
618
10.2.1 Muster für reguläre Ausdrücke
620
10.2.2 Programmierung mit regulären Ausdrücken
623
10.3 Systemnahe Programmierung
636
10.3.1 Prozesse und Pipes
636
10.3.2 Threads
642
10.4 Einführung in die Netzwerkprogrammierung
645
10.4.1 Die Berkeley Socket API
646
10.4.2 Ein praktisches Beispiel
652
10.5 GUI- und Grafikprogrammierung
655
10.5.1 Zeichnungen und Grafiken erstellen
656
10.5.2 Animation
662
10.5.3 Programmierung fensterbasierter Anwendungen
666
10.6 Übungsaufgaben
680
11 Mobile Development
683
11.1 iOS-Apps mit Xcode und Swift
684
11.1.1 iOS im Schnellüberblick
684
11.1.2 Xcode und Swift
685
11.1.3 Swift-Grundlagen
686
11.1.4 Eine iOS-App entwickeln
692
11.2 Eine einfache Android-App
701
11.2.1 Android im Überblick
701
11.2.2 Eine App mit Android Studio entwickeln
703
11.3 Übungsaufgaben
709
12 Software-Engineering
711
12.1 Überblick
712
12.1.1 Der Entwicklungszyklus
712
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
735
12.2.3 Unit-Tests
743
12.2.4 Weitere nützliche Software
747
12.3 Übungsaufgaben
749
13 Datenbanken
753
13.1 Die verschiedenen Datenbanktypen
754
13.1.1 Einzeltabellendatenbanken
755
13.1.2 Relationale Datenbanken
757
13.1.3 Objektorientierte Datenbanken
765
13.2 MySQL – ein konkretes RDBMS
768
13.2.1 MySQL installieren und konfigurieren
768
13.2.2 Erste Schritte mit dem mysql-Client
771
13.3 SQL-Abfragen
772
13.3.1 Datenbanken und Tabellen erzeugen
773
13.3.2 Auswahlabfragen
777
13.3.3 Einfüge-, Lösch- und Änderungsabfragen
781
13.3.4 Transaktionen
783
13.4 MySQL-Administration
784
13.4.1 mysqladmin
784
13.4.2 Benutzerverwaltung
785
13.4.3 Import und Export von Daten, Backups
790
13.4.4 Konfigurationsdateien
793
13.4.5 Log-Dateien
794
13.4.6 Replikation
795
13.5 Grundlagen der Datenbankprogrammierung
797
13.6 Übungsaufgaben
802
13.6.1 Praktische Übungen
802
13.6.2 Kontrollfragen
802
14 Server für Webanwendungen
807
14.1 HTTP im Überblick
807
14.1.1 Ablauf der HTTP-Kommunikation
808
14.1.2 HTTP-Statuscodes
811
14.1.3 HTTP-Header
815
14.2 Der Webserver Apache
820
14.2.1 Apache im Überblick
820
14.2.2 Apache-Module
822
14.2.3 Apache installieren
824
14.2.4 Apache-Konfiguration
827
14.3 PHP installieren und einrichten
842
14.3.1 Installation
842
14.3.2 Die PHP-Konfigurationsdatei »php.ini«
846
14.4 Übungsaufgaben
850
14.4.1 Praktische Übungen
850
14.4.2 Kontrollfragen
850
15 Weitere Internet-Serverdienste
853
15.1 Namens- und Verzeichnisdienste
853
15.1.1 Der DNS-Server BIND
853
15.1.2 Der Verzeichnisdienst OpenLDAP
859
15.2 Sonstige Server
869
15.2.1 vsftpd, ein FTP-Server
869
15.2.2 inetd und xinetd
870
15.3 Übungsaufgaben
874
16 XML
877
16.1 Der Aufbau von XML-Dokumenten
879
16.1.1 Die grundlegenden Bestandteile von XML-Dokumenten
879
16.1.2 Wohlgeformtheit
887
16.2 DTDs und XML Schema
889
16.2.1 Document Type Definitions (DTDs)
890
16.2.2 Namensräume
901
16.2.3 XML Schema
902
16.3 XSLT
905
16.3.1 Ein einfaches Beispiel
906
16.3.2 Wichtige XSLT- und XPath-Elemente
908
16.4 Grundlagen der XML-Programmierung
912
16.4.1 SAX
913
16.4.2 DOM
921
16.4.3 Das Python-Modul xml.etree
923
16.5 Übungsaufgaben
926
16.5.1 Praktische Übungen
926
16.5.2 Kontrollfragen
927
17 Weitere Datei- und Datenformate
933
17.1 Textdateien und Zeichensätze
933
17.1.1 Das Problem des Zeilenumbruchs
934
17.1.2 Zeichensätze
936
17.1.3 Textbasierte Dateiformate
943
17.2 Binäre Dateiformate
945
17.2.1 Bilddateiformate
948
17.2.2 Multimedia-Dateiformate
952
17.2.3 Archivdateien verwenden
955
17.3 Übungsaufgaben
958
18 Webseitenerstellung mit (X)HTML und CSS
963
18.1 HTML und XHTML
964
18.1.1 Die Grundstruktur von HTML-Dokumenten
965
18.1.2 Textstrukturierung und Textformatierung
968
18.1.3 Listen und Aufzählungen
975
18.1.4 Hyperlinks
978
18.1.5 Bilder in Webseiten einbetten
983
18.1.6 Tabellen
986
18.1.7 Formulare
992
18.1.8 Einbetten von Multimedia-Dateien
1000
18.1.9 Meta-Tags und Suchmaschinen
1001
18.2 Cascading Style Sheets (CSS)
1004
18.2.1 Platzieren von Stylesheets
1005
18.2.2 Stylesheet-Wertangaben
1007
18.2.3 Stylesheet-Eigenschaften
1009
18.2.4 Layer erzeugen und positionieren
1013
18.2.5 Die wichtigsten Neuerungen in CSS3
1019
18.3 Übungsaufgaben
1022
19 Webserveranwendungen
1031
19.1 PHP
1031
19.1.1 Sprachgrundlagen
1032
19.1.2 Klassen und Objekte
1049
19.1.3 Include-Dateien, Autoloader und Namespaces
1064
19.1.4 Webspezifische Funktionen
1067
19.1.5 Zugriff auf MySQL-Datenbanken
1072
19.1.6 Unit-Tests mit PHPUnit
1087
19.2 Eine REST-API implementieren
1096
19.2.1 Die API im Überblick
1096
19.2.2 Die Grundarchitektur der API
1099
19.2.3 Der komplette Quellcode
1101
19.2.4 Die API testen
1117
19.3 Übungsaufgaben
1120
20 JavaScript und Ajax
1123
20.1 Grundlagen
1124
20.1.1 JavaScript im HTML-Dokument
1124
20.1.2 Formulare und Event Handler
1129
20.1.3 Datums- und Uhrzeit-Funktionen
1139
20.1.4 Manipulation von Bildern
1142
20.1.5 Browser- und Fensteroptionen
1144
20.2 DHTML und DOM
1150
20.2.1 W3C-DOM im Überblick
1151
20.2.2 Eine DOM-Baum-Anzeige
1153
20.2.3 DOM-Anwendung in der Praxis
1156
20.2.4 Dokumentinhalte verändern und austauschen
1158
20.3 Ajax
1160
20.3.1 Die erste Ajax-Anwendung
1161
20.3.2 Datenaustauschformate: XML und JSON
1168
20.3.3 Größeres Beispiel: eine interaktive Länderliste
1168
20.4 jQuery
1178
20.4.1 jQuery im Überblick
1178
20.4.2 Ein REST-Client mit jQuery
1182
20.5 Übungsaufgaben
1192
21 Computer- und Netzwerksicherheit
1193
21.1 PC-Gefahren
1194
21.1.1 Viren und Würmer
1194
21.1.2 Trojaner und Backdoors
1200
21.1.3 Weitere Schädlinge
1201
21.2 Netzwerk- und Serversicherheit
1205
21.2.1 Servergefahren
1206
21.2.2 Wichtige Gegenmaßnahmen
1208
21.2.3 Kryptografie
1214
21.3 Übungsaufgaben
1216
A Glossar
1221
B Zweisprachige Wortliste
1233
C Kommentiertes Literatur- und Linkverzeichnis
1239
Index
1249