Praktische Informatik I



Ähnliche Dokumente
Praktische Informatik I

Praktische Informatik I

Einführung in die Informatik

FHZ. K01 Geschichte des Computers. Lernziele. Hochschule Technik+Architektur Luzern. Inhalt

Organisatorisches. Informatik II Informationen und Daten. Organisatorisches. Organisatorisches. Rainer Schrader. 13. Oktober 2008

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Die Informatik als junge Wissenschaft

Algorithmus, siehe (1)

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Grundlagen der Informatik

Was ist ein Computer?

Grundlagen der Informatik

Modellierung und Programmierung 1

HISTORISCHES INFORMATIK-MUSEUM DER UNIVERSIDAD POLITECNICA DE MADRID

B Einführung. 1 Historische Entwicklung. 1 Historische Entwicklung (3) 1 Historische Entwicklung (2)

Technische Informatik I

Computeria Urdorf. Treff vom 16. Januar Was ist ein Computer?

Einführung in Eclipse und Java

Grundlagen der Wirtschaftsinformatik

Das Studium im Fach Informatik

Geschichte der Informatik

Ingenieurinformatik. Einführung in die Programmiersprache C

IT-Basics 2. DI Gerhard Fließ

Grundlagen der Hard- und Software. Prof. Dr.-Ing. Fischer FH Deggendorf

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Informatik Mensch Gesellschaft. Historische Entwicklung der Informationstechnik (von Anfang bis Heute)

B.SC. INFORMATIK TIM JUNGNICKEL

Installationsanleitung

Einleitung. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Allgemeine Informatik Thema 1 Informatik; Konzepte (II)

Grundbegriffe der Informatik

0. Einführung. C und C++ (CPP)

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

1. Übung - Einführung/Rechnerarchitektur

Programmieren was ist das genau?

1. Einführung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Grundlagen der Informatik

Wintersemester 2010/2011 Rüdiger Westermann Institut für Informatik Technische Universität München

Technische Informatik I, SS 2001

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

Programmiersprachen und Programmierkonzepte

Informatik an der LMU

Wichtige Rechnerarchitekturen

Institut für Telematik Universität zu Lübeck. Programmieren. Kapitel 0: Organisatorisches. Wintersemester 2008/2009. Prof. Dr.

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2013/14

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Computer-Generationen

Masterstudiengänge am Institut für Informatik

Kapitel 1: Einführung. Was ist Informatik? Begriff und Grundprobleme der Informatik. Abschnitt 1.1 in Küchlin/Weber: Einführung in die Informatik

Modulhandbuch für das BA Kombinationsfach Angewandte Informatik Multimedia

Informatik an der LMU

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Informatik und Informationstechnik (IT)

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Grundlagen der Rechnerarchitektur

Brückenkurs / Computer

Einführung in PHP. (mit Aufgaben)

Version 0.3. Installation von MinGW und Eclipse CDT

Informationstechnologie (ITE)

Brückenkurs / Computer

Lektion 3: Was ist und was kann ein Computer?

Einführung in die Informatik

Fragen und Antworten. Kabel Internet

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Übungen zu C++ Kapitel 1

Staatlich geprüfter EDV-Führerschein

Grundlagen der Rechnerarchitektur. Einführung

Studieninformationsveranstaltung. Informatik. Institut für Informatik IV Universität Bonn. Tel.: 0228/

Elektromechanische Computer

Bezugsquellen und Dokumentationen für LINUX und LibreOffice

Mächtigkeit von WHILE-Programmen

Informatik für Ingenieure

Einführung in die Programmierung mit Java

Panda GateDefender Software eseries ERSTE SCHRITTE

Aufbau und Funktionsweise eines Computers

Installation LehrerConsole (für Version 6.2)

Theoretische Informatik I

Informatik. 12.c. 1. Nachrichten, Informationen, Daten, Kommunikation

Vom Abitur zur Informatik (computer science)

Einführung in die Wirtschaftsinformatik. Dr. Jochen Müller Lehrstuhl für Wirtschaftsinformatik Prof. Dr. R. Gabriel

Einführung in die Informatik

Vorkurs Informatik WiSe 15/16

Übungsblatt 1: a) 5. Aufgaben: Rohentwurf analoges Lehrbuch

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Zahlensysteme: Oktal- und Hexadezimalsystem

Kurzanleitung /Kompalitätstest Barcode. Sie haben zwei Möglichkeiten unsere Barcode/Strichcodes für Ihren eigenen stationären Einzelhandel zu nutzen.

Einführung in die Informatik II

Installationshandbuch zum MF-Treiber

Transkript:

Inhaltsverzeichnis (1) WS 1999/2000 Prof. Dr. W. Effelsberg Lehrstuhl für V Universität Mannheim 1. Einführung 1.1 Was ist Informatik? 1.2 Geschichte der Informatik 1.3 Grundstruktur des Computers 2. Die Programmiersprache Java 2.1 Was ist Java? 2.2 Erste Beispiele 2.3 Lexikalische Konventionen 2.4 Typen und Werte 2.5 Konstanten und Variable 2.6 Typumwandlungen, Ausdrücke und Operatoren 2.7 Anweisungen 2.8 Felder 3. Entwurf von Algorithmen 3.1 Algorithmen, Progammiersprachen, Programme 3.2 Systematischer Entwurf von Algorithmen 3.3 Schrittweise Verfeinerung 3.4 Ablaufsteuerung (Kontrollstrukturen) 3.5 Modularität 3.6 Rekursion 3.7 Daten und Datenstrukturen 1. Einleitung 1-1 1. Einleitung 1-2

Inhaltsverzeichnis (2) 4. Brückenschlag zur Mathematik 4.1 Einführung in die Logik 4.2 Endliche Automaten 4.3 Binärbäume 5. Theorie der Algorithmen 5.1 Berechenbarkeit 5.2 Komplexität 5.3 Korrektheit und Verifikation 6. Alternative Programmierkonzepte 6.1 Ereignisgesteuerte Programmierung 6.2 Programmierung mit Logik 6.3 Funktionale Programmierung 1. Basis der Vorlesung Literatur zur Vorlesung Les Goldschlager / Andrew Lister: Informatik - Eine moderne Einführung 3. Auflage, Hanser-Verlag, München,1990 Martin Schader, Lars Schmidt-Thieme: Java - Eine Einführung 2. Auflage, Springer-Verlag, Berlin/Heidelberg/New York, 1999 2. Weitere Empfehlungen Harvey M. Deitel, Paul J. Deitel: Java: How to program 2 nd edition, Prentice Hall, 1997 (1100 Seiten!) Uwe Schöning: Logik für Informatiker 4. Auflage, Spektrum Akademischer Verlag, 1995 1. Einleitung 1-3 1. Einleitung 1-4

Danksagung Die Kollegen Hesser, Schader, Schmeck und Ottmann haben mir zur Vorbereitung dieser Vorlesung Folien und andere Unterlagen überlassen. Für ihre Unterstützung möchte ich mich herzlich bedanken. 1 Was ist Informatik? Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere der automatisierten Verarbeitung mit Hilfe von Digitalrechnern. Sie befaßt sich mit der Struktur, der Wirkungsweise, den Fähigkeiten und den Konstruktionsprinzipien von Informationsverarbeitungssystemen Strukturen, Eigenschaften und Beschreibungsmöglichkeiten von Informationen und von Informationsverarbeitungsprozessen (Datenstrukturen und Algorithmen) Möglichkeiten der Strukturierung, Formalisierung und Mathematisierung von Anwendungen sowie der Modellbildung und Simulation. 1. Einleitung 1-5 1. Einleitung 1-6

Einordnung der Informatik Informationstechnologie Inform atik M ikroelektronik Teilgebiete der Informatik Theoretische Informatik Technische Informatik Praktische Informatik Angewandte Informatik (Hardware) Automatentheorie Rechnerarchitektur Programmiersprachen Wirtschaftsinformatik Formale Sprachen Schaltkreisentwurf Datenstrukturen Ingenieursinformatik Komplexitätstheorie Prozessoren Datenbanken Computerlinguistik usw. Speicher Betriebssysteme naturwiss. Anwendungen pheriphere Geräte Rechnernetze geisteswiss. Anwendungen Kommunikationsgeräte Künstliche Intelligenz juristische Anwendungen usw. usw. usw. 1. Einleitung 1-7 1. Einleitung 1-8

Verwandte Gebiete 1.1 Geschichte der Informatik Naturwissenschaften BWL VWL Andere Ingenieurwissenschaften Recht Sozialwiss. Theologie... Meilensteine aus der Geschichte der Informatik 1.1.1 Geschichte der Ideen Philosophie Sprachen Verwaltung Musik/Kunst Psychologie Sport... Anwendungssysteme Entwicklungssysteme Sprachsysteme System software Betriebssysteme Rechnerarchit./Netze Kernsysteme Prozessoren, E/A Funktionale Einheiten Schaltungen Bauelemente Physikalische Vorgänge Physik M athem atik Chemie Biologie Pädagogik Theoretische und mathematische Grundlagen Baudot 1889 aus Indien und Arabien Ziffern, Stellenwert- Schreibweise (zuvor: römische Zahlen; vergleiche auch: englisches Geld!) G. W. Leibniz 1646-1716 Logischer Kalkül, binäres Zahlensystem, Addiermaschine G. Boole 1847 Algebraisierung der Logik D. Hilbert 1862-1943 Entscheidungsproblem, (finde Algorithmus, der entscheidet, ob gegebene Aussage wahr oder falsch ist) G. Frege 1879 symbolische Sprache zur Beschreibung von Algorithmen Konstruktion von binären Codes K. Gödel 1931 Unvollständigkeitstheorem (es gibt Probleme, zu denen keine algorithmische Lösung existiert) Turing 1937 Turing-Maschine, Berechenbarkeit, Algorithmus- Begriff 1. Einleitung 1-9 1. Einleitung 1-10

J. v. Neumann 1948 universelle, programmgesteuerte Rechenanlage C. E. Shannon 1948 Informationstheorie, Abtast- Theorem R. Hamming 1950 fehlerkorrigierende Codes H. Rutishauser 1951 algorithmische Programmiersprache J. Backus, P. Naur ca. Backus/Naur-Form zur 1958 Syntaxbeschreibung S. Cook 1971 NP-Vollständigkeit 1.1.2 Geschichte der Hardware Altertum Rom, Griechenland Automaten (z. B.wassergetrieben) Rom Abakus China "Chinese Abacus" (Perlenrechner) 1833 Ch. Babbage "Analytical Engine" 1890 H. Hollerith Lochkarten- Tabelliermaschinen (Volkszählung) 1941 K. Zuse Z3, erste funktionsfähige programmgesteuerte Rechenanlage (2600 Relais) 1944 H. Aiken Mark I, elektromechanischer Computer (Harvard U.) 1952 H. Aiken Mark II, Relais-Rechner 1. Einleitung 1-11 1. Einleitung 1-12

Automaten der alten Griechen Die automatischen Opferpriester wurden schom im 3. Jahrhundert v. Chr. von Philon aus Byzanz gebaut. Die Anlage arbeite mit pneumatischem Druck. Automaten der alten Ägypter Das Taxameter der alten Ägypter arbeite mit verschiedenfarbigen Kugeln, die in einer Schale gesammelt wurden. 1. Einleitung 1-13 1. Einleitung 1-14

Erste Generation der Computer (Röhren) 1943-46 Eckert, Mauchly ENIAC, U. Pennsylvania, 18 000 Röhren, Programm verdrahtet über Schalttafeln 1946 John v. Neumann "stored program computer" Daten und Programm im Speicher des Computers 1947 MIT Whirlwind I, magnetischer Kernspeicher 1947 U. Cambridge Magnettrommel- Speicher 1951 UNIVAC Magnetband-Speicher 1953 IBM 701, Röhrencomputer, Magnettrommel, Magnetband Zweite Generation (Transistoren) 1948 Erfindung des Transistors, Schaltelement mit hoher Schnelligkeit, geringer Leistungsaufnahme, geringer Wärmeabstrahlung, Marktreife 1951 1959 IBM 7090, voll transistorisiert, Magnetkernspeicher 7040 (kleineres Modell) 1964 CDC 6600, Supercomputer mit mehreren Prozessoren, über 3 MIPS 1967 D. Slotnick ILLIAC IV, Parallelrechner mit 256 Prozessoren (SIMD) 1. Einleitung 1-15 1. Einleitung 1-16

Dritte Generation (integrierte Schaltkreise) 1962 MIT, U. Manchester Hardware zur Adreßumsetzung, virtueller Speicher, Paging 1964 IBM System /360, byte- und wortorientiert, Standards für Architektur und Instruktionssatz weithin akzeptiert. ca. 1972 Halbleiter-Speicher als ca. 1972 Intel erster Mikroprozessor ca. 1974 DEC PDP 11, Prozessrechnerfamilie 1977 Cray CRAY-1, Vektorrechner mit Pipelining ca. 1978 Xerox PARC hochauflösender Rastergrafik- Bildschirm, Maus ca. 1980 Apple erster PC ca. 1990 3 M PC : 1 Mio Instruktionen/s, 1 Mbyte, 1 Mio Pixel 1.1.3 Geschichte der Software (1) 1954 J. Backus FORTRAN 1960 DoD (USA) COBOL 1960 H. Rutishauser, ALGOL 60 F. L. Bauer K. Samelson 1966 J. Weizenbaum ELIZA 1968 E. Dijkstra Multiprogramming, Struktur von Betriebssstemen 1970 E. Codd relationales Datenbankmodell 1971 N. Wirth Pascal 1974 IBM SNA-Ankündigung 1974 D. M. Ritchie, Unix-Betriebssystem K. Thompson 1975 R. Metcalfe, Ethernet LAN D. Boggs 1. Einleitung 1-17 1. Einleitung 1-18

Geschichte der Software (2) ca. 1978 DEC VAX und VMS 1978 C. A. R. Hoare Communicating Se quential Processes, Programmierung paralleler Prozesse 1978 R. Rivest, Public Key Encryption A. Shamir, L. Adelmann ca. 1980 VisiCalc erste Tabellenkalkulationssoftware 1984 ISO OSI-Referenzmodell für offene Systeme 1982 Xerox PARC OO - Programmierung (Smalltalk) Benutzerfreundliche Anwendungssoftware Textverarbeitung, incl. Grafik, Desktop Publishing Tabellenkalkulation Präsentationssoftware Datenbanksysteme multifunktionale Pakete (MS Office) Internet-Browser Spiele Bedeutung: Benutzung des Computers wird möglich ohne Erlernen einer Programmiersprache! 1987 MIT X Windows 1993 Sun Java 1. Einleitung 1-19 1. Einleitung 1-20

1.1.4 Geschichte typischer Konfigurationen 1950 64 K BATCH-Betriebssystem, Einbenutzerbetrieb Programmierung in Assembler Peripherie: Lochstreifen 1960 64 K (Magnetkerne) BATCH, Multiprogramming, I/O-Kanäle FORTRAN, COBOL Magnettrommel, Magnetplatte, Magnetband Lochkarten 1970 256 K (Halbleiter/Magnetkerne) Virtueller Speicher, Paging Time-Sharing-Betriebssysteme Terminals für Systemprogrammierer 1980 1 MB (Halbleiter) Time-Sharing + TP-Monitor Terminal-Netze über Standleitungen Interaktive Programmentwicklung am Terminal Transaktionsverarbeitung On-Line am Terminal Magnetplatte, Magnetband Typische Konfigurationen (2) 1990 Leistungsstarke Arbeitsstationen (PCs) mit 1 MB, 1 MIPS, 1 Mio. Bildpunkte Abteilungsrechner Zentrale Großrechenzentren Benutzerfreundliche Programme auf PCs UNIX PASCAL, C LAN, WAN mit Paketvermittlung (X.25) Netzarchitekturen der Hersteller ISO - OSI Architektur für Rechnernetze 2000 RISC-Workstations und PCs, PC's mit modernen Betriebssystem und grafischer Benutzeroberfläche, Client/Server Computing im Netz, Parallelrechner für Spezialanwendungen, Audio voll integriert, aber noch nicht Video, Java, C++, C als Programmiersprachen, das Internet als globales Netz, TCP/IP- Netze auch in den Unternehmen, 100 MBit/s in LANs und WANs (ATM, Gigabit Ethernet) 1. Einleitung 1-21 1. Einleitung 1-22

1.2 Grundstruktur des Computers Diskette Scanner Bildschirm (M aus, Tastatur) Telefon Magnetplattenspeicher Dateneingabegeräte Ausweisle se r Aufbau eine Computersystems Bedienungsbildschirm Zentraleinheit Steuerwerk Rechenwerk Externe Speicher M assenspeicher M agnetbandspeicher Datex- oder Fernsprechle itun g Datenausgabegeräte Diskette Datensichtgerät Sprachausgabe Drucker Zeichenmaschine (P lo tter) Kontrolleinh. kontrolliert Verarbeitung Funktionsweise (1) 4 3 2 1 add 4,3,2 0 Arithm. Einheit enthält Daten und Instruktionen addiert 1. Einleitung 1-23 1. Einleitung 1-24

Funktionsweise (2) Funktionsweise (3) 4 3 2 1 add 4,3,2 0 4 3 2 1 add 4,3,2 0 Kontrolleinh. Kontrolleinheit add 4,3,2 Arithm. Einheit Instruktion auf Adresse 0: add Werte von Adressen 4 und 3 und schreibe Resultat auf Adresse 2 lese nächste Instruktion von Adresse 1 Abgekürzt: add 4,3,2 Arithm. Einheit lese Instruktion von Adresse 0 1. Einleitung 1-25 1. Einleitung 1-26

Funktionsweise (4) Funktionsweise (5) Kontrolleinheit add 4,3,2 5 4 4 3 2 1 add 4,3,2 0 Kontrolleinheit add 4,3,2 5 4 4 3 2 1 add 4,3,2 0 5 Arithm. Einheit schreibe Wert von Adresse 4 in arithm. Einheit Arithm. Einheit 5 4 schreibe Wert von Adresse 3 auf arithm. Einheit 1. Einleitung 1-27 1. Einleitung 1-28

Funktionsweise (6) Funktionsweise (7) 5 4 4 3 2 1 add 4,3,2 0 5 4 4 3 9 2 1 add 4,3,2 0 Kontrolleinheit add 4,3,2 Kontrolleinheit add 4,3,2 addiere Arithm. Einheit 5 + 4 = 9 Arithm. Einheit 5 4 = 9 schreibe Resultat auf Adresse 2 1. Einleitung 1-29 1. Einleitung 1-30

Funktionsweise (8) Software 5 4 4 3 9 2 nächste Ins. 1 add 4,3,2 0 Software ist eine Abfolge von Instruktionen, die von einem Prozessor verarbeitet werden. Beispiele für Instruktionen y = 4 + 3; höhere Programmiersprache add 4,3,2 Assembler 01110101010 Maschinensprache Kontrolleinheit nächste Inst. Arithm. Einheit lese nächste Instruktion von Adresse 0+1 1. Einleitung 1-31 1. Einleitung 1-32

Hardware- und Software-Schnittstellen Hardware- und Software-Beispiele Anwendungssoftware Systemsoftware Hardware Malprogramme, Textverarbeitungsprogramme, Betriebssystem, Compiler, CPU,, Festplatte, Tastatur, Maus, LAN, Anwendungssoftware Editor Web-Browser Java-Programm (eigenes Programm) Systemsoftware Betriebssystem Compiler Datenbank-Managementsystem Netzwerksoftware (Treiber) Hardware CPU Festplatte Ethernet-Karte Tastatur Monitor 1. Einleitung 1-33 1. Einleitung 1-34

Vom Anwendungsproblem zum Programm Vom Algorithmus zum Maschinenprogramm Formuliere das Problem Skizziere die Lösung (z. B. Algorithmus in Pseudo- Code) Schreibe den Algorithmus in einer Programmiersprache auf Kompiliere, binde und starte das Programm Algorithmus Programmierung Programm in a höherer Programmiersprache Übersetzung Programm in in Machine Maschinensprache Language Interpretation durch CPU Ausführung des Programms 1. Einleitung 1-35 1. Einleitung 1-36

Kompilierung vs. Interpretation Typische Java-Umgebung Algorithmus Editor Platte Programm mit Editor erzeugt und auf Platte gespeichert. Kompilierung Source Code Kodierung im Editor Pseudo-Übersetzer Compiler Class Loader Platte Compiler erzeugt Bytecode, der auf Platte gespeichert wird. Class loader: Bytecode in Speicher. Assembler Pseudo Code Platte... Binder + Libraries Object Code ausführbares Programm Interpreteraufruf Bytecode Verifier. stellt sicher, daß Bytecode und nicht die Sicherheitsrestriktionen von Java verletzt. Programmaufruf Programmausführung Interpreter. liest Bytecode und übersetzt ihn in Maschinensprache. 1. Einleitung 1-37 1. Einleitung 1-38