O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Informatik, 2nd Edition

Book Description

Die praktische Informatik lebt vom Ausprobieren verschiedener Lösungswege, dem Experimentieren mit Programmkonstrukten und Algorithmen, und allgemein vom "Selbermachen". Darauf baut das didaktische Konzept des Buchs auf: Anhand einer Vielzahl an Aufgaben kann der Student die präsentierten Konzepte selbst erfahren, mit Ihnen arbeiten und so die eigentlichen Probleme der Informatik wirklich verstehen.

Table of Contents

  1. Cover
  2. Titelseite
  3. Impressum
  4. Vorwort
  5. Inhalt
  6. 1 Was ist Informatik?
  7. 2 Unix/Linux und Shell-Programmierung
    1. 2.1 Grundlegendes
      1. 2.1.1 Wozu dient ein Betriebssystem?
      2. 2.1.2 Unix vs. Linux
      3. 2.1.3 Der Aufbau von Linux
      4. 2.1.4 Die Shell
      5. 2.1.5 Multitasking
      6. 2.1.6 Das Dateisystem von Unix
    2. 2.2 Erste wichtige Kommandos
      1. 2.2.1 Aufbau von Shell-Kommandos
      2. 2.2.2 Befehle für Verzeichnisse
      3. 2.2.3 Befehle für Dateien
      4. 2.2.4 Befehle für die Benutzerverwaltung
      5. 2.2.5 Befehle des Prozesssystems
      6. 2.2.6 Sonstige Befehle
    3. 2.3 Textdateien erstellen und editieren mit vi
    4. 2.4 Features der Shell
      1. 2.4.1 Eingabe
      2. 2.4.2 Wildcards
      3. 2.4.3 Umleitungen und Pipes
      4. 2.4.4 Shellvariablen
      5. 2.4.5 Ausblendung von Sonderbedeutungen
      6. 2.4.6 Verknüpfungen von Kommandos
    5. 2.5 Weitere Kommandos
      1. 2.5.1 Das find-Kommando
      2. 2.5.2 Das grep-Kommando
      3. 2.5.3 Der cut-Befehl
      4. 2.5.4 Das sort-Kommando
      5. 2.5.5 Die head- und tail-Kommandos
    6. 2.6 Shell-Programmierung
      1. 2.6.1 Dateneingabe
      2. 2.6.2 Kommandozeilenparameter
      3. 2.6.3 Bedingungen testen
      4. 2.6.4 Programmschleifen
  8. 3 Python-Programmierung
    1. 3.1 Arbeiten mit Python
      1. 3.1.1 Python 3 vs. Python 2
      2. 3.1.2 Installation
      3. 3.1.3 Ein erstes Python-Programm
      4. 3.1.4 Die Python-Shell
      5. 3.1.5 Python Notebooks
    2. 3.2 Einfache Datentypen
      1. 3.2.1 Zahlen
      2. 3.2.2 Boolesche Werte
      3. 3.2.3 Strings
      4. 3.2.4 Variablen
      5. 3.2.5 Operatoren
    3. 3.3 Grundlegende Konzepte
      1. 3.3.1 Einrücktiefe
      2. 3.3.2 Kontrollfluss
      3. 3.3.3 Schleifenabbruch
      4. 3.3.4 Anweisungen vs. Ausdrücke
      5. 3.3.5 Funktionen
    4. 3.4 Zusammengesetzte Datentypen
      1. 3.4.1 Listen und Sequenzen
      2. 3.4.2 Allgemeine Sequenzoperationen
      3. 3.4.3 Wichtige Operationen auf Listen
      4. 3.4.4 Referenzen
      5. 3.4.5 Tupel
      6. 3.4.6 Dictionaries
      7. 3.4.7 Strings (Fortsetzung)
    5. 3.5 Funktionale Programmierung
      1. 3.5.1 Listenkomprehensionen
      2. 3.5.2 Die map-Funktion
      3. 3.5.3 Die filter-Funktion
      4. 3.5.4 Die reduce-Funktion
    6. 3.6 Dateien und Verzeichnisse
      1. 3.6.1 Datei-Objekte
      2. 3.6.2 Dateimanipulation mit Listenkomprehensionen
      3. 3.6.3 Verzeichnisse
    7. 3.7 Objektorientierte Programmierung
      1. 3.7.1 Definition und Verwendung einer Klasse
  9. 4 Programmierung mit regulären Ausdrücken
    1. 4.1 Verwendung Regulärer Ausdrücke in Python
      1. 4.1.1 Das Kommando re.findall
      2. 4.1.2 Das Kommando re.sub
      3. 4.1.3 Das Kommando re.search
    2. 4.2 Komponenten Regulärer Ausdrücke
      1. 4.2.1 Einfache Konstrukte
      2. 4.2.2 Rückwärtsreferenzen (Backreferences)
      3. 4.2.3 Greedy vs. Non-Greedy
      4. 4.2.4 Lookahead
    3. 4.3 Reguläre Ausdrücke vs. Suchausdrücke mit Listenkomprehensionen
  10. 5 Datenbanken und Datenbankprogrammierung
    1. 5.1 Wozu Datenbanken?
      1. 5.1.1 Daten-Persistenz
      2. 5.1.2 Dateisystem als Datenspeicher
      3. 5.1.3 Anforderungen an Persistenzmechanismen
    2. 5.2 Datenbankmanagementsysteme (DBMS)
      1. 5.2.1 Transaktionskonzept
      2. 5.2.2 Funktionsweise eines DBMS
      3. 5.2.3 Einsatz von DBMS
    3. 5.3 Relationale DBMS
      1. 5.3.1 Tabellen, Schemata, Zeilen, Spalten
      2. 5.3.2 Erstellen einer Tabelle in MySQL mit Python
    4. 5.4 SQL-Abfragen
      1. 5.4.1 Relationenalgebra
      2. 5.4.2 Das SELECT-Kommando
      3. 5.4.3 Zählen und Statistiken
      4. 5.4.4 Joins: Verknüpfung von Tabellen
    5. 5.5 Entwurf relationaler DBMS
      1. 5.5.1 Entity-Relationship-Diagramme
      2. 5.5.2 Umsetzung in ein relationales Modell
      3. 5.5.3 Normalisierung
    6. 5.6 Nicht-Relationale DBMS
      1. 5.6.1 CouchDB: Datenverfügbarkeit vs. Datenkonsistenz
      2. 5.6.2 Funktionsprinzipien
      3. 5.6.3 JSON
      4. 5.6.4 Erzeugen einer CouchDB-Datenbank mit Python
      5. 5.6.5 Benutzerdefinierte Views mit MapReduce
  11. 6 Internet und Internetprogrammierung
    1. 6.1 Einführung in die Funktionsweise des Internet
      1. 6.1.1 Geschichtliches
      2. 6.1.2 Netzwerk-Protokolle
      3. 6.1.3 Das TCP/IP-Referenzmodell
      4. 6.1.4 Internetworking
      5. 6.1.5 Sockets
      6. 6.1.6 Host, Server, Client
    2. 6.2 Socketprogrammierung
    3. 6.3 Dateitransfer mit FTP
    4. 6.4 HTML und Datentransfer von URLs
      1. 6.4.1 HTML
      2. 6.4.2 Datentransfer von URLs
    5. 6.5 Dynamische Web-Seiten
      1. 6.5.1 htmlgen: Generierung von HTML-Code
      2. 6.5.2 Ein einfacher Web-Server
      3. 6.5.3 Ein erstes CGI-Skript
      4. 6.5.4 Komplexere CGI-Skripte
  12. 7 Nebenläufige und Parallele Programmierung
    1. 7.1 Grundlegendes
      1. 7.1.1 Prozesse, Tasks und Threads
      2. 7.1.2 Nebenläufigkeit vs. Parallelität
      3. 7.1.3 Multithreading, Time-Sharing und Threadzustände
      4. 7.1.4 Programmierung mit Threads vs. Multi-Core-Programmierung
    2. 7.2 Parallele Rechnerarchitekturen
      1. 7.2.1 NOWs
      2. 7.2.2 SMPs und Mehrkern-Prozessoren
      3. 7.2.3 GPUs
      4. 7.2.4 Hardware-seitiges Multithreading
    3. 7.3 Techniken Paralleler Programmierung
      1. 7.3.1 Locks
      2. 7.3.2 Message-Passing
      3. 7.3.3 Bulk Synchronous Parallel Model (BSP)
    4. 7.4 Multithread-Programmierung in Python
      1. 7.4.1 Das threading-Modul
      2. 7.4.2 Verwendung von Locks
      3. 7.4.3 Das queue-Modul
    5. 7.5 Multicore-Programmierung in Python
      1. 7.5.1 Das multiprocessing-Modul
      2. 7.5.2 Das mpi4py-Modul
  13. Literatur
  14. Stichwortverzeichnis
  15. Fußnoten