close

Anmelden

Neues Passwort anfordern?

Anmeldung mit OpenID

GRUNDKURS INFORMATIK WIE DENKEN INFORMATIKER?

EinbettenHerunterladen
GRUNDKURS INFORMATIK
ODER
WIE DENKEN INFORMATIKER?
I EINFÜHRUNG, GESCHICHTE, PROGRAMMIEREN
Marcel Götze
Überblick
1.
2.
3.
4.
5.
6.
7
7.
8.
Organisatorisches
Themen und Ziele der Vorlesung
g
Übungen
Wb
Web
Literatur
Informatik, Geschichte
Programmieren Programmiersprachen
Programmieren,
Processing
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.unihttp://www
uni
magdeburg.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)
{
print(„fertig“);
}
else
…
… ist objektbasiert
und erlaubt die Umsetzung
rekursiver Algorithmen ohne
die Verwendung
typisierter Variablen.
Themen der Vorlesung - Grundlagen








Informationsdarstellung: Zahlensysteme
Programme/Programmieren
g
/ g
Algorithmen
V i bl A
Variablen,
Ausdrücke,
d ü k Anweisungen
A
i
Funktionen
Verzweigungen
Datentypen
Datenstrukturen
Literatur




H.-P. Gumm,
G
M Sommer:
M.
S
Einführung
f
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.uni-
magdeburg.de/fgse/dekanat/lehre/wiki/doku.php/le
h / i 2009/
hre/wise2009/grundkurs_informatik/home
dk
i f
ik/h
Wiki

Wiki ist zum Mitmachen gedacht
 Kommunikationsplattform
über die Lehre
 Austausch über Themen, Literatur
 Diskussion
 Terminankündigungen, -absprachen, etc.
 Rückmeldungen über die Lehre,
Lehre Themen,
Themen Probleme
Probleme,
 Zusammenarbeit an einem Problem
 Erarbeiten
E b it und
d Klä
Klären von FFragen

Wikis machen Spass!
Informatik

K t
Kunstwort
t aus den
d 60ern
60
Informatik = Information + Technik oder
 Informatik = Information + Mathematik




beabsichtigt: Gegensatz zur amerikanischen Computer
p
beschränkt
Science: nicht nur auf Computer
Theoretische / Praktische / Angewandte / Technische
Informatik; Bindestrich-Informatiken
Informatik hat zentral zu tun mit
systematischer Verarbeitung von Informationen
 Maschinen,
M hi
die
di diese
di
Verarbeitung
V
b it
automatisch
t
ti h lleisten
it
(=Computer)

Informatik

Al
Algorithmische
h
h Verarbeitung
b
von Information
f
Methoden
 Werkzeuge
W k
 Anwendungen





Computertechnik
Entwurf von Algorithmen
Theorie der Algorithmen
Anwendungen
Informatik

T h i h Informatik:
Technische
I f
tik


Praktische Informatik:


Effiziente Algorithmen, komplexe Probleme
Theoretische Informatik:


Erforschung, Entwurf und Untersuchung von Computersystemen
theoretische Grundlagen
g der algorithmischen
g
Informationsverarbeitung.
g
Angewandte Informatik:

Anwendungen von Wirtschaft bis Mathematik
G hi h I
Geschichte
12

Rechenmaschinen

Adam Riese,, 1492-1559


John Napier, 1550-1617



1623, Maschine für alle vier Grundrechenarten
Blaise Pascal, 1632-1662


1614, Logarithmen (Multiplikation durch
Addition)
1617, Rechenstäbe zur Multiplikation
Wilhelm Schickard,
Schickard 1592-1635
1592 1635


1550, Buch über Rechenarten mit dezimalen
Zahlen
1642 Additionsmaschine für sechsstellige Zahlen
1642,
Gottfried Wilhelm Leibnitz, 1646-1716

1674, Maschine für alle vier Grundrechenarten, Dualsystem
G hi h II
Geschichte
13

Al
Algorithmen
h


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
H
Herman
H ll ith 1860-1929
Hollerith,
1860 1929

Lochkarten als Datenspeicher,
elektromechanische Auswertung
(V lk ähl
(Volkszählung,
1890)
G hi h III
Geschichte
14

Z3, Konrad Zuse



http://de.wikipedia.org/wiki/Zuse_Z3
1941, erster betriebsfähiger,
programmgesteuerter,
p
g
g
mit 2500
Relais (Schaltungen) ausgestatteter
Rechner
Erster Rechner mit Binärsystem
y
1943 bei Bombenangriff zerstört
G hi h IV
Geschichte
15

Colossus, Alan Turing

1943, Rechenmaschine
1943
zur Dechiffrierung
verschlüsselter
deutscher Funksprüche
http //www computer50 org/mark1/contemporary html#colossusintro
http://www.computer50.org/mark1/contemporary.html#colossusintro
G hi h V
Geschichte
16

ENIAC, Eckert & Mauchly

http://www-groups.dcs.st-and.ac.uk/~history/
Mathematicians/Eckert_John.html
1946, erster amerikanischer
elektronischer Rechner (18000
(
Röhren)
G hi h VI
Geschichte
17

Anwendung (ca. 1940-1946):
Rechenmaschine für numerische Operationen
 Militärische Problemstellungen
(Flugbahnberechnungen, Entschlüsselung, …)


J h von N
John
Neumann (1903-1957)
(1903 1957)
http://ei.cs.vt.edu/~history/VonNeumann.html
 Architektur für programmierbaren Rechner
 Entwicklung des ersten Rechners mit gespeichertem
Programm
g
((EDSAC)
S C) (p
(programmiert
g
in Binärcode!))

G hi h VII
Geschichte
18

„Groß“rechner
G ß“ h

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
G hi h VIII
Geschichte
19

Intel 4004


http://www.gonthier.ch/informatique/
historiqueweb.html

Apple II

http://apple2history.org/history/ah03.html
Ted Hoff et al. 1971, erster
Mikroprozessor
4-bit-Prozessor, 60 kHz
(Pioneer I + II Sonden)
1977, erster erfolgreicher PC
(neben Commodore), 16-bitProzessor,, 16 kB
G
Geschichte
hi h IX
20
PM-Magazin, 12/1985
http://if-portal.fh-landshut.de/fbifneu/beginner/gfx/pm12
85.gif)
(von: http://if
portal.fh landshut.de/fbifneu/beginner/gfx/pm12_85.gif)
Geschichte X
21

E t Programmiersprachen
Erste
P
i
h




Assembler, um 1952
FORTRAN (FORmula TRANslator), 1953/4
COBOL (Common Business Oriented Language, 1960
Wichtige Entwicklungen
PASCAL, strukturierte Programmierung
PASCAL
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




http:// http://www.bernd-leitenberger.de/programmiersprachen-geschichte.shtml
Programmieren

Programmieren bedeutet Problemlösen
 Probleme
formulieren
 Probleme
 Lösungen
 In


in Teilprobleme unterteilen
suchen
einer Programmiersprache umsetzen
Programmiersprache Java
Processing als Programmierumgebung
 http://processing.org
htt //
i
Programm


Folge von Anweisungen
Grundlegende
g
Funktionen in jeder
j
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
U
Unterschiede:
hi d Mehrdeutigkeit,
M h d i k i RRedundanz,
d d
Bedeutung
Programmiersprachen
Was man braucht: M
W
Maschinencode: 00
001110101110
0 0
0
 Was man schreiben möchte: print „Hallo Welt“;
→ höhere Programmiersprache

 Erlaubt
das Verfassen eines Programms in einer
abstrakten Sprache, Quellcode oder Sourcecode
→ Anweisungen für den Rechner
Menschen (Informatiker ) verständlich für Rechner
nicht
 → Programm
P
muss in
i rechnerverständliche
h
ä dli h FForm
übersetzt werden → Maschinencode
 Für
Erzeugung von Maschinencode

Compiler: übersetzt Quellcode in Maschinencode
Source
code

Compiler
Maschinen Ausführung
code
Ausgabe
Interpreter: liest Programm und führt Anweisungen
aus
Source
code
Interpreter
Ausgabe
Erzeugung von Maschinencode

Bytecode-Interpreter: liest Bytecode und führt
Anweisungen aus
 Bytecode:
einfacher Zwischencode
 Kompakt,

maschinenunabhängig
Vorteile:
 Ausführbar
auf unterschiedlichen Plattformen
 Weitergabe ohne Offenlegung des Sourcecodes
Source
code
Compiler
Bytecode
Interpreter
Ausgabe
Java




Höhere Programmiersprache
objektorientiert
j
Interpretersprache, Quellcode wird in Bytecode
überführt und in spezieller Umgebung ausgeführt
Interpreter → Java VM (Virtual Machine)
Compilieren und Interpretieren

Compiler:
Quelltext
*.java
Compiler
Bytecode
*.class
Compilieren und Interpretieren
UNIX Workstation
Windows PC
Palm Handheld
Mobiltelefon
Bytecode
* l
*.class
Java VM
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

Ein etwas ausführlicheres Beispiel:
/*
Program Title: "Hello Earth"
Program Description: Blue circle on black
background
B I
By
Ira G
Greenberg,
b
A
August
t 5
5, 2005
Comments: Our first Processing program- yippee!
*/
size(200 200);
size(200,
background(0);
// keep stroke from showing up around circle
noStroke();
fill(27, 58, 217);
ellipse(100, 100, 100, 100);
print("Hello
print(
Hello Earth!
Earth!");
);
Programmierung
Zusammenfassung
Document
Kategorie
Technik
Seitenansichten
3
Dateigröße
2 006 KB
Tags
1/--Seiten
melden