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

Wikipedia Affiliate Button
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.

Die Lehrveranstaltung MB1-PR1 (Programmieren 1)  im SS10 an der Beuth Hochschule
wird durchgeführt von
Herrn Goethe (Zug 2, Erstsemester mit ungeraden Matrikel-Nrn und Wiederholer) und
Herrn Grude  (Zug 1, Erstsemester mit geraden Matrikel-Nrn).
Erläuterungen zu dieser LV findet man hier.

Weitere Lehrveranstaltungen, Unterlagen, Applets etc.:
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.


Erläuterungen zur Lehrveranstaltung MB1-PR1 im SS10

Nachklausur
gemeinsam für den Zug 2 (bei Herrn Goethe) und den Zug 1 (bei Herrn Grude)
am Do 23.09.10 um 14 Uhr im Beuth-Saal.

Achtung: Die Nachklausur im Fach MB1-FGI bei Prof. Ripphausen-Lipa wurde
verlegt (von Do 23.09.10) auf Mi 22.09.10, 12 Uhr im Raum D120.

Angebot: Ein Arbeitstreffen vor der Nachklausur
Wenn mir (Ulrich Grude) etwa ein oder zwei Wochen vor der Nachklausur
mindenstens 3 TeilnehmerInnen ihr Interesse per Email mitteilen, dann können wir
ein Treffen ausmachen und dabei alle Fragen besprechen, die bei den Vorbereitungen
auf die Nachklausur aufgetaucht sind.

Unterlagen (Aufgaben, Übungen, Stichworte etc.) zur LV MB1-PR1 (Programmieren 1)
finden Sie hier.

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 SS10

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
40 Seiten, ca. 110 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
Stichworte.pdf
121 Seiten, ca. 250 KB
AlteKlausuren.zip 23 Klausuren, ca. 610  KB

Und hier eine Tabelle aus der hervorgeht, in welcher Woche welche Aufgabe bearbeitet werden soll und
in welcher Woche der zugehörige Test geschrieben wird:

KW SW von-bis Aufgabe Test
13 1 29.03.-02.04.  
 
14 2 05.04.-09.04. A1: Grundlagen  
15 3 12.04.-16.04. A2: Rechnen mit Ganzzahlen T1: Grundlagen
16 4 19.04.-23.04. A3: Rechnen mit Bruchzahlen T2: Rechnen mit Ganzzahlen
17 5 26.04.-30.04. A4: Dreiseit T3: Rechnen mit Bruchzahlen
18 6 03.05.-07.05. A5: In Worten T4: Dreiseit
19 7 10.05.-14.05. A6: Schleifen T5: In Worten
20 8 17.05.-21.05. A7: StringBuilder (Florian) T6: Schleifen
21 9 24.05.-28.05. A8: Reih. und Samm. (Veronika01) T7: StringBuilder (Florian)
22 10 31.06.-04.06. A9: Reih. und Samm. (Veronika02) T8: Reih. und Samm. (Veronika01)
23 11 07.06.-11.06. A10: Klasse Punkt3D T9: Reih. und Samm. (Veronika02)
24 12 14.06.-18.06. A11: Klasse Quader etc. T10: Klasse Punkt3D
25 13 21.06.-25.06. A12: Klammern prüfen T11: Klasse Quader etc.
26 14 28.06.-02.07. A13: Miez, eine kleine Katze T12: Klammern prüfen
27 15 05.07.-09-07.   T13: Miez, eine kleine Katze
28 16 12.07.-16.07.  Klausur (Di 13.07.10)  
29 17 19.07.-23.07.    
Abkürzungen: KW: Kalenderwoche, SW: Semesterwoche

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

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


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)

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 auf Indonesisch und Deutsch. Die deutsche Übersetzung
folgt dem indonesischen Text möglichst Wort für Wort, so dass man die
Bedeutung der einzelnen indonesischen Worte erkennen kann)
Märchen 1: RajaBurungParkit.pdf
Märchen 2: BatuBelahAjaib.pdf
Märchen 3: LegendaDanauToba.pdf
Märchen 4: AlibabaDan40Penyamun.pdf
Märchen 5: TukangSepatuDanLiliput.pdf
Märchen 6: GadisPenjualLorekApi.pdf
Marchen 7: AladinDanLampuAjaib.pdf
Märchen 8: BalasBudiBurungBangau.pdf
Märchen 9: SaudagarJerami.pdf
Märchen 10: PetualanganGuliver.pdf
Märchen 11: Cinderela.pdf
Märchen 12: PangeranKatak.pdf
Wurzelworte mit Vor-/Nachsilben: Affixe.pdf
Tierbeschreibungen: Binatang2.pdf
Tierbeschreibungen: Binatang3.pdf
Tierbeschreibungen: Binatang5.pdf

Konversations-Kurs

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 28.07.2010