Inhaltsverzeichnis

  • 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