Programmiertechnik Einführung

Werbung
Prof. Dr. Oliver Haase
Karl Martin Kern
Achim Bitzer
Programmiertechnik
Einführung
Diese Vorlesung wird Ihnen präsentiert von ...
… Achim Bitzer:
●
●
●
Studium „audiovisuelle Medien“ an der Hochschule der
Medien Stuttgart
Abschluss 2005 als Dipl.-Ing. (FH)
Seither: Software-Entwickler (Java)
bei der SEITENBAU GmbH
[email protected]
www.seitenbau.com
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
2/26
SEITENBAU im Überblick
SEITENBAU wurde 1996 gegründet und ist in
drei Geschäftsbereiche gegliedert:
Content Management
&
Frontend Engineering
• Einrichtung u.
kundenspezifische
Anpassung
• Grafische Gestaltung u.
barrierefreie Umsetzung
intuitiver
Benutzeroberflächen
Softwareentwicklung
• Entwicklung
kundenspezifischer
Individualsoftware
• Konzeption und Aufbau
effizienter IT-Architekturen
• Entwicklung hochwertiger
Software-Anwendungen
Intranet & Portale
• Intranets u.
Mitarbeiterportale
• Enterprise Portale u.
Wissensmanagement
Lösungen
Kunden (öffentlicher & privater Sektor)
Mitarbeiterentwicklung
Kooperation mit der HTWG
●
Intensive, wachsende Kooperation
zwischen HTWG und SEITENBAU
–
Betreuung von Praktika und Abschlußarbeiten
–
Gemeinsame Forschungsprojekte
–
Übernahme von Lehraufträgen
Zurück zur Vorlesung: Organisatorisches
Vorlesungstermine:
●
Donnerstags 17:30 – 19:00 Uhr, Raum G-240
●
Freitags 14:00 – 15:30 Uhr, Raum G-240
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
8/26
Zurück zur Vorlesung: Organisatorisches
Unterlagen und Infos im Netz:
http://www.achimbitzer.de/htwg
●
Folien
●
Informationen zur Vorlesung
●
Neuigkeiten und Ankündigungen
●
auch als Feed (folgt demnächst, unbedingt abonnieren!)
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
9/26
Organisatorisches
Laborübungen:
●
●
●
●
Ansprechpartner:
Ruediger Schneider <[email protected]>
Aufgeteilt auf 2 Gruppen
–
Donnerstags 11:30 – 13:00, Raum F-113
–
Donnerstags 14:00 – 15:30, Raum F-112
Zweiergruppen empfehlenswert (macht Spaß und bringt viel)
Übungsaufgaben und weitere Informationen befinden sich auf
http://www.achimbitzer.de/htwg
–
Wenn Sie zu Hause programmieren, benötigen Sie Java
SDK1.5 oder neuer: http://java.oracle.com
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
10/26
Organisatorisches
Prüfungen:
●
●
Übungsschein
–
Bestehen von zwei Testaten
(30-minütige schriftliche Tests)
–
Erstes Testat nach ca 5 Wochen, zweites nach ca. 10
Wochen, genaue Termine werden noch bekanntgegeben
–
Pro Testat sind 50% der Punkte zum Bestehen
erforderlich
Klausur
–
90-minütige schriftliche Prüfung
–
Keine Hilfsmittel zugelassen
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
11/26
Organisatorisches
Credit Points (ECTS) & Aufwand:
●
Vorlesung und Übungen ergeben zusammen 7 ECTS
●
wöchentlicher Arbeitsaufwand: ca. 11 Stunden
●
Vorlesung + Übungen: 4,5 Stunden pro Woche
●
Selbstlernanteil: 6,5 Stunden pro Woche, aufgeteilt auf
–
Vorlesungsvorbereitung (!!!)
–
Vorlesungsnachbereitung
–
eigenes Üben (zusätzlich zu Laborübungsstunden)
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
12/26
Empfohlene Literatur
●
●
●
●
●
Ratz, Scheffler, Seese. Grundkurs Programmieren in Java. Hanser
Verlag 2010, ISBN 3446416552. €34,90.
Skript Java – Grundlagen und Einführung des RRZN Hannover.
Erhältlich für € 6.– (Mensakarte) bei Fr. Schulze, Raum G146.
Ullenboom. Java ist auch eine Insel. Galileo Computing 2011, ISBN
978-3-8362-1802-3. €49,90
oder als html-Version online unter
http://openbook.galileocomputing.de/javainsel/
ansonsten: Jede Menge Material über Java im Web verfügbar…
Allgemeiner Tip: Schneider (Hrsg.). Taschenbuch der Informatik.
Hanser Verlag, 7. Auflage 2012, ISBN 3446426388. €29,90
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
13/26
Was ist Programmiertechnik?
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
14/26
Was ist Programmiertechnik?
Programmieren: Die Tätigkeit, Computerprogramme zu erstellen.
Computerprogramm: Folge von Befehlen, die auf einem Computer
zur Ausführung gebracht werden können, um eine bestimmte
Funktionalität zu erzeugen.
Technik: Die Anwendung von Methoden und Prinzipien, mit dem Ziel
eine bestimmte Wirkung zu erzielen.
Programmiertechnik: Methoden und Prinzipien zur Erstellung von
Computerprogrammen.
Programmierung beinhaltet auch ein großes Maß an Kreativität!
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
15/26
Programmiersprachen
●
●
Programme werden in einer
Programmiersprache geschrieben
Programmiersprache wird in
Maschinencode übersetzt, also in
Zahlenfolgen, die der Prozessor ausführen
kann.
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
16/26
Programmiersprachen
●
Die primitivsten Programmiersprachen sind
die Assembler-Sprachen
–
lediglich lesbare Namen für Maschinenbefehle, z.B.
●
●
●
mov B, A
(schiebt Wert von Adresse A nach Adresse B)
xchg Op1, Op2
(vertauscht die Werte von Operand OP1 und Op2)
jmp Marke
(springt zu dem mit Marke markierten Befehl)
–
rechnerabhängig
–
sehr effizient, d.h. kann sehr schnell ausgeführt werden
–
mühsam und fehleranfällig
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
17/26
Programmiersprachen
Heute fast nur noch höhere Programmiersprachen
●
rechnerunabhängig
●
komfortabler zu programmieren durch abstraktere Konzepte wie
●
●
●
–
Prozeduren, Subroutinen, Methoden
–
Module
–
Klassen, Schnittstellen und Vererbung
–
etc.
weniger effizient als Assembler
wesentlich einfacher (billiger) zu warten
(Programme verändern, anpassen, erweitern)
es existiert eine Vielzahl höherer Programmiersprachen, z.B.:
–
Ada, Algol, C, C++, C#, Cobol, Eiffel, Fortran, Java, Lisp, Modula-2, Oberon, ObjectiveC,
Pascal, Prolog, Scheme, Smalltalk.
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
18/26
Einschub: Warum Java?
●
●
Eine Programmiersprache ist nicht unbedingt besser oder
schlechter als andere, sondern hat bestimmte Eigenschaften,
die für bestimmte Anwendungsgebiete wichtig sind.
Bei Java sind die für uns wichtigen Eigenschaften:
–
einfache, klare, objektorientierte Konzepte
–
Die Programmiersprache des Internets
(Web-Services, E-Commerce, E-Banking, Applets, Servlets, …)
–
große Auswahl an Programmbibliotheken für graphische Benutzeroberflächen,
Computerkommunikation, verteilte Anwendungen, Datenbankapplikationen,
Medien (Audio und Video), …
–
hohe praktische Relevanz
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
19/26
Programmausführung
Ein Programm in einer höheren Programmiersprache kann
●
übersetzt (kompiliert)
●
oder interpretiert
werden
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
20/26
Programmausführung
●
Kompilierung:
–
Compiler übersetzt Quellprogramm in Maschinencode
–
Maschinencode wird gespeichert
–
Maschinencode kann vom Rechner direkt ausgeführt
werden
–
effizient
–
Compiler und Maschinencode sind maschinenabhängig
→ portierter Code muss neu übersetzt werden
–
typische Vorgehensweise für C/C++
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
21/26
Programmausführung
●
Interpretierung:
–
Quellcode wird von einem Interpreter Zeile für Zeile
übersetzt und direkt ausgeführt
–
Maschinencode wird nicht gespeichert
–
Programmteile, die mehrfach durchlaufen werden,
werden auch mehrfach übersetzt.
–
ineffizient
–
Programm kann direkt auf jede Zielmaschine
portiert werden, die einen Interpreter für die
Sprache besitzt
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
22/26
Programmausführung
●
Mischform – Zwischenformat:
–
Compiler übersetzt Quellcode in ein maschinennahes Zwischenformat
(Bytecode)
–
Bytecode wird auf der Zielmaschine interpretiert
–
Bytecode maschinenunabhängig → portabel
–
Interpretieren durch maschinennahe Struktur des Bytecode
sehr effizient
–
typische Repräsentanten: Java, C#
–
Bytecode-Interpreter = Java Virtual Machine (JVM)
Die Kombination der Verfahren führt zu portablem Code, der trotzdem schnell
ausgeführt werden kann.
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
23/26
Erstellen von Java-Programmen
●
●
●
●
Das einfachste Java-Programm besteht aus einer
einzelnen Klasse, z.B. MyClass.
Diese Klasse muss in einer Datei des Namens
<Klassenname>.java definiert sein.
hier: MyClass.java
Der Java-Compiler (javac) übersetzt diese Klasse in
Bytecode und speichert das Ergebnis in der Datei
MyClass.class.
Die virtuelle Maschine (Java Virtual Machine = JVM)
interpretiert diesen Bytecode.
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
24/26
Java-Programmgerüst
Die Datei MyClass.java, die die Klasse MyClass definiert, hat die
folgende Struktur:
public
publicclass
classMyClass
MyClass{{
public
publicstatic
staticvoid
voidmain(String[]
main(String[]args)
args){{
////hier
hierkommt
kommtspaeter
spaetermal
malIhr
Ihreigener
eigener
////Programmtext
Programmtexthin.
hin.
}}
}}
●
●
Im Moment genügt es, diese Struktur zu kennen. Sie müssen sie
noch nicht verstehen!
Die Zeichen '//' leiten eine Kommentarzeile ein, d.h. der
Java-Compiler ignoriert die entsprechende Zeile.
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
25/26
Have a nice cup of
Java coffee!
Prof. Dr. Oliver Haase, HTWG Konstanz
Karl Martin Kern, Seitenbau GmbH
Achim Bitzer, Seitenbau GmbH
26/26
Herunterladen