41
Agenda für heute, 6. Juni 2007 Interaktion mit Informatikmitteln Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung • Webprogrammierung

Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Embed Size (px)

Citation preview

Page 1: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Agenda für heute, 6. Juni 2007

• Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln• Grundlagen der Programmierung

• Hilfsmittel für die Programmierung

• Webprogrammierung

Page 2: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Dialogbetrieb Echtzeitbetrieb Stapelbetrieb

2/37

Programme

Page 3: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Dialogbetrieb

3/37

• Interaktive Eingabe von Instruktionen und Daten

• Ausgabe von Daten in Echtzeit

• Steuerung eines Programms während seiner Ausführung möglich

Programme

Page 4: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Echtzeitbetrieb

4/37

• Kurze Reaktionszeiten

• Hohe Zuverlässigkeit

• Messen, Regeln, Ablauf-steuerungen

Programme

Page 5: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Interaktion mit Informatikmitteln

Stapelbetrieb

5/37

• Vollständig spezifizierter Auftrag wird ausgeführt

• Keine Möglichkeit, auf den Programmablauf einzuwirken

• Rechenintensive Arbeiten, Routineaufgaben (z.B. autom. Backup)

• Batch-Dateien (.BAT), Makros

Programme

Page 6: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

• Interaktion mit Informatikmitteln

• Grundlagen der ProgrammierungGrundlagen der Programmierung• Hilfsmittel für die Programmierung

• Webprogrammierung

Page 7: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Was ist ein Programm?

Eine Folge von Instruktionen, mit denen ein Computer(programm)

den Inhalt von Speicherzellen verändert.

Datenstrukturen

Algorithmus

SequenzVerzweigungWiederholung

Variable . . .. . . Datei . . .

. . . Objekt

6/37

Page 8: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Instruktionen sind durch die Programmierumgebung vorgegeben

Aber was führt der Prozessor schlussendlich aus?

7/37

Anwendungs- Befehle der Anwendung + ev. Anweisungen programme: einer Programmiersprache

Betriebssystem: Anweisungen einer Kommandosprache

Webseite: Anweisungen einer Skriptsprache

Page 9: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Hierarchische Gliederung von Programmierumgebungen

14 000016 010200

15 000020 060102

16 000022 010001

Assemblierer

Maschinensprache

011101000100101

ProzessorBefehlssatz

INC R2 ;

MOV R2,R0 ; CALCULATE

ADD R1,R2 ; F(3)

while not finished dobegin

if temp >= 32 then

Sub Makro1 ()Range("B6").Select

8/37

Anwendungsspezifische

Programme

Höhere

Programmiersprache

Page 10: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Zwei Arten der Programmausführung (vereinfacht)

1) Programm wird kompiliert (übersetzt)

2) Programm wird interpretiert

Prozessor-Instruktionen

CompilerQuellcode

InterpreterQuellcode Prozessor-

Instruktionen

Prozessor

Compiler

Prozessor

Müssen nicht auf dem ausführenden Computer sein

9/37

Muss auf dem ausführenden Computer sein

Page 11: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Nobody's perfect: Fehlerquellen

• Falsche Programmlogik: diese Fehler müssen wir selber finden

• Nichtbeachten der Regeln der Programmiersprache: Hier kann uns ein "Debugger" helfen

• Falsche Daten: Verantwortung der Programmiererin,

Programmiersprache kann helfen (Datentypen)

10/37

Page 12: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Debugger (Entstörer)

11/34

• Sucht formale Fehler

• Prüft während der Ausführung

• Kann ein- oder ausgeschaltet werden

11/37

Page 13: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Programmiersprachen: Historische Entwicklung (Bsp.)

1999 DELPHI 2005 JINI

1998 Active Oberon

1997

1996 JAVA

1995 FORTRAN 95 DELPHI

1994

1992 Object-Pascal VBA

1991

1989

1988 Oberon

1986 Eiffel

1985 Turbo-Pascal C++

1980 FORTRAN 77 PASCAL MODULA-2 SMALLTALK 80 C BASIC

12/37

Page 14: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Die wichtigsten Programmierparadigmen

13/37

(Paradigma: Denkmuster)

Imperative Programmierung

Befehls- oder Anweisungsorientiert

Objektorientierte Programmierung

Objekte mit Eigenschaften und Operationen

Deklarative Programmierung

Fakten & logische Aussagen (Regeln)

Page 15: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Imperative Programmierung

14/37

Ein Befehl in der Eingabeaufforderung löst eine Folge von Anweisungen aus

Bildschirm Programmcode

Pascal-AnweisungsfolgeBefehlszeile

Page 16: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Objektorientierte Programmierung

15/37

Konkretes oder imaginäres Objekt

• hat Eigenschaften

• kann Aktionen auslösen

Page 17: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

• Interaktion mit Informatikmitteln

• Grundlagen der Programmierung

• Hilfsmittel für die ProgrammierungHilfsmittel für die Programmierung

• Webprogrammierung

Page 18: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Hilfsmittel für den Programmentwurf

Pseudocode Natürlichsprachliche, knappe Beschreibungunter Einbezug der Notation einer Programmier-

sprache

Flussdiagramme Gerichtete Liniendiagramme zur Illustrationvon Abläufen (Programmablaufplan)

Struktogramme Darstellung von Aktionen durch Blöcke, die aneinander gereiht oder ineinander

geschachtelt werden (Nassi-Shneiderman- Diagramm)

16/37

Page 19: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Pseudocode

Beispiel: Temperaturwerte sollen von Grad Fahrenheit in

Grad Celsius umgerechnet werden

read(F)

subtrahiere 32

multipliziere mit 5/9

write(C)

17/37

Page 20: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Flussdiagramme

Drei elementare Konstruktionselemente für Algorithmen:

Sequenz, Fallunterscheidung und Wiederholung

Diese Elemente lassen sich durch geeignetes Aneinanderreihen der folgenden zwei Symbole grafisch darstellen:

Operation Fallunterscheidung

18/37

Eingabe/Ausgabe

Page 21: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Flussdiagramme: Sequenz

read(F)

T = F - 32

C = T x 5 / 9

write(C)

Am Beispiel der Temperaturumrechnung:

19/37

Page 22: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Flussdiagramme: Fallunterscheidung

read(F)

T = F - 32

C = T x 5 / 9

write(C)

F 32

Warnung

wahrfalsch

Pseudocode:

read(F)if F >= 32then begin subtrahiere 32 multipliziere mit 5/9 write(C) endelse gebe warnung aus

20/37

Angenommen, wir rechnen die Temperaturen nur um, falls sie über dem Gefrierpunkt sind, andernfalls geben wir eine Warnung aus.

Page 23: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Flussdiagramme: Wiederholung

F = 0

Stopp

F < 101Berechne Cwrite(F,C)erhöhe F

wahrfalsch

Pseudocode:

F = 0solange F < 101begin subtrahiere 32 multipliziere mit 5/9 write(F,C) F = F + 1 end

21/37

Nun möchten wir eine Umrechnungstabelle erstellen, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.

Page 24: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Beispielaus dem Labor

Automatische Titration

22/37

Page 25: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Struktogramme: Sequenz, Fallunterscheidung

Sequenz

Anweisung 1

Anweisung 2

....

Anweisung n

Fallunterscheidung

Anweisung 1 Anweisung 2

ja neinBedingung b

23/37

Page 26: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Struktogramme: Wiederholung

Schleife 0 bis n mal

Solange Bedingung b

tue Anweisungen

Schleife genau n mal

Schleife 1 bis n mal

Wiederhole Anweisungen

bis Bedingung b

Für i = Anfangswert bis Endwert

tue Anweisungen

24/37

Page 27: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Struktogramme: Beispiele

Für F = 0 bis 100, Schrittw. 1

F = F -32

tue C = F • 5/9

Ausgabe C

Eingabe: p, q

a = p : 2

d = a2 - q

ja d < 0 nein

Ausgabe: "nicht lösbar"

h = √ d

X1 = a + h

X2 = a -h

X1, X2

25/37

Lösung einer quadratischen Gleichung. Mitteilung falls nicht lösbar (Diskriminante < 0).

Umrechnungstabelle, die für jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angibt.

Page 28: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

• Interaktion mit Informatikmitteln

• Grundlagen der Programmierung

• Hilfsmittel für die Programmierung

• WebprogrammierungWebprogrammierung

Page 29: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Statische Webauftritte

Kommunikationsschema für Webseiten

Client Server

1. Anforderung

3. Antwort

2. Bearbeitung

HTML-Seite an Clientzur Interpretation senden

Interaktion zwischen Web und Nutzer auf Mausklicks beschränkt

"Plakatcharakter" der Kommunikation

26/37

Internet

Page 30: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Dynamische Webauftritte

• Serverseitig

Server beantwortet Anfragen qualifiziert

Webdokumente werden durch Programme des Servers für den Client bedarfsgerecht aufbereitet

Jede Anfrage erhält eine individuelle Antwort

• Clientseitig

Client erhält HTML-Dokumente, die Programme enthalten, zur Steuerung des Erscheinungsbildes im Browser

Z.B. in Abhängigkeit von Mausaktionen oder von Zeitgebern (Animationen)

27/37

Page 31: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Clientseitige dynamische Webauftritte

Client Server

1. Anforderung

3. Antwort

Dynamische Effekte für komfortable Benutzerschnittstellen

(z.B. Erscheinen von neuen Fenstern mit Zusatz-informationen)

Bereichs- und Gültigkeitsüberprüfung von Zahlen und Texten in Formularen

Hervorheben von Dokumentteilen bei Erhalt des Mausfokus

2. Bearbeitung

HTML-Seite an Clientzur Interpretation senden

sorgfältig einsetzen!

4. Bearbeitung

28/37

Page 32: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Serverseitige dynamische Webauftritte

Client Server

1. Anforderung

3. Antwort

2. Bearbeitung

Programmaufruf (*.pl)

CGI (Common Gateway Interface)

Am meisten verbreitete Technik um Programme in Webservern aufzurufen

Für die Programmierung selbst werden sog. Script-sprachen verwendet

29/37

Page 33: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Was sind Scriptsprachen?

Scripting Das Zusammenfassen von Programmaufrufen zu einem "Drehbuch" (script), das nach belieben auf-gerufen werden kann

Scriptsprache Erweiterung des Scripting um Programmier-sprachliche Elemente

(Übergabe von Resultaten an Folgeprogramm, Überspringen von Programmen,

Wiederholungen)

30/37

Page 34: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Clientseitige Dynamik: Beispiel

• Grundlage des Webs sind HTML-Dokumente (HyperText Markup Language)

• HTML-Dokumente sind Textdateien, deren Inhalt durch einen Browser interpretiert wird und die mittels Hypertext-Techniken andere Dokumente einbinden können

• Markups sind Anweisungen in einem HTML-Dokument, die angeben, wie Texte und grafische Elemente zu präsentieren sind

31/37

Page 35: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Markups

Ein HTML-Dokument besteht aus einer Folge von Markups, die durch einen Browser der Reihe nach abgearbeitet werden

Beispiel<TABLE Border=1 Width=400 Heigth=300 BGcolor=silver>

<TR><TD Height=20% Colspan=2> &nbsp; </TD></TR><TR><TD Width=25%> &nbsp; </TD>

<TD> &nbsp; </TD></TR></TABLE>

Diese Markups codieren eine 400 x 300 Pixel grosseTabelle, die sichtbar gemacht wird (Border=1)

32/37

Page 36: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Markups

Markups sind z.B.:<TR> . . . </TR> (Table Row) oder<TD> . . . </TD> (Table Data)

Die Symbole: <TR>, <TD>, <TABLE>

werden als Tags oder Marken bezeichnet, wobei <TR> eine Startmarke und </TR> eine Endmarke ist

Tags werden mit Attributen ergänzt, welche die Details der Darstellung angeben:<TABLE Border=1 Width=400 Heigth=300 BGcolor=silver>

http://www.willcam.com/cmat/html/tags.html

33/37

Page 37: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Formulare: Interaktive Webseiten

Durch Drücken des "Bestellen!"-Knopfes (Submit-Knopf) wird das Formular zum Ziel gesandt (gegeben durch den URL der Webseite des Formulars)

34/37

Page 38: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Formulare

"Abschicken" eines Formulars• Das Method-Attribut bestimmt, in welcher Form dies geschieht

• Bei GET werden die Daten als "Query-String" an die Action-URL geheftet

• Die Daten schliessen sich dem Fragezeichen der URL an:

Ziel-URL/formular.html?Anzahl=6&Item=Birnen

Der Query-String wird vom Webserver an dort ablaufende Programme weitergegeben (z.B. über CGI), kann aber auch HTML-Dokumenten auf der Client-Seite verfügbar gemacht werden

DatenelementTrennzeichen

Hinweis: Kein Schutz gegen Missbrauch!!

35/37

Page 39: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Programmieren kann in allen Bereichen des Informatik-

Arbeitsplatzes eingesetzt werden!

Datenverwaltung

InformationserzeugungDatenverarbeitung

Kommunikation

36/37

Page 40: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Informatik für Biol. & Pharm. Wissenschaften © Institut für Computational Science, ETH Zürich

Programmiervorlesungen für die Naturwissenschaften (SS)

• 251-0840-00 Anwendungsnahes Programmieren (Java)

• 251-0842-00 Programmieren und Problemlösen (Delphi)

37/37

Page 41: Agenda für heute, 6. Juni 2007 Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung

Danke für Ihre Aufmerksamkeit