UID:
almafu_9958126878302883
Format:
1 online resource (800 pages) :
,
illustrations
Edition:
2., aktualisierte Auflage.
ISBN:
3-86326-526-2
Content:
Alle wichtigen Gebiete der Praktischen, Technischen und Theoretischen Informatik, wie sie Bestandteil von Grundlagenvorlesungen für Informatiker und Ingenieure sind, werden in dieser Einführung in verständlicher Form vorgestellt und erklärt. Darüber hinaus ermöglichen Übungsaufgaben dem Leser eine eigenständige Lernzielkontrolle. Rätsel und Denksportaufgaben fördern zudem die systematische Problemlösungsfähigkeit. Zu allen Aufgaben stehen auch die Lösungen zur Verfügung. Die Vielzahl der auf der CWS vorhandenen Demonstrations- und Simulationsprogramme erweitert den Rahmen dieser Möglichkeiten, mit denen sich der erlernte Stoff vertiefen lässt. Dieses Lehrwerk bietet somit ein auf den Markt einzigartiges komplettes Lernpaket zur Einführung in die Informatik und fußt auf langjährigen Lehr- und Industrieerfahrungen des Autorenteams. Aus dem Inhalt:Speicherung und Interpretation von InformationHardware-Komponenten undMaschinenprogrammProgrammiersprachen, Parallele Programmierung, Datenstrukturen undAlgorithmenBetriebssysteme, Rechnernetze, Internet und SchadsoftwareDatenbanken und Software-EngineeringLogische Bausteine, Schaltnetze und SchaltwerkeProzessorarchitekturen, Speicher und CachesAutomaten-, Berechenbarkeits- und KomplexitätstheorieCodes, Kompression und Kryptografie.
Note:
Grundlagen der Informatik 2. Auflage -- Impressum -- Inhaltsverzeichnis -- Vorwort -- 1 Einleitung -- 1.1 Idee dieses Buches -- 1.2 Beispiele, Übungen und Rätsel -- 1.3 Begleitmaterial zu diesem Buch -- 1.4 Danksagung -- 1.5 Hinweis in eigener Sache -- i Einführung in die Informatik -- 2 Die Historie und die Teilgebiete der Informatik -- 2.1 Rätsel: Streichholzprobleme -- 2.2 Der Begriff Informatik -- 2.3 Historische Entwicklung der Informatik -- 2.3.1 Der Abakus -- 2.3.2 Der Begriff Algorithmus und Ibn Musa Al-Chwarismi -- 2.3.3 Wichtige Stationen von 1500 bis 1930 -- 2.3.4 Konrad Zuse und der erste funktionstüchtige Computer -- 2.3.5 Howard H. Aiken und die Mark I -- 2.3.6 John von Neumann -- 2.3.7 Generationen der elektronischen Datenverarbeitung -- 2.4 Einordnung und Einteilung der Informatik -- 2.4.1 Verschiedene Einsatzgebiete von Computern (Informatik) -- 2.4.2 Die Teilgebiete der Informatik -- 2.4.3 Die Informatik und unsere Abhängigkeit von ihr -- 3 Speicherung und Interpretation von Information -- 3.1 Rätsel: Umfüllprobleme -- 3.2 Unterschiedliche Zahlensysteme -- 3.2.1 Das römische Zahlensystem -- 3.2.2 Positionssysteme -- 3.2.3 Positionssysteme bei natürlichen Zahlen -- 3.2.4 Positionssysteme bei gebrochenen Zahlen -- 3.3 Dual-, Oktal- und Hexadezimalsystem -- 3.3.1 Das Dualsystem und das Bit im Rechner -- 3.3.2 Konvertieren zwischen Dual- und Oktalsystem -- 3.3.3 Konvertieren zwischen Dual- und Hexadezimalsystem -- 3.4 Konvertierungsalgorithmen -- 3.4.1 Konvertieren von anderen Systemen in das Dezimalsystem -- 3.4.2 Konvertieren vom Dezimalsystem in andere Positionssysteme -- 3.4.3 Konvertieren echt gebrochener Zahlen -- 3.4.4 Konvertieren unecht gebrochener Zahlen -- 3.5 Rechenoperationen im Dualsystem -- 3.5.1 Addition -- 3.5.2 Subtraktion und Darstellung negativer Zahlen -- 3.5.3 Multiplikation und Division.
,
3.5.4 Konvertieren durch sukzessive Multiplikation und Addition -- 3.6 Reelle Zahlen -- 3.6.1 Festpunktzahlen -- 3.6.2 Gleitpunktzahlen und das IEEE-Format -- 3.7 Codes zur Darstellung von Zeichen -- 3.7.1 ASCII-Code -- 3.7.2 Unicode -- 3.8 Weitere Codes für Zahlen und Zeichen -- 3.8.1 BCD-Code für Zahlen -- 3.8.2 Gray-Code -- 3.8.3 Barcode -- 3.9 Duale Größenangaben -- 3.10 Die Grunddatentypen in der Programmiersprache C/C++ -- 4 Boole'sche Algebra -- 4.1 Rätsel: Analytische Rätsel (1) -- 4.2 George Boole und seine Algebra mit nur zwei Werten -- 4.3 Operatoren -- 4.4 Boole'sche Schaltungen -- 4.5 Boole'sche Rechenregeln -- 4.6 Funktionen -- 5 Hardware-Komponenten eines Computers -- 5.1 Rätsel: Analytische Rätsel (2) -- 5.2 Aufbau von Computersystemen -- 5.2.1 Zentraleinheit und Peripheriegeräte -- 5.2.2 EVA und das von-Neumann'sche-Rechnermodell -- 5.3 Die heutigen Personal Computer (PCs) -- 5.4 Die Zentraleinheit -- 5.4.1 Der Prozessor -- 5.4.2 Der Arbeitsspeicher -- 5.4.3 ROMs zur Speicherung von Programmen und konstanten Daten -- 5.4.4 Das BIOS -- 5.4.5 Busse und Schnittstellen (Anschlüsse) -- 5.5 Die Peripherie -- 5.5.1 Massenspeicher -- 5.5.2 Eingabegeräte -- 5.5.3 Ausgabegeräte -- 5.6 Modell eines einfachen Prozessorsystems -- 5.7 Alternative Rechnerarchitekturen (Neuronale Netze) -- 6 Vom Programm zum Maschinenprogramm -- 6.1 Rätsel: Analytische Rätsel (3) -- 6.2 Entwicklung eines Programms -- 6.3 Programmierwerkzeuge -- 6.3.1 Unterschiedliche Arten der Übersetzung -- 6.3.2 Der Compiler -- 6.3.3 Der Linker -- 6.3.4 Der Lader (und Locator) -- 6.3.5 Der Debugger -- ii Praktische Informatik -- 7 Programmiersprachen -- 7.1 Rätsel: Analytische Rätsel (4) -- 7.2 Höhere Programmiersprachen -- 7.3 Grundlagen der Programmierung -- 7.3.1 Spezifikation einer Aufgabenstellung -- 7.3.2 Der Begriff Algorithmus.
,
7.3.3 Formulierung und Darstellung eines Algorithmus -- 7.3.4 Programm = Daten + Algorithmus -- 7.4 Datentypen und Operatoren in C/C++ und Java -- 7.4.1 Datentypen und Konstanten -- 7.4.2 Bezeichner -- 7.4.3 Grundlegende Operatoren -- 7.4.4 Die logischen Operatoren &&, || und ! -- 7.4.5 Die Shift-Operatoren 〉 -- 7.4.6 Die Postfix- und Präfixoperatoren ++ und -- -- 7.4.7 Die Bit-Operatoren &, |, 94 und -- 7.4.8 Prioritäten und Assoziativitäten der Operatoren -- 7.5 Formulierung von Algorithmen in C/C++ und Java -- 7.5.1 Sequenz -- 7.5.2 Verzweigungen mit if -- 7.5.3 Verzweigungen mit switch -- 7.5.4 for-Schleife (Schleife mit der Abfrage am Anfang) -- 7.5.5 while-Schleife (Schleife mit der Abfrage am Anfang) -- 7.5.6 do... while-Schleife (Schleife mit der Abfrage am Ende) -- 7.5.7 Abbruch von Schleifen mit break -- 7.5.8 Abbruch eines einzelnen Schleifendurchlaufs mit continue -- 7.5.9 Abbruch mehrerer geschachtelter Schleifen mit goto -- 7.5.10 Programmabbruch mit exit -- 7.5.11 Allgemeines zu Funktionen bzw. Methoden -- 7.5.12 Rekursive Funktionen bzw. rekursive Methoden -- 7.5.13 Arrays -- 7.5.14 Strings -- 7.5.15 Zufallszahlen -- 7.5.16 Argumente auf der Kommandozeile -- 7.5.17 Ausnahmen (Exceptions) in Java -- 7.5.18 Dateien -- 7.5.19 Strukturen in C/C++ -- 7.6 Objektorientierte Programmierung mit Java -- 7.6.1 Meilensteine in der Softwareentwicklung -- 7.6.2 Einführung in die Objektorientierung -- 7.6.3 Klassen und Objekte -- 7.6.4 Konstruktoren -- 7.6.5 Vererbung und Polymorphismus -- 7.6.6 GUI-Programmierung in Java -- 7.7 Portable GUI-Programmierung mit Qt -- 7.7.1 Allgemeines zu Qt -- 7.7.2 Grundlegende Konzepte und Konstrukte von Qt -- 7.7.3 Das Signal-Slot-Konzept von Qt -- 7.8 Programmierung paralleler Abläufe (Parallel-Programmierung) -- 7.8.1 Konzepte und HW-Architekturen für parallele Abläufe.
,
7.8.2 SW-Konzepte und Erstellung paralleler Programme -- 7.8.3 Parallele Programmierung mit Threads -- 7.8.4 Parallele Programmierung mit openMP -- 7.8.5 Besondere Probleme bei paralleler Bearbeitung -- 7.8.6 Ausblick -- 7.9 Funktionale Programmierung (Scala, F#) -- 8 Datenstrukturen und Algorithmen -- 8.1 Rätsel: Analytische Rätsel (5) -- 8.2 Grundlegende Datenstrukturen -- 8.2.1 Allgemeine Eigenschaften von Daten -- 8.2.2 Basis-Datentypen -- 8.2.3 Datenstruktur = Daten + Operationen -- 8.2.4 Verkettete Listen -- 8.2.5 Stack (Stapel) -- 8.2.6 Queue (Warteschlange) -- 8.3 Bäume -- 8.3.1 Grundlegendes zu Bäumen -- 8.3.2 Binäre Bäume -- 8.3.3 Baumrekursion bei Bäumen mit mehr als zwei Zweigen -- 8.4 Komplexität von Algorithmen und O-Notation -- 8.4.1 Zeitaufwand -- 8.4.2 Speicherplatzbedarf -- 8.4.3 Klassifikation von Algorithmen -- 8.4.4 Die O-Notation -- 8.4.5 Wahl eines Algorithmus -- 8.4.6 Einfache Optimierungen bei der Implementierung -- 8.5 Elementare Sortieralgorithmen -- 8.5.1 Grundsätzliches zu Sortieralgorithmen -- 8.5.2 Bubble-Sort -- 8.5.3 Insert-Sort -- 8.5.4 Select-Sort -- 8.5.5 Zeitmessungen für Bubble-, Insert- und Select-Sort -- 8.5.6 Distribution Count-Sort (Bucket-Sort) -- 8.6 Shell-Sort -- 8.7 Quicksort -- 8.8 Mergesort -- 8.8.1 Rekursiver Mergesort für Arrays -- 8.8.2 Nicht-rekursiver Mergesort für Arrays -- 8.8.3 Analyse des Mergesort -- 8.8.4 Mischen von zwei sortierten Arrays -- 8.9 Backtracking -- 8.9.1 Finden in einem Labyrinth -- 8.9.2 Das Achtdamen-Problem -- 8.9.3 Rekursives Füllen von Figuren -- 8.9.4 Sudoku -- 8.9.5 Branch-and-Bound-Verfahren -- 9 Betriebssysteme -- 9.1 Rätsel: Überquerung einer Hängebrücke -- 9.2 Der Begriff Betriebssystem -- 9.3 Die Geschichte von Betriebssystemen -- 9.4 Grundaufgaben von Betriebssystemen -- 9.5 Aufbau und Dienste von Betriebssystemen -- 9.5.1 Schichtenaufbau.
,
9.5.2 Prozesse, Threads, Scheduling -- 9.5.3 Synchronisations-Mechanismen -- 9.5.4 Zeitdienste (Timer) -- 9.5.5 Speicherverwaltung -- 9.5.6 Dateiverwaltung und Dateisysteme -- 9.5.7 Geräteverwaltung und Treiber -- 9.5.8 Benutzerschnittstelle (Kommandozeile bzw. GUI) -- 9.5.9 Programmierschnittstelle (API) -- 9.6 Besonderheiten bei Embedded Systemen -- 10 Rechnernetze und das Internet -- 10.1 Rätsel: Synthetische Rätsel (1) -- 10.2 Grundlagen der Vernetzung von Rechnern -- 10.3 Das ISO/OSI-Modell und Internet-Protokolle -- 10.4 Internet-Protokolle in Rechnernetzen -- 10.4.1 Grundbegriffe zu TCP/IP-Netzen -- 10.4.2 TCP/IP-Protokolle -- 10.5 Hubs, Switches, Router und Gateways -- 10.6 Grundlagen der Socket-Programmierung -- 10.7 Verteilte Anwendungen -- 10.8 Das World Wide Web (WWW) -- 10.8.1 Wichtige Komponenten und Konzepte des WWW -- 10.8.2 Kurze Einführung in HTML -- 10.8.3 Cascading Style Sheets (CSS) -- 10.8.4 Eine kurze Einführung in XML -- 10.8.5 XHTML -- das neue, XML-basierte HTML -- 10.8.6 Web-Programmierung -- 10.9 Gefahren durch Software -- 10.9.1 Arten von Schadsoftware -- 10.9.2 Pufferüberläufe (Buffer Overflows) -- 11 Datenbanksysteme -- 11.1 Rätsel: Synthetische Rätsel (2) -- 11.2 Grundlegendes zu Datenbanksystemen -- 11.2.1 Aufgaben einer Datenbank -- 11.2.2 Vorteile von Datenbanken -- 11.2.3 Datenunabhängigkeit -- 11.3 Datenmodelle -- 11.3.1 Das Entity-Relationship-Modell -- 11.3.2 Das relationale Datenmodell -- 11.3.3 Die relationale Algebra -- 11.4 Die Datenbanksprache SQL -- 11.4.1 Datendefinition -- 11.4.2 Einfügen, Ändern und Löschen von Datensätzen -- 11.4.3 Anfragen mit select -- 12 Software Engineering -- 12.1 Rätsel: Synthetische Rätsel (3) -- 12.2 Die Software-Krise -- 12.3 Eine geeignete Software-Architektur -- 12.4 UML-Diagramme für die Modellierung -- 12.4.1 Statische Modellierung in UML.
,
12.4.2 Dynamische Modellierung in UML.
Additional Edition:
ISBN 3-86894-111-8
Additional Edition:
ISBN 1-299-74691-8
Language:
German
Bookmarklink