IT-Handbuch für Fachinformatiker - Der Ausbildungsbegleiter
von: Sascha Kersken
Rheinwerk Computing, 2015
ISBN: 9783836239967
Sprache: Deutsch
1307 Seiten, Download: 14938 KB
Format: EPUB, PDF, auch als Online-Lesen
Vorwort | 17 | ||
1 Einführung | 25 | ||
1.1 Informationstechnik | 1 | ||
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 | 1 | ||
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.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.4 Transaktionen | 783 | ||
13.4 MySQL-Administration | 784 | ||
13.4.1 mysqladmin | 784 | ||
13.4.2 Benutzerverwaltung | 785 | ||
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.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.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 | ||
Anhang | 1219 | ||
A Glossar | 1221 | ||
B Zweisprachige Wortliste | 1233 | ||
C Kommentiertes Literatur- und Linkverzeichnis | 1239 | ||
Index | 1249 |