39
Agenda für heute, 21. Juni 2006 Interaktion mit Informatikmitteln Interaktion mit Informatikmitteln Grundlagen der Programmierung Hilfsmittel für die Programmierung • Webprogrammierung

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

Embed Size (px)

Citation preview

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

Agenda für heute, 21. Juni 2006

• Interaktion mit InformatikmittelnInteraktion mit Informatikmitteln• Grundlagen der Programmierung• Hilfsmittel für die Programmierung • Webprogrammierung

Page 2: Agenda für heute, 21. Juni 2006 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/35

Page 3: Agenda für heute, 21. Juni 2006 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/35

• Interaktive Eingabe von Instruktionen und Daten

• Ausgabe von Daten in Echtzeit

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

Page 4: Agenda für heute, 21. Juni 2006 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/35

• Kurze Reaktionszeiten

• Hohe Zuverlässigkeit

• Messen, Regeln, Ablauf-steuerungen

Page 5: Agenda für heute, 21. Juni 2006 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/35

• 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

Page 6: Agenda für heute, 21. Juni 2006 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, 21. Juni 2006 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/35

Page 8: Agenda für heute, 21. Juni 2006 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

Anwendungen: Befehle der Anwendung + ev. Anweisungen einer Programmiersprache

Betriebssystem: Anweisungen einer Kommandosprache

Webseite: Anweisungen einer Skriptsprache

Aber was führt der Prozessor schlussendlich aus?

7/35

Page 9: Agenda für heute, 21. Juni 2006 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 01020015 000020 06010216 000022 010001

Anwendungsspezifisch

Programmiersprache

Assemblierer

Maschinensprache

011101000100101ProzessorBefehlssatz

INC R2 ;MOV R2,R0 ; CALCULATEADD R1,R2 ; F(3)

while not finished dobegin

if temp >= 32 then

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

8/35

Page 10: Agenda für heute, 21. Juni 2006 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

Maschinen-codeCompiler

Quellcode

InterpreterQuellcode Maschinen-

code

Prozessor

Compiler

Prozessor

(Wird das Programm verändert, muss es neu kompiliert werden)

9/35

Page 11: Agenda für heute, 21. Juni 2006 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

10/35

Page 12: Agenda für heute, 21. Juni 2006 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/35

Page 13: Agenda für heute, 21. Juni 2006 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 Oberon19971996 JAVA1995 FORTRAN 95 DELPHI

19941992 Object-Pascal VBA1991 1989 1988 Oberon1986 Eiffel1985 Turbo-Pascal C++

1980 FORTRAN 77 PASCAL MODULA-2 SMALLTALK 80 C BASIC12/35

Page 14: Agenda für heute, 21. Juni 2006 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

Spezialfall Objektorientierung

13/35

Click auf Fakultät löst Nachricht aus: "wende Methode M1 an"

Bildschirm Programmcode

Page 15: Agenda für heute, 21. Juni 2006 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 16: Agenda für heute, 21. Juni 2006 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)

14/35

Page 17: Agenda für heute, 21. Juni 2006 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 inGrad Celsius umgerechnet werden

read(F)subtrahiere 32multipliziere mit 5/9write(C)

15/35

Page 18: Agenda für heute, 21. Juni 2006 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

16/35

Eingabe/Ausgabe

Page 19: Agenda für heute, 21. Juni 2006 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:

17/35

Page 20: Agenda für heute, 21. Juni 2006 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)

Temperaturen nur umrechnen, falls sie über dem Gefrierpunkt sind, sonst Warnung

F 32

Warnung

wahrfalsch

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

18/35

Page 21: Agenda für heute, 21. Juni 2006 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ür jedes ganze Grad Fahrenheit zwischen 0 und 100 die entsprechende Temperatur in Celcius angeben

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

19/35

Page 22: Agenda für heute, 21. Juni 2006 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

20/35

Page 23: Agenda für heute, 21. Juni 2006 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

21/35

Page 24: Agenda für heute, 21. Juni 2006 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

In Struktogrammen sind unbedingte Sprünge (goto) nicht möglich

22/35

Page 25: Agenda für heute, 21. Juni 2006 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

Umrechnungstabelle, für Grad Fahrenheit zwischen 0 und 100

Lösung einer quadratischen Gleichung

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

23/35

Page 26: Agenda für heute, 21. Juni 2006 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 27: Agenda für heute, 21. Juni 2006 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

24/35

Internet

Page 28: Agenda für heute, 21. Juni 2006 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

• ServerseitigServer beantwortet Anfragen qualifiziert

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

Jede Anfrage erhält eine individuelle Antwort

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

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

25/35

Page 29: Agenda für heute, 21. Juni 2006 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

26/35

Page 30: Agenda für heute, 21. Juni 2006 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

27/35

Page 31: Agenda für heute, 21. Juni 2006 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)

28/35

Page 32: Agenda für heute, 21. Juni 2006 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

29/35

Page 33: Agenda für heute, 21. Juni 2006 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)

30/35

Page 34: Agenda für heute, 21. Juni 2006 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

31/35

Page 35: Agenda für heute, 21. Juni 2006 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)

32/35

Page 36: Agenda für heute, 21. Juni 2006 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!!33/35

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

Programmieren kann in allen Bereichen des Informatik-

Arbeitsplatzes eingesetzt werden!

Datenverwaltung

InformationserzeugungungDatenverarbeitung

Kommunikation

34/35

Page 38: Agenda für heute, 21. Juni 2006 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)

35/35

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

Danke für Ihre Aufmerksamkeit