Adresse
Beuth Hochschule für Technik Berlin
University of Applied Sciences, Berlin
Fachbereich Informatik und Medien (FB VI)

Luxemburger Str. 10
D-13353 Berlin
Germany

Fon: +49 30 4504-2265
Fax: +49 30 4504-2914
Email an: Ulrich Grude

Prof. Dr. Ulrich Grude
(der dritte von links, gleich neben Astrid und Philipp) lehrt Programmierung und Compilerbau an der BHT Berlin.

Java ist eine Sprache

Ein Buch über die Grundbegriffe der Programmierung und eine Einführung
in die Sprache Java (Version 5.0), mit vielen Beispielen, Übungen, Aufgaben
mit Lösungen etc. Näheres dazu findet man hier. Die Online-Version enthält
die meisten, aber nicht alle Seiten der Papier-Version.

Meine Lehrveranstaltungen im WS09/10:
    MB2-PR2 (Programmieren 2, Medieninformatik Bachelor)
    TB3-IN3 (Informatik 3, Technische Informatik Bachelor)
    Siehe dazu auch Belegung von Übungen !

Weitere Lehrveranstaltungen, Unterlagen, Applets etc.:
Programmieren 1 mit Java
Programmieren 2 mit Java
Programmieren 1 mit C
Programmieren 2 mit C
Programmieren 3 mit C++
Programmieren mit Ada
Compilerbau (Wahlpflichtfach)
Abschlussarbeiten (Diplom, Bachelor, Master)
Verschiedenes  : VPL, Gleitpunktzahlenprintf, Petri-Netze, Lambda-Kalkül , Erlang etc.

Wikipedia Affiliate Button

Belegung von Übungen im WS09/10 in den Fächern MB2-PR2 und TB3-IN3

Beim jeweils ersten Übungstermin werden die vorhandenen Plätze in der betreffenden Übungsgruppe
an anwesende InteressentInnen vergeben. Wenn es mehr InteressentInnen als Plätze gibt, werden die
vorhandenen Plätze unter den anwesenden InteressentInnen verlost. Wer dabei keinen Platz bekommt
(z.B. weil er/sie nicht anwesend ist und deshalb nicht an der Verlosung teilnimmt), muss versuchen, in
einer anderen Übungsgruppe einen  Platz zu bekommen.

Abschlussarbeiten (Diplom-, Bachelor-, Masterarbeiten)

Haben Sie Lust, an einer kleinen Revolution (auf einem Anwendungsgebiet der Informatik)
mitzuarbeiten?  Möchten Sie eine anspruchsvolle Abschlussarbeit schreiben, die Teil einer
größeren, interessanten und wichtigen Anwendung ist? Vorausgesetzt werden gute Java-
Kenntnisse. Zusätzliche C++-Kenntnisse sind von Vorteil, aber nicht unbedingt nötig. Für
brauchbare Ergebnisse gibt es Erfolgsprämien. Interessiert? Dann schreiben Sie mir eine
Email oder rufen Sie mich an.

Verschiedenes ("Heringe und andere Südfrüchte")


Programmieren 1 im Studiengang Medien-Informatik Bachelor (MB1-PR1) im SS09

Für diese Lehrveranstaltung brauchen Sie das Buch Java ist eine Sprache. Sie können
es in der BHT-Bibliothek ausleihen (solange der Vorrat reicht) oder im Buchhandel
kaufen (30,- Euro).

Hier ein paar zusätzliche Unterlagen für die Lehrveranstaltung MB1-PR1:
Aufgaben.pdf 25 Seiten, ca. 80 KB
Übungen.pdf
38 Seiten, ca. 102 KB
TipsZumTextPad.pdf 25 Seiten, ca. 230 KB
JUnitEinfuehrung.pdf 10 Seiten, ca. 110 KB
ÜbungenMitJut.zip ca. 40 Aufgaben, ca. 65 KB
DateienFuerPR1.zip ca. 20+ Dateien, ca. 40 KB
StichworteUndWiederholungsfragen.pdf
124 Seiten, ca. 250 KB
AlteKlausuren.zip 23 Klausuren, ca. 610  KB

Programmieren 2 im Studiengang Medien-Informatik Bachelor (MB2-PR2) im WS09/10 

Organisatorischer Hinweis für die Teilnehmer der Übungsgruppen 2a und 2b (bei Prof. Merceron):
Die Übungstermine am Mo 01.02.2010 werden vorverlegt auf Do 28.01.2010 (die Uhrzeit bleibt
dabei unverändert 14.15 Uhr für 2a und 16.00 Uhr für 2b).

Klausur: Mo 08.02.10, 12 Uhr, Beuth-Saal.
Rückgabe: Fr 12.02.10, 16 Uhr, H2 (im Haus Bauwesen)
Nachklausur: Mein Wunschtermin: Fr 26.03.10 (kann sich noch ändern)

Hier ein paar Unterlagen zu dieser Lehrveranstaltung:
AufgabenPR2.pdf 19 Seiten, ca. 55 KB
Stichworte.pdf 95 Seiten, ca. 260 KB
DateienFuerPR2.zip ca. 70 KB
HashTabellen.pdf 5 Seiten, ca. 20 KB
Rekursion.pdf 8 Seiten, ca. 35 KB
UebungenPR2.pdf 10 Seiten, ca. 40 KB
Scanner.pdf 4 Seiten, ca. 15 KB
Bruchzahlen.pdf 8 Seiten, ca. 36 KB
Xml01.pdf 5 Seiten, ca. 20 KB
Xml02.pdf 8 Seiten, ca. 30 KB
Xml03.pdf 4 Seiten, ca. 16 KB
Datenstrukturen.pdf 17 Seiten, ca. 63 KB
TabSchrittzahlen.pdf 2 Seiten, ca. 8 KB
GenerischesJava.pdf 4 Seiten, ca. 20 KB
TipsZuEclipse.pdf 15 Seiten, ca. 60 KB
KlausurenPR2.zip 6 Klausuren, ca. 250 KB

Wann muss welche Aufgabe bearbeitet werden und wann wird welcher Test geschrieben?
Hinweis: Die Tests (am Anfang bestimmter Übungstermine) setzen  voraus, dass Sie die
in der Tabelle genannten Aufgaben gelöst haben und mit dem in der Vorlesung und in den Übungen
behandelten Stoff vertraut sind.
KW SW von-bis Aufgabe Test
40 1 28.09.-02.10. A1: Ein kleiner Quiz
41 2 05.10.-09.10.
T1: Ein kleiner Quiz
42 3 12.10.-16.10. A2: Ein Rechner mit Grabo
43 4 19.10.-23.10.
T2: Ein Rechner mit Grabo
44 5 26.10.-30.10. A3: Rekursion und Iteration
45 6 02.11.-06.11.
T3: Rekursion und Iteration
46 7 09.11.-13.11. A4: Collection-K. MeineSammlung
47 8 16.11.-20.11.
T4: Collection-K. MeineSammlung
48 9 23.11.-27.11. A5: toString in HashSet testen
49 10 30.11.-04.12.
T5: toString in HashSet testen
50 11 07.12.-11.12. A6: Set-K. MyHashSet
51 12 14.12.-18.12.
T6: Set-K. MyHashSet
52 13 21.12.-25.12. A7: Formatieren mit printf
53 .. 28.12.-01.01.
01 14 04.01.-08.01.
02 15 11.01.-15.01. A8: XML-Dokumente
03 16 18.01.-22.01. T7: Formatieren mit printf  und
XML-Dokumente
04 17 25.01.-29.01. A9: Ein reflektives Program
05 18 01.02.-05.01.
06 19 08.02.-12.02. Klausur
07 20 15.02.-19.02. Klausur-Rückgabe
Abkürzungen: KW: Kalenderwoche, SW: Semesterwoche

Compilerbau, Wahlpflichtfach im Studiengang Technische Informatik (TB5-CB) im WS08

Zum Inhalt des Fachs siehe CB-WP. Hier ein paar Papiere für diese Lehrveranstaltung:

GentleEinfuehrung.pdf 33 Doppelseiten, ca. 405 KB
StichworteUndWiederholungsfragen 38 Seiten, ca. 90 KB
AccentEtc.pdf 4 Seiten, ca. 15 KB
Aufgaben.pdf 13 Aufgaben, ca. 35 KB
Die_JVM_und_Java-Assembler.pdf 13 Seiten, ca. 60 KB
Compilerbau-Skript.pdf 95 Seiten, ca. 385 KB
UebungAhnenCompiler.pdf 4 Seiten, ca. 55 KB
FuerAufgabe4.zip Archiv, ca. 8 KB
Accent.zip Accent mit Beispielen, ca. 200 KB
Klausuren.zip 11 Klausuren mit Lösungen, ca. 90 KB


Informatik 3 (mit Java) im Studiengang Technische Informatik Bachelor (TB3-IN3)

Klausur: Di 09.01.10, 10 Uhr, Beuth-Saal.
Rückgabe: Fr 12.02.10, 16.30 Uhr, H2 (im Haus Bauwesen)
Nachklausur: Mein Wunschtermin: Fr 26.03.10 (kann sich noch ändern)

Hier ein paar Unterlagen zu dieser Lehrveranstaltung:
AufgabenIN3.pdf 27 Seiten, ca. 85 KB
Stichworte.pdf 72 Seite, ca. 140 KB
DateienFuerIN3.zip 27 Dateien, ca. 100 KB
TipsZumTextPad.pdf 25 Seiten, ca. 230 KB
Übungen.pdf 29 Seiten, ca. 65 KB
JUnitBeispiel.pdf 4 Seiten, ca. 15 KB
JUnitEinführung.pdf 10 Seiten, ca. 110 KB
ÜbungenMitJut.zip 40 Programmierübungen, ca. 63 KB
AlteKlausuren.zip 19 Klausuren, ca. 520  KB
Erläuterung: Aufgaben "müssen bearbeitet und abgegeben werden", Übungen sind freiwillige Zusatzleistungen, die nicht
offiziell kontrolliert oder bewertet werden. Eine ÜbungMitJut ist eine Kombination aus einer Programmierübung und
einem JUnit-Programm, mit dem Sie Ihre Lösung testen können. Ca. 40 solche Kombinationen stehen Ihnen hier zur
Verfügung.

Programmieren 1 (mit C) im Studiengang Technische Informatik Bachelor (TB1-PR)

Zwei Empfehlungen von Büchern (die es auch in der BHT-Bibliothek gibt):

B. W. Kernighan, D. M. Ritchie: "The C Programming Language", Second Edition
Prentice Hall 1988, 272 Seiten, ca 45,- Euro.

S. P. Harbison, G. L. Steele: "C, a Reference Manual", Fifth Edition
Pearson Education 2002, 533 Seiten, ca. 47,- Euro.

Hier ein paar Unterlagen (ein kleines Papier und ein paar Beispielprogramme):
SkriptC.pdf 51 Seiten, ca. 150 KB
Kommandos.pdf 4 Seiten, ca. 16 KB
CehBeispielProgramme.zip ca. 50 KB
GccUndCehProgramme.pdf 12 Seiten, ca. 40 KB

Die Programmiersprache Erlang

Ein Vortrag (Folien.pdf.) über Erlang. Ein paar kleine, kommentierte Erlang-Programme.pdf
sollen den Einstieg erleichtern.

Die Programmiersprache VPL (Visual Programming Language)

Im Dezenber 2006 hat Microsoft eine ganz neue Programmiersprache veröffentlicht.
Sie ist erstmal zum Programmieren von Robotern geeignet. Aber da sie sehr stark
auf dem Konzept von Netzdiensten (engl. web services) beruht, wird man damit wohl
bald auch Geschäftsprozesse programmieren und andere Probleme lösen können. Hier
finden Sie eine kleine Einführung in VPL und eine Sammlung von lauffähigen Beispielen
Die Einführung (39 Seiten, .pdf-Datei, ca. 1,3 MB) ist eine Ergänzung zu den Turorials
von Microsoft. Die Beispielsammlung (ein .zip-Archiv, ca. 250 KB) enthält die knapp
40 VPL-Programme, die in der Einführung behandelt werden.

Applets zum Lernen bestimmter Java-Konstrukte

Mit den beiden Applets GleitBitsFloatApplet und GleitBitsDoubleApplet kann man die
Eigenschaften von Gleitpunktzahlen der Typen float und double erforschen.
Wissen Sie, welchen Wert das Literal 0.1 hat?  Nein, es hat nicht den Wert 0.1, aber
Sie dürfen noch mal raten. Oder wollten Sie nicht schon immer mal herausfinden, wieviele
Dezimalziffern man für die genaue Darstelllung des kleinsten double-Wertes braucht?
Oder welches die nächstgrößere float-Zahl nach 16 Milliarden ist? Kennen Sie den
Unterschied zwischen +0.0 und -0.0? Und wissen Sie, wieviele Unzahlen (engl. NaN
values) zum Typ float (bzw. zum Typ double) gehören? Mit den Applets können
Sie die Antworten auf diese und ähnliche Fragen herausfinden.

Mit dem neuen  eTeachMePrintf-Applet von S. Effenberg kann man die zahlreichen
Möglichkeiten des Befehls format (alias printf) interaktiv ausprobieren und kennenlernen..
Voraussetzung: Ihr Browser muss Java 6.0 können.

Mit dem älteren PrintfApplet kann man den printf-Befehl auch auf Datumsangaben
anwenden und braucht nur einen Java 5 fähigen Browser. Wenn man ausserdem
einen UNICODE-Font intstalliert hat, werden auch chinesische, japanische und
koreanische Montas- und Tagesnamen richtig dargestellt.

Programmieren 3 (mit C++) im Diplomstudiengang Medieninformatik (PR3-MD)

C++ für Java-Programmierer.pdf 179 Seiten, ca. 480 KB
C++-Übungen.pdf 30 Seiten, ca. 65 KB
Aufgaben-für-PR3-MD.pdf 16 Seiten, ca. 120 KB
C++-Beispiele.zip (vom 09.10.05) ca. 440 KB
PR3-Klausuren mit Lösungen.zip 6 Klausuren, ca. 100 KB

Links zu einer C++-Referenz und weiterern Informationen über C++

C++-Referenz (HTML-Dateien)
Netzadressen von C++-Infos

Programmieren 2 (mit C) im Diplomstudiengang Technische Informatik (PR2-TI)

C_Skript.pdf 51 Seiten, ca. 150 KB
C_Aufgaben.pdf 11 Seiten, ca. 30 KB
BeispieleC.zip ca. 625 KB
BojenFuerC.pdf 14 Seiten, ca. 43 KB
PR2-Klausuren mit Lösungen.zip ca. 21 KB

Konzepte von Programmiersprachen im Diplomstudiengang Medieninformatik (KPS-MD)

Organisatorisches.pdf 1 Seite, ca. 40 KB
Rekursion.pdf 5 Seiten, ca. 85 KB
GenerischesJava.pdf 4 Seiten, ca. 70 KB
LexerParser.pdf 4 Seiten, ca. 60 KB
Metaprogrammierung.pdf 10 Seiten, ca. 120 KB
VergleichGenEinheitenInCppUndJava.pdf 4 Seiten, ca. 65 KB
KonzepteVonProgrammiersprachen.pdf 36 Seiten, ca. 365 KB
Aufgaben.pdf 8 Seiten, ca. 90 KB
EineUebung.pdf 2 Seiten, ca. 50 KB
Beispiel-Programme-KPS.zip ca. 25 KB
KPS-Klausur mit Lösungen.zip ca. 23 KB

Den Java 2 Software Development Kit (J2SDK) und den TextPad installieren

Den neusten (kostenlosen) Java Software Development Kit  (SDK) kann man von den Netzseiten der
Firma Sun herunterladen. Ebenso die (ebenfalls kostenlose, sehr leistungsfähige, aber auch "leistungshungrige")
Entwicklungsumgebung NetBeans. Eine sehr viel "leichtere" Enttwicklungsumgebung für Java-Programme
erhält man, indem man z.B. den Editor TextPad mit dem SDK kombiniert (Achtung: erst den SDK installieren,
danach den TextPad, dann verbindet sich der TextPad automatisch mit dem SDK).

Wollen Sie einen Compiler bauen?

Mit dem modernen Werkzeug Gentle ist das deutlich einfacher als nur mit lex und yacc (bzw. flex und bison).
Hier können Sie sich eine Einführung in Gentle.pdf (110 Seiten, ca.420 KB) oder ein Skript Compilerbau mit
Gentle
(104 Seiten, ca. 350 KB) holen (diese beiden Schriften "überlappen sich starkk). Das Archiv GentleBeispiele.zip
(ca. 273 KB) enthält viele kleine in Gentle geschriebene Compiler. Jeder Beispielcompiler steht (zusammen mit allen
dazu nötigen Hilfsdateien) in einem eigenen Verzeichnis. Im Verzeichnis namens Genlib stehen die Dateien, die von
vielen Beispielen gemeinsam benötigt werden. Zur Homepage des Gentle-Systems. Ausserdem gibt es hier ein Skript
Compilerbau.pdf (95 Seiten, ca. 400 KB), in dem einige Grundbegriffe dieses Fachgebietes (Chomsky-Grammatiken,
insbesondere kontextfreie Grammatiken, Übersetzungs-Schemen, LL-Parser, LR-Parser) eingeführt und anhand von
zahlreichen Beispielen und Aufgaben (mit Lösungen) erläutert werden.

Wahlpflichtfach Compilerbau

Die TeilnehmerInnen sollen in kleinen Gruppen einen Compiler entwickeln, der Programme einer einfachen kleinen
Programmiersprache in Java-Bytecode-Programme (d.h. in .class-Dateien) umwandelt. Die Bytecode-Dateien kann
 man dann (wie andere .class-Dateien auch) von einem Java-Interpreter ausführen lassen. Der Compiler wird in der
speziellen Compilerbau-Sprache Gentle programmiert. Gentle hat einerseits Ähnlichkeit mit Prolog (man programmiert
also auf einer sehr abstrakten Ebene sogenannte Prädikate), andererseits sind Gentle-Programme so schnell wie C-Pro-
gramme. Neben der praktischen Entwicklung eines Compilers werden auch einige der Grundlagen des Compilerbaus
behandelt (Grammatiken, Lexer, Parser, die klassichen Werkzeuge lex und yacc, der modernere Parsergenerator Accent etc.).
Voraussetzung für die Teilnahme an dieser Lehrveranstaltung: Möglichst viel Neugier, eine gewisse Vertrautheit mit der
Sprache C, Spaß am Programmieren. Das Fach ist für StudentInnen aller Informatik-Studiengänge geeignet.
Unterlagen zu diesem Wahlpflichtfach findet man bei TB5_CB und bei Wollen Sie einen Compiler bauen.

Lambda calculus

The result of a thesis: A complete environment for the development of (simple and) complicated lambda expressions,
their compilation into an intermediary form and the execution of this intermediary form. The LCD (Lambda Calculus
Developer) runs on PCs under Windows. You are free to download LCD (ca. 412 KB) for evaluation.

Petri-Netze

Petri-Netze dienen dazu, den Begriff der Nebenläufigkeit zu klären und nebenläufige Systeme (z. B. die Prozesse
eines Betriebssystems oder die Steuerfäden eines Programms) zu modellieren. Das Papier Petri-Netze.pdf  (ca. 77 Seiten,
800 KB) erläutert wichtige Grundideen von Petri-Netzen auf informelle, hoffentlich leichtverständliche Weise, und versucht
dabei, einige verbreitete Missverständnisse zu vermeiden bzw. aufzuklären.

Die Cygwin-Distribution für Windows

Diese quelloffene Software umfasst zahlreiche Werkzeuge, die sich relativ leicht einzeln oder zusammen unter einem
Windows-Betriebssystem installieren lassen und einem dann den Komfort eines Linux-Systems bieten. Zu diesen
Werkzeugen gehören unter anderem: Sehr gute Compiler für die Sprachen C, C++, Java, Ada und Fortran (mit dem
Java-Compiler kann man wahlweise die üblichen .class-Dateien oder aber .exe-Dateien erzeugen), die Skriptsprachen
Perl, Tcl und Phyton, die Bash-Shell, die Z-Shell, Kommandos wie ls, cp, mv (die deutlich mächtiger sind als die Dos-
Befehle dir, copy und rename), die Editoren vim und emacs und sehr, sehr viel mehr. Die jeweils neuste Version dieser
Distribution finden Sie hier . Ein paar einfache Bash-Skripte zum Bearbeiten (compilieren, evtl. binden, ausführen) von
Java-Programmen, C-Programmen und C++-Programmen, allgemeine Bash-Skripte namens profile, .bash_profile und
.bashrc und Initialisierungsdateien für den Editor vim finden Sie im Archiv BashSkripteEtc.zip (ca. 28 KB).

Wollen Sie Ada lernen?

Ein Skript für die Vorlesungen Programmieren 1 und 2 (mit Ada), ca. 380 Seiten, mit zahlreichen Aufgaben, steht hier
als PDF-Datei zur Verfügung. Lösungen zu einigen der Aufgaben und eine Sammlung von fast 300 Beispielprogrammen
ergänzen das Skript.

AdaSkript.pdf  386 Seiten, ca. 1,5 MB
Lösungen zu  den Aufgaben im Skript.pdf  30 Seiten, ca. 90 KB
Ada Beispielprogramme.zip  296 Dateien, ca. 160 KB

Mit 10 Fingern blind tippen!

Professionelle InformatikerInnen (im Gegensatz zu LaienprogrammiererInnen) sollten "richtig" mit einer
Tastatur umgehen können. Je länger man ohne System tippt, desto mühsamer wird es, richtig mit 10 Fingern
blind schreiben zu lernen. Fangen Sie  deshalb am besten gleich heute an, richtig tippen zu lernen (es sei denn,
sie haben schon gestern angefangen oder es früher gelernt). Hier ein Programm zum Tippen-Lernen ,
(eines von vielen), welches von Sebastian Machon (BHT-Student) empfohlen wird. Es kostet 9,- Euro, aber
bevor, man bezahlt kann man eine kostenlose Demoversion ausprobieren.

Other interests

Verschiedene Unterlagen zum Indonesisch-Lernen
Mitschrift des 1. Kurses in der KBRI: IndonesischerBotschaftsKurs1.pdf
Mitschrift des 2. Kurses in der KBRI: IndonesischerBotschaftsKurs2.pdf
Mitschrift des 3. Kurses in der KBRI: IndonesischerBotschaftsKurs3.pdf
Märchen (jeweils der indonesische Text und Vokabeln Indonesisch-Deutsch):
Märchen 1: RajaBurungParkit.pdf
Märchen 2: BatuBelahAjaib.pdf
Märchen 3: LegendaDanauToba.pdf
Märchen 4: AlibabaDan40Penyamun.pdf
Wurzelworte
mit Vor-/Nachsilben: Affixe.pdf
Tierbeschreibungen: Binatang.pdf
Diese Unterlagen enthalten sicherlich noch zahlreiche Fehler. Für Verbesserungs-
vorschläge und Hinweise auf Fehler (am liebsten per Email, siehe ganz oben)
bin ich jederzeit dankbar.

Zuletzt geändert am 03.02.2010