1. Organisatorisches. 2. Themen und Ziele der Vorlesung. 3. Übungen. 5. Literatur. 6. Informatik, Geschichte. 7. Programmieren, Programmiersprachen

Ähnliche Dokumente
ODER I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN. Marcel Götze

1. Digitale Medien. 2. Webtechnologien. 3. Web 2.0, Semantic Web. 4. Wissensmanagement. 1. Methoden des Wissensmanagements 2.

1 EINFÜHRUNG. Marcel Götze

1 Einführende Bemerkungen

Dipl. Ing. (FH) Ehrenfried Stuhlpfarrer

Geschichte der Informatik

Allgemeine Informatik Thema 1 Informatik; Konzepte (II)

Informatik - Lehrgang 2000/2001 GRUNDLAGEN

Einführung in Betriebssysteme

Wichtige Rechnerarchitekturen

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

Grundlagen der Informatik für Wissenschaftliche Anwendungen

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

Einführung in die Informatik

Allgemeine Informatik Thema 1 Informatik; Konzepte

Wirtschaftsinformatik. Hochschule für Wirtschaft und Recht Dozent: R. Witte

Definitionen/Vorarbeit zum Thema Java

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

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

Geschichte der Informatik

Übersicht. Einleitung. Übersicht. Architektur. Dr.-Ing. Volkmar Sieh WS 2008/2009

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

Algorithmen versus Programmiersprachen

PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK. Created by Michael Kirsch & Beat Rossmy

MacOS. MacOS. MacOS X. People who are really serious about software should make their own hardware. Alan Kay

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

Grundlagen der Informatik und der Numerik für Lehramt Grund- und Förderschule

Konrad Zuse.. Proseminar von Markus Sabath 10. November 2005

ALP I Geschichtliche Einführung in die Programmiersprachen

Praktische Informatik I

Grundlagen der Informatik

GESCHICHTE DER COMPUTERTECHNIK

Vorkurs Informatik WiSe 16/17

Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2015

Computermuseum crossmedial

Einführung. Rechnerarchitekturen Entwicklung und Ausführung von Programmen Betriebssysteme

1. Entwicklung der Datenverarbeitung

Mechanische Rechenmaschinen. Dany Schulze

Einführung in Betriebssysteme MACOS X

Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2017

Wissenschaftliches Rechnen I

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

ADS. 1. Vorlesung. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

Algorithmus, siehe (1)

Informatik (für allg. Maschinenbau)

2. Einführung. Informatik II für Verkehrsingenieure

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Vorlesung. Technologische Grundlagen der Informationsverarbeitung. Rechnerarchitektur. Dipl.-Ing. Gert Martin

Programmiersprachen. Organisation und Einführung. Berthold Hoffmann. Studiengang Informatik Universität Bremen

Programmiervorkurs. Wintersemester 2013/2014

Propädeutikum Programmiersprache C und Mathematik 2014

Informatik Allgemeines Einführung

Informationsverarbeitung

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2017/18

ÜBER JAHRE INFORMATIK

Programmieren lernen mit Perl

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 37

2. Programmierung in C

Einführung in die Programmierung

Eckpunkte der Informatik-Geschichte

Probestudium. Paralleles Programmieren für moderne Multicore-Prozessoren. Prof. Dr. Hans Jürgen Ohlbach

Grundlagen der Programmierung

Technische Informatik I, SS 2001

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Inhaltsverzeichnis. Inhalt. Bemerkung... 9 Vorwort Programme und Programmiersprachen

III.1 Prinzipien der funktionalen Programmierung - 1 -

Inhalt. Einführung in die Strukturierte Programmierung 15

Algorithmen und Datenstrukturen (für ET/IT)

Informatik im Studiengang Allgemeiner Maschinenbau Sommersemester 2014

Rechnergenerationen. Geschichte Großrechner. Generation 1 Direkte Programmierung. Generation 2 Stapelverarbeitung. Generation 3 Dialogverarbeitung

H. Pudlatz. Einführung in die Programmiersprache Modula-2

genauer: Augusta Ada Byron King, Countess of Lovelace geboren in London als Augusta Ada Byron

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Programmieren. Kapitel 2: Der Traum vom automatischen Rechnen ein Streifzug durch die Computergeschichte. Wintersemester 2008/2009

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Einführung Betriebssysteme

Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.

Übung zur Vorlesung Strukturiertes Programmieren WS 2014/15. Übungsblatt 1: JAVA - Erste Schritte Abgabe: Besprechung:

Informatik 1 (WS 2018/2019)

Einführung in die Informatik Inf, SAT

Vorlesung Programmieren

Ingenieurinformatik. Einführung in die Programmiersprache C

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Was ist Informatik? Alexander Lange

2. Programmierung in C

Einführung in die Programmierung

Informatik Teil 1. für Fernstudiengang der Fakultät Elektrotechnik. Sommersemester 2017

Einführung in die Programmierung

Datenstrukturen und Algorithmen

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Einführung in die Programmierung Wintersemester 2016/17

Transkript:

Überblick GRUNDKURS INFORMATIK ODER WIE DENKEN INFORMATIKER? I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN 1. Organisatorisches 2. Themen und Ziele der Vorlesung 3. Übungen 4. Wb Web 5. Literatur 6. Informatik, Geschichte 7. Programmieren, Programmiersprachen 8. Processing Marcel Götze Organisatorisches Marcel Götze Dekanat FGSE Email: marcel.goetze@ovgu.de Büro: Gebäude 51/Raum 201 Tel.: (0391) 67-16491 Fax: (0391) 67-16541 Tutorien/Übung Mittwoch 9.00-11.00Uhr Raum 202, Gebäude 51 Übungen im Netz, ca. eine Woche vorher http://www.unimagdeburg.de/fgse/dekanat/lehre/wiki/doku.php/lehre/wis e2009/grundkurs_informatik/home Ziele der Vorlesung Die Sprache der Informatik zu sprechen. Zu lernen wie ein Informatiker zu denken. if(a<b) ist objektbasiert { und erlaubt die Umsetzung print( fertig ); rekursiver Algorithmen ohne } die Verwendung else typisierter Variablen. Themen der Vorlesung - Grundlagen Informationsdarstellung: Zahlensysteme Programme/Programmieren Algorithmen Variablen, Ausdrücke, Anweisungen Funktionen Verzweigungen Datentypen Datenstrukturen 1

Literatur Wiki H.-P. Gumm, M. Sommer: Einführung in die Informatik, Oldenbourg, 2004 R. Sedgewick: Algorithmen in Java, Pearson 2003 G. Saake, K. U. Sattler: Algorithmen und Datenstrukturen, dpunkt-verlag, 2004 Folien im Web: http://www.unimagdeburg.de/fgse/dekanat/lehre/wiki/doku.php/le hre/wise2009/grundkurs_informatik/home Wiki ist zum Mitmachen gedacht Kommunikationsplattform über die Lehre Austausch über Themen, Literatur Diskussion Terminankündigungen, -absprachen, etc. Rückmeldungen über die Lehre, Themen, Probleme, Zusammenarbeit an einem Problem Erarbeiten und Klären von Fragen Wikis machen Spass! Informatik Kunstwort aus den 60ern Informatik = Information + Technik oder Informatik = Information + Mathematik beabsichtigt: Gegensatz zur amerikanischen Computer Science: nicht nur auf Computer beschränkt Theoretische / Praktische / Angewandte / Technische Informatik; Bindestrich-Informatiken Informatik hat zentral zu tun mit systematischer Verarbeitung von Informationen Maschinen, die diese Verarbeitung automatisch leisten (=Computer) Informatik Algorithmische Verarbeitung von Information Methoden Werkzeuge Anwendungen Computertechnik Entwurf von Algorithmen Theorie der Algorithmen Anwendungen Informatik Technische Informatik: Erforschung, Entwurf und Untersuchung von Computersystemen Praktische Informatik: Effiziente Algorithmen, komplexe Probleme Theoretische Informatik: theoretische Grundlagen der algorithmischen Informationsverarbeitung. Angewandte Informatik: Anwendungen von Wirtschaft bis Mathematik 12 Geschichte I Rechenmaschinen Adam Riese, 1492-1559 1550, Buch über Rechenarten mit dezimalen Zahlen John Napier, 1550-1617 1614, Logarithmen (Multiplikation durch Addition) 1617, Rechenstäbe zur Multiplikation Wilhelm Schickard, 1592-1635 1623, Maschine für alle vier Grundrechenarten Blaise Pascal, 1632-1662 1642, Additionsmaschine für sechsstellige Zahlen Gottfried Wilhelm Leibnitz, 1646-1716 1674, Maschine für alle vier Grundrechenarten, Dualsystem 2

13 Geschichte II Algorithmen Rechenvorschriften existieren seit über 2000 Jahren (z.b. ggt, ca. 300 v.chr.) Programmsteuerung Automatenbauer (seit 14. Jh.) Ada Lovelace 1815-1852, Charles Babbage, 1792-1871 Softwaretheorie, Lochkarten als Programmspeicher, Zahnradtechnik Herman Hollerith, 1860-1929 Lochkarten als Datenspeicher, elektromechanische Auswertung (Volkszählung, 1890) 14 Geschichte III http://de.wikipedia.org/wiki/zuse_z3 Z3, Konrad Zuse 1941, erster betriebsfähiger, programmgesteuerter, mit 2500 Relais (Schaltungen) ausgestatteter Rechner Erster Rechner mit Binärsystem 1943 bei Bombenangriff zerstört 15 Geschichte IV 16 Geschichte V Colossus, Alan Turing 1943, Rechenmaschine zur Dechiffrierung verschlüsselter deutscher Funksprüche ENIAC, Eckert & Mauchly 1946, erster amerikanischer elektronischer Rechner (18000 Röhren) http://www.computer50.org/mark1/contemporary.html#colossusintro http://www-groups.dcs.st-and.ac.uk/~history/ Mathematicians/Eckert_John.html 17 Geschichte VI Anwendung (ca. 1940-1946): Rechenmaschine für numerische Operationen Militärische Problemstellungen (Flugbahnberechnungen, Entschlüsselung, ) Jh John von Neumann (1903-1957) 1957) http://ei.cs.vt.edu/~history/vonneumann.html Architektur für programmierbaren Rechner Entwicklung des ersten Rechners mit gespeichertem Programm (EDSAC) (programmiert in Binär!) 18 Geschichte VII Groß rechner 1953, IBM 701, erste EDV von IBM (Nachfolger hat 1958 den ersten FORTRAN Compiler) 1960, DEC PDP-1, erster Computer mit Bildschirm 1964, IBM 360, erster Computer mit integrierten Schaltkreisen 1970/71, VM 370, erster IBM Computer mit interaktivem time-sharing und Betriebssystem für virtuellem Speicher 3

19 Geschichte VIII 20 Geschichte IX http://www.gonthier.ch/informatique/ historiqueweb.html Intel 4004 Ted Hoff et al. 1971, erster Mikroprozessor 4-bit-Prozessor, 60 khz (Pioneer I + II Sonden) Apple II 1977, erster erfolgreicher PC (neben Commodore), 16-bit- Prozessor, 16 kb PM-Magazin, 12/1985 (von: http://if-portal.fh-landshut.de/fbifneu/beginner/gfx/pm12_85.gif) http://apple2history.org/history/ah03.html 21 Geschichte X Erste Programmiersprachen Assembler, um 1952 FORTRAN (FORmula TRANslator), 1953/4 COBOL (Common Business Oriented Language, 1960 Wichtige Entwicklungen PASCAL, strukturierte Programmierung SIMULA67, erste objektorientierte Programmiersprache C, erste höhere Programmiersprache zur Programmierung von Betriebssystemen C++, objektorientierte Sprache, abwärtskompatibel zu C JAVA, plattformunabhängige, objektorientierte Programmiersprache Programmieren Programmieren bedeutet Problemlösen Probleme formulieren Probleme in Teilprobleme unterteilen Lösungen suchen In einer Programmiersprache umsetzen Programmiersprache Java Processing als Programmierumgebung http://processing.org http:// http://www.bernd-leitenberger.de/programmiersprachen-geschichte.shtml Programm Folge von Anweisungen Grundlegende Funktionen in jeder Programmiersprache: Ein und Ausgabe Berechnungen Bedingte Ausführung Wiederholung Programmiersprachen Allgemein vertraut: natürliche Sprachen nicht von Menschen geschaffen Formale Sprachen: von Menschen entworfen Beispiele: Mathematik, Chemie, Programmiersprachen Gemeinsamkeiten: Regeln, Syntax, Semantik Unterschiede: Mehrdeutigkeit, Redundanz, Bedeutung 4

Programmiersprachen Was man braucht: Maschinen: 001110101110 Was man schreiben möchte: print Hallo Welt ; höhere Programmiersprache Erlaubt das Verfassen eines Programms in einer abstrakten Sprache, Quell oder Source Anweisungen für den Rechner Für Menschen (Informatiker ) verständlich für Rechner nicht Programm muss in rechnerverständliche Form übersetzt werden Maschinen Erzeugung von Maschinen Compiler: übersetzt Quell in Maschinen Source Compiler Maschinen Ausführung Ausgabe Interpreter: liest Programm und führt Anweisungen aus Source Interpreter Ausgabe Erzeugung von Maschinen Byte-Interpreter: liest Byte und führt Anweisungen aus Byte: einfacher Zwischen Kompakt, maschinenunabhängig Vorteile: Ausführbar auf unterschiedlichen Plattformen Weitergabe ohne Offenlegung des Sources Java Höhere Programmiersprache objektorientiert Interpretersprache, Quell wird in Byte überführt und in spezieller Umgebung ausgeführt Interpreter Java VM (Virtual Machine) Source Compiler Byte Interpreter Ausgabe Compilieren und Interpretieren Compiler: Compilieren und Interpretieren UNIX Workstation Windows PC Palm Handheld Mobiltelefon Quelltext *.java Compiler Byte *.class Byte *.class Java VM 5

Processing OpenSource Programmiersprache zur Programmierung von Bildern, Animation und Sound Einfacher Aufbau Basiert auf Java Speziell für Künstler, Designer Programmiert und entwickelt von Ben Fry und Casey Reas Aktuelle Version: 1.0.6 Processing - Beispiel Code, der ein Quadrat zeichnet: size(400, 400); rect(50, 50, 300, 300); Processing - Beispiel Programmierung Ein etwas ausführlicheres Beispiel: /* Program Title: "Hello Earth" Program Description: Blue circle on black background By Ira Greenberg, August 5, 2005 Comments: Our first Processing program- yippee! */ size(200, 200); background(0); // keep stroke from showing up around circle nostroke(); fill(27, 58, 217); ellipse(100, 100, 100, 100); print("hello Earth!"); Zusammenfassung 6