Feedbackseite zur Vorlesung Allgemeine Informatik II


199.)

Sat Jul 16 19:59:49 2005
Hallo
Ich hab ne Alternative zu http://y.20q.net gefunden: http://www.sithsense.com

Hey, das kommt mir in der Tat irgendwie bekannt vor. Cool! Vielen Dank für den Hinweis!

Das ist ja sogar noch besser als unsere Musterlösung... ;-)))

(Ich glaube, diese Version des Spiels hätte mit Sicherheit die vollen Punkte für Blatt 7 bekommen!)

- nh


198.)

Fri Jul 15 09:21:03 2005
Hey Heidi,

ich hab das Problem mit dem Router gerade gefunden, nachdem sich mein Bruder gerade durch ein Forum gewühlt hat ist er auf die Lösung gestoßen. Brauchst also nicht auf meine Frage antworten.

Sorry dass ich dir soviel Mühe mache...

Mfg

Philipp

Jetzt würde mich die gefundene Lösung (am liebsten via E-Mail) natürlich schon intererssieren...

- nh


197.)

Fri Jul 15 09:08:23 2005
Hallo,
meine Frage hat nichts mit AI2 zu tun, aber ich bräuchte ein wenig Hilfe. Zu Hause haben wir einen D-Link Router (G664T) und ich habe das Problem, dass ich unter Linux (Gentoo, Suse 9.2 und Ubuntu) nicht per SSH mich auf der Theseus einloggen kann. Er fragt mich noch nach meinem Passwort aber danach friert die Shell quasi ein.
Unter Windoof (besser bekannt als Windows :D ) klappt es super über Putty oder SSH Secure Shell.
Ich hab jetzt mitbekommen, dass das ein Fehler des Routers ist. Aber keine Ahnung warum das nur unter Linux so ist. Firmwareupdate ist nicht möglich, weil es schon die neuste Version ist.
Jetzt meine Frage: Gibt es fuer Linux ein Programm in der Art wie SSH Secure Shell welches dies fuer mich managen könnte?
Ich weiss sonst nicht wie ich mich auf der Theseus einloggen soll, weil ich hab vor ganz von Windows los zu kommen.
Danke fuer den Tip schonmal im Voraus!

siehe Feedback 198

- nh


196.)

Wed Jul 13 20:12:13 2005
Wann kann man sich wo, bei wem, wie, ... für eine Vordiplomsprüfung (Nebenfach zu Physik) anmelden, wenn man den Schein hat?

Die Anmeldung zur Vordiplomsprüfung erfolgt stets über das Studiensekretariat und zwar in folgenden Schritten:

1.) Man vereinbart mit seinem Prüfer per E-Mail oder persönlich einen Prüfungstermin.

2.) Man holt sich im Prüfungssekretariat einen Vordruck ("Antrag auf Zulassung zur Prüfung" oder so ähnlich) und marschiert damit zum Prüfer, um den vereinbarten Termin bestätigen zu lassen.

3.) Mit der Bestätigung geht's wieder ins Studiensekretariat, wo dann die " Zulassung zur Prüfung" erteilt wird, die wiederum in einer DIN-A4-Seite endet.

4.) Mit dieser Zulassungsbescheinigung geht es dann in die Prüfung.

Dieses Spielchen wiederholt sich übrigens für jede Prüfung aufs Neue!

Bevor es jetzt hier die nächsten 20 Feedbacks Kritik hagelt: Wir haben uns diese Prozedur nicht ausgedacht und können sie auch nicht ändern. Bitte verhauen Sie ggf. jemand anderen dafür!

- nh

Die Sache laesst sich noch etwas vereinfachen, wenn sogleich der Zulassungsantrag mitgebracht wird. Wenn dann der Kandidat oder die Kandidatin zu mir kommt, koennen wir den Termin festlegen. Ferner gebe ich dann auch Tips zur Vorbereitung auf die Pruefung.

- afb


195.)

Wed Jul 13 17:16:27 2005
Ich kann mich eigentlich nur Feedback Nr 192 anschließen

DANKE Heidi für die coolsten Übungsblätter der Welt!
Ich hatte jedes Mal schon eine richtige Vorfreude auf die nächste lustige Story!!!
So setzt man sich viel motivierter und lieber hin, als wenn alles nur die graue Theorie ist!

Wow, was ist denn heute los? Ich komme ja gar nicht mehr aus dem Rotwerden 'raus...

Auch wenn die "Stories" d'rumherum zwar von mir waren, so ist der Kern der Aufgaben jedoch nicht allein mein Werk! Hier gebührt Herrn Borchert der Löwenanteil des Lobs, denn viele Ideen zu den Aufgaben kamen auch von ihm!

- nh


194.)

Wed Jul 13 14:37:45 2005
Vielen Dank an Herrn Borchert für ein super Skript, das leider so gut war, das mir die Vorlesung als überflüssig erschien. Die Übungen waren aber trotzdem sehr gut.

Weiter so!

Das ist die Gefahr bei guten Skripten: Man denkt sich, daß man auch zu Hause lesen kann und spart sich den Besuch der Vorlesung.

Aber letztlich kommt in der Regel in der Vorlesung immer noch irgendetwas, das nicht im Skript steht, zur Sprache.

Deshalb ein Tip für's weitere Studium: Trotzdem in die Vorlesung gehen!

Ach ja: Und natürlich Danke für's Lob :-)

- nh


193.)

Wed Jul 13 01:42:30 2005
Eine kurze Frage zu Aufgabe 15:

Meine Programm gibt nach langem Rechnen ueber 800.000 Loesungen aus. Ist das korrekt?
P.S. Ein ganz dickes Lob und grosses Dankeschoen an Hr. Borchert, Heidi und die Tutoren fuer zwei tolle Info-Semester mit meist guten Uebungsblaettern und einer hervorragenden Betreuung (incl. Schokolade von meiner Tutorin), die weit ueber das uebliche Mass hinausging!!!

(auch wenn ich mir zum Abschluss eine spannendere letzte Vorlesungsstunde gewuenscht haette...)

Wir haben gerade mal die Lösungen "nachgezählt" (oder besser gesagt von der Turing zählen lassen) und sind auf genau 882.914 verschiedene Lösungen gekommen. Die Datei, in die wir die Lösungen haben ausgeben lassen, ist dabei auf 1,4 GB angewachsen.

Es sieht also so aus, als sei Ihr Programm goldrichtig.

Was den Inhalt der letzten Vorlesungsstunde angeht, so sind ja leider alle nach der Scheinausgabe verschwunden. Herr Borchert hätte noch einiges Spannendes dabei gehabt!

- nh


192.)

Wed Jul 13 00:56:17 2005
Danke dafür dass:
1) die letzten beiden semester so informativ waren
2) die letzten beiden semester so lustig waren
3) die übungsblätter einen jedes mal zum schmunzeln bringen
4) eben jene immer zu lösen waren, sei es nun mit mehr oder weniger aufwand
5) das skript sehr übersichtlich ist, mit vielen beispielen an denen man gleich die praktische umsetzung verstehen konnte
6) die klausuren wirklich fair waren
7) die info-homepage immer aktuell war und man alles wichtige darauf fand
8) für dieses feedback hier
9) man immer hilfe finden konnte, wenn man grade mal nicht mehr weiter kam
10) für den info schein ;-)

zum schluss noch etwas, was mir seit langem auf dem herzen liegt:

*heidiknuddel*

mfg, eine glückliche studentin

Na, wenn der Tag mit einem solchen Feedback in der Mailbox beginnt, dann kann ja nichts mehr schiefgehen. Vielen Dank!!!

- nh (nun noch eine Spur erröteter als ohnehin immer...)


191.)

Tue Jul 12 22:42:58 2005
Dann hat also die Idee, uns ein wenig zu verwirren, bei mindestens einem geklappt! Glückwunsch! ;)

Naja, ein bißchen Spaß muß doch sein, gell...? :-)

- nh


190.)

Tue Jul 12 13:35:54 2005
Hallo!

Nur mal so eine Frage: bin ich eigentlich der Einzige, der die Verwandtschaftsverhältnisse in Aufgabe 3b) der Klausur etwas seltsam findet? Ist das irgendein Insider-Witz oder steh ich einfach grad seit ein paar Tagen irgendwie auf dem Schlauch?

Ich meine: Marcels Mutter ist gleichzeitig seine Großmutter väterlicher Seite. Anders ausgedrückt: Marcels Vater ist der Sohn seiner (=Marcels) eigenen Mutter. Nochmal anders: seine Mutter hat mit ihrem eigenen Sohn... *erhm*... Sie wissen was ich meine.

Und sowas in einer offiziellen Klausur?! Tststs.

Es war ein Mal ein junges Mädchen namens Melanie und ein junger Mann namens Daniel. Bei den beiden war es Liebe auf den ersten Blick. Er fragte: "Wie heißt Du, Süße?" Sie: "Melanie!" Er: "Schöner Name! So heißt meine Mutter auch!"

Die beiden heirateten, bekamen einen Sohn, den sie Marcel tauften, und wenn sie nicht gestorben sind, dann vermehren sie sich noch heute.

Was ich damit sagen will: Wenn man mal die Musterlösung scharf ansieht, stellt man fest, daß es hier zwei verschiedene Melanies gibt: die eine ist die Mutter von Daniel, die andere dessen Partnerin.
Es ist doch moralisch eher unbedenklich, wenn Mutter und Freundin den selben Namen, oder?

- nh


189.)

Tue Jul 12 13:00:13 2005
Mal eine Frage zum Bonusblatt.

Gibt es überhaupt eine Lösung?

Aber sicher!

- nh


188.)

Tue Jul 12 11:07:43 2005
Auch als Tutor kann man die Punkte seiner Schäfchen in der Klausur sehen im SLC betrachten:
Punkte eintragen -> Vorlesung richtig auswählen, Namen mit . oder gar nichts versehen, bei Blatt -1 eintragen und ab die Post.
Klausurpunkte können so aber nicht mehr geändert werden, falls man nur normale Tutorenrechte an der Vorlesung hat ;-).

Das ist ja auch meine Meinung, aber irgendwer sagte gestern, daß dieser Weg nicht funktioniere.

Aber: Warum kommunizieren wir eigentlich über das Feedback miteinander? Da gab es doch mal einen E-Mail-Verteiler...

(Oder schreibt uns hier ein "fremder" Tutor?)

- nh


187.)

Mon Jul 11 18:19:56 2005
Mal ne dumme Frage: da ich mir den Schein ja eh abholen müsste, wenn ich am Di/Do nicht kommen kann: kann ich ihn mir auch gleich mitbringen lassen? Geht doch sicher, oder?

viele Grüsse und danke für die faire Klausur (hat so manches Übungsblatt wettgemacht ;-)

Ja, das Mitbringen-Lassen eines Übungscheins ist kein Problem.

Und was den letzten Satz angeht: genau meine Meinung! Lieber mal 'n aufwendigeres Übungsblatt dafür aber eine faire Klausur, als umgekehrt, oder?

- nh


186.)

Mon Jul 11 17:46:15 2005
Hallo!
Gibts auch ne Tabelle zur Umrechnung Punkte --> Note?
Und noch ein dickes Lob fuer die Klausur! War echt fair!!!

Die gewünschte Tabelle habe ich gerade auf die Homepage (unter das Histogramm) gebastelt.

- nh


185.)

Mon Jul 11 17:45:20 2005
was ist denn der Unterschied zwischen Durchschnitt und Median?

Durchschnitt: Summiere alle erreichten Punkte und teile durch die Anzahl der Klausuren.

Median: Sei n die Anzahl der Klausuren. Sortiere die Klausuren nach Punkten, nimm, falls n ungerade ist, die (n+1)/2-te oder, bei n gerade, die (n/2)-te Klausur; deren Punktzahl ist der Median.

- nh


184.)

Mon Jul 11 16:45:25 2005
Hallo,

und wir armen Tutoren werden benachteiligt und können uns die Ergebnisse unserer (zum Großteil Ex-)Schäfchen nicht im SLC ansehen?
Übrigens: wusstet ihr, dass ein Hummer erst durch das Kochen seine typische hellrote Färbung bekommt? ;-)

LG,

Ein Pizza-Esser

Ja das Leben ist auch für Tutoren hart und ungerecht... Und für Hummer erst recht!

- nh


183.)

Mon Jul 11 16:03:55 2005
Wird es noch ein Histogramm und Schnitt usw. geben? Lieben Gruss

Ist bereits von Herrn Borchert auf die Homepage gestellt worden!

- nh


182.)

Mon Jul 11 15:31:48 2005
hallo,
wird eseine nachklausur geben?
wenn ja wann?

Wer lesen kann, ist auch bei uns in der Informatik klar im Vorteil! (Einfach mal auf die Vorlesungshomepage unter "Klausuren" schauen!)

Und falls wir uns doch für mündliche Kolloquien entscheiden sollten, kommunizieren wir das ebenfalls über unsere Homepage!

- nh


180.)

Mon Jul 11 15:04:31 2005
Hallo...
hm...
gibt's die Scheine jetzt eigentlich schon morgen oder doch erst Do?
...
Weiß auch nich warum ich das so genau wissen will *g*

Liebe Grüße:)

Wahrscheinlich gibt es sie bereits morgen in der Vorlesung, spätestens aber am Donnerstag dann in den Übungen.

- nh


179.)

Mon Jul 11 13:24:28 2005
Der besagte "fahnenflüchtige" Tutor hat auch auf dem Grillfest für gute Unterhaltung gesorgt. Abgesehen davon war es ein Physikerfest, also keineswegs Fahnenflucht.
Mehr darf aus Gründen der Anoymität des Tutors nicht verraten werden.

Denkt daran, für diesen Tutor beim nächsten Grillfest auch genügend Hummer einzukaufen...

(Ihr könnt ihn ja mal fragen, wieso... ;-) )

- nh


178.)

Mon Jul 11 13:17:25 2005
also ich weiß ja nicht aber montag ist jetzt schon seit 13:17...dauert das so lang die punkte ins SLC einzutragen? vielleicht sollte man da mal ein neues system machen

Daß ich den Wecker nicht auf 0:00 Uhr gestellt habe, um die Punkte endlich eintragen zu können, dürfte wohl einleuchten, oder?

Aber um alle zu beruhigen:

Die Ergebnisse sind nun im SLC!

- nh


177.)

Mon Jul 11 12:22:39 2005
dachte es gibt die lösungen im SLC heute??? war heut nacht um 0:06 Uhr schon kucken...
jetzt is immer no nix da... wann is es denn soweit?

Jetzt!

- nh


176.)

Mon Jul 11 11:22:15 2005
Hallo
Wollte nur mal fragen, warum ein sortierter Baum die richtige Antwort in der Klausur war, wenn doch im Skript steht, dass die Teilmengen eines Baumes disjunkt seien muessen? Somimt darf es doch nur unterschiedliche Schluessel geben.
Sonst war die Klausur echt super!!! Vorlesung und Uebungen sowieso!!!

Die Antwort auf die "Baumfrage" wird nachgeliefert... Bitte noch ein wenig Geduld!

Ansonsten: vielen Dank für's Lob!

- nh


Die Disjunktheit der Teilbaeume bei Baeumen hat absolut nichts mit der Eindeutigkeit von Schluesseln zu tun. Es geht bei der Disjunktheit nur darum, dass es keine zwei verschiedenen Pfade von der Wurzel zu einem Knoten des Baumes geben darf. D.h. ein Fall wie folgender ist nicht zulaessig, bei dem der Knoten 4 ausgehend von der Wurzel sowohl ueber 2 als auch 3 erreicht werden kann:

                    +---+
                    | 1 |
                    +---+
                     / \
                    /   \
                   /     \
               +---+     +---+
               | 2 |     | 3 |
               +---+     +---+
                X  \     /  X
                    \   /
                     \ /
                    +---+
                    | 4 |
                    +---+
                     X X



- afb


175.)

Mon Jul 11 00:10:40 2005
Dass es so ein langer Korrekturtag geworden ist, lag doch nur daran, dass einige Tutoren so lange auf dem HM-Grillfest waren! Gut so!

Ein Grillfest-Teilnehmer

Nachdem ich die beiden fahnenflüchtigen Tutoren wieder eingesammelt hatte, sorgte zumindest einer von ihnen aufgrund seines fortgeschrittenen Alkoholpegels für eine gewisse Unterhaltung bei der Korrektur zu später Stunde...

- nh


174.)

Sun Jul 10 22:29:28 2005
Hi,
danke an alle Tutoren für das Lsutige und unterhaltsame Korregieren. Hat echt Spass gemacht mit euch zusammen zu arbeiten. (Auch wenn es ein lagner Tag wurde). Auch liebe Grüße an Norbert und Hr. Borchert, die immer ein Ohr offen hatten..
Wünsche euch eine erholsame Zeit ohen Vorlesungen.
Ciao ein Tutor... :-P

Hier sieht man unsere Einstellungsanforderungen an Tutoren:

Im Bereich Informatik müssen sie gut sein, aber orthografische Schwächen übersehen wir großzügig... ;-)))

- nh


173.)

Sun Jul 10 20:30:45 2005
wenn ihr dann mit der Klausur fertig seid hätte ich eine vi-Frage:
Wie kann ich in einem Text "abcd\fghde\??%jk" durch "abcd\jkl" ersetzen mit "%s/ abcd\fghde\??%jk/abcd\jkl" funktioniert es nicht, wahrscheinlich hat er was gegen die \
Viele Dank!

Hey, das ist mal eine Frage ganz nach meinem Geschmack!

Also, am besten (d.h., damit die nachfolgende Lösung funktioniert) arbeitet man hier mit dem vim statt "nur" mit dem vi. Dann muß man die Backslashes "entwerten" - interessanterweise durch das Voranstellen eines weiteren Backslash.

Damit wäre der Substitute-Ausdruck dann der folgende:

   %s/abcd\\fghde\\??%jk/abcd\\jkl

Diese Form der Substitution gilt zwar im vim, aber falls Sie das in Perl verwenden möchten, dann müssen auch noch die Fragezeichen via Backslash entwertet werden, vielleicht sogar auch das Prozentzeichen, das weiß ich gerade nicht sicher.

- nh


172.)

Sun Jul 10 17:13:48 2005
hallo,
ich habe eine frage:
gibt es zu aufgabe 4 auch noch ein paar punkte, wenn man eine lineare liste als "richtige" lösung des problems angegeben hat?

(Komisch, mir ist so, als hätte ich diese Frage gerade auch per E-Mail bekommen...)

Die Frage kann ich so pauschal leider nicht beantworten - das kam immer sehr auf den Einzelfall an. Wenn das Wort "sortierte" in Zusammenhang mit der linearen Liste erwähnt wurde, dann schon, andernfalls kam es auf die Begründung an.

Da ich die Aufgabe 4 aber nicht korrigiert habe, kann ich leider nicht viel dazu sagen, sorry!

- nh


171.)

Sun Jul 10 13:34:01 2005
Vielen Dank für die rundum gelungene Vorlesung! :-)
Vorlesung, Übungen und Klausur: alles optimal!!!

Aber ich kann mich noch an die erste Vorlesungsstunde erinnern: Dort hat uns Hr. Borchert diese Seite

http://www.itasoftware.com/careers/eng/job1.php

gezeigt und angemerkt, dass die Aufgabe mit dem Erdbeerfeld irgendwann mal Übungsaufgabe wird. Schade, dass das nicht der Fall war... Jetzt muss sie in den Semesterferien gelöst werden. :-) Aber als Bonusaufgabe wäre sie doch bestimmt geeignet gewesen?!

Tja, zur Erbeer-Aufgabe hat die Zeit dann leider doch nicht mehr gereicht!

Die WiMas unter Euch werden im Hauptstudium drei Semester lang "Operations Research (OR)" hören - und dort werden solche Optimierungsaufgabe im Vordergrund stehen. Die Hoffnung auf die Erbeeraufgabe braucht also noch niemand zu begraben (zumindest niemand, der nochmals OR hören wird).

Ansonsten: Vielen Dank für das Lob!

- nh


170.)

Sun Jul 10 13:27:21 2005
"Sind Sie wirklich sicher, daß so noch eine Lösung erreicht werden ka nn?"
(Antwort Nr. 167)

Ich habe mal ein kurzes Testspiel (5x5 Feld) durchgeführt. Hier das Ergebnis:

(Anmerkung: Das Ergebnis habe ich (nh) mal auf diese Seite ausgelagert, um das Feedback nicht zu überfüllen.)

Bei dieser Lösung stimmt ihre Vermutung, es muss allerdings, wie zuvor angemerkt, berücksichtigt werden, dass einzelne Zeilen/Spalten zwischenzeitlich fertig "aussehen".
Ich hoffe mir ist kein Fehler unterlaufen...
Wenn man nun testen will, ob eine Zeile/spalte endgültig fertig ist, muss a uch berücksichtigt werden, ob es noch theoretisch denkbar ist, ein Tier wie der aus der Zeile zu entfernen und später durch ein anderes zu ersetzen. Übrigens meldet auch das Originalspiel:
http://www.cut-the-knot.org/SimpleGames/FrogsAndToads2d.shtml
bei der von mir vorgeschlagenen Lösung zwischenzeitlich "You are stuck", ob wohl es noch Zugmöglichkeiten gibt.
Ich hoffe ich konnte bei der Suche nach der Lösung etwas beitragen.

Ja - zwischenzeitlich sehen einige Zeilen fertig aus. Dennoch bleibt es aber dabei, daß wir uns von außen auf die Mitte zubewegen.

- nh

Zunaechst einmal freue ich mich sehr, dass sich noch jemand mit dem aktuellen Uebungsblatt beschaeftigt. Bravo! Aber die Kommentare lassen vermuten, dass ein entscheidender Punkt aus Tip 1 und 2 noch nicht verstanden wurde:

Eine Zeile gilt noch _nicht_ als fertig, wenn lokal in der Zeile die richtige Zahl von Froeschen und Kroeten erreicht worden ist, sondern nur wenn die beiden Summen aus Tip 1 ihr jeweiliges Maximum erreicht haben und dann hoffentlich richtig sortiert sind, da sich letzteres dann nicht mehr aendern laesst, ohne in eine Sackgasse zu kommen.

Der Tip 2 bezieht sich ausdruecklich auf den Tip 1 und wird auch von folgendem wichtigen Hinweis reflektiert:

``Daraus läßt sich folgende wichtige Folgerung gewinnen: Sobald eine Zeile die beiden Maxima der Summen aus dem Tip 1 erreicht hat, kann sie nicht mehr umsortiert werden.''

Dieser Punkt gilt in jedem Fall und ist keine Hypothese!

Und wer sich ueber ``"You are stuck", ob wohl es noch Zugmöglichkeiten gibt.'' wundert, hat leider Tip 1 nicht verinnerlicht.

- afb


169.)

Sun Jul 10 13:21:15 2005
der kommentar mit dem fies war keineswegs böse gemeint...
aber noch ne kleine idee für nen netten verdienst deinerseits, richte doch in den nächsten semestern eine gebührenpflichtige ergebnis-hotline ein um solche tage zu überbrücken, würde sich bestimmt lohnen ;-)
genug solcher komischer ideen, ich werde das forum nicht weiter mit meinen
gedanken füttern...

Keine Sorge, ich habe den Kommentar auch nicht böse aufgefasst.

Das mit der Hotline ist eine gute Idee. Von dem Erlös lade ich die Tutoren dann zum Hummer-Essen ein, denn zumindest zwei von ihnen können es ja jetzt (kleiner Insider-Gag aus der Korrketur gestern).

- nh


168.)

Sun Jul 10 12:09:19 2005
Fair is foul and foul is fair, hover through the fog and filthy air...

Shakespeare, "Macbeth"

Und jetzt???

- nh


167.)

Sun Jul 10 08:18:14 2005
Hi,
Tipp 2 gilt nur zumindest nur eingeschränkt, da z.B. die mittlere Zeile/Spalte auch als Erstes fertiggestellt werden kann, solange später das mittlere Feld nur temporär wieder besetzt wird.

Sind Sie wirklich sicher, daß so noch eine Lösung erreicht werden kann?

Wie in Tip 2 beschrieben, handelt es zunächst um eine Hypothese von uns, die wir durch ein separates Programm haben verifizieren lassen. Wir lassen uns gerne eines Besseren belehren, daß es auch anders geht. Wenn Sie also eine solche Lösung gefunden haben, die nicht von außen nach innen vorgeht, dann wären wir sehr neugierig, sie zu sehen!

- nh


166.)

Sun Jul 10 02:34:13 2005
hallo,
ich muß auch sagen das die klausur sehr fair war. allerdings find ich es schon ein bissl fies anzukündigen sie sei korrigiert, aber das ergebnis noch nicht einzutragen. hat der SLC-Server sonntags auch ruhetag;-) die musterlösung noch dazu hat mich doch ein wenig verunsichert... und lob an dich und herrn borchert, ein gelungenes oberonabschiedssemester...

Der SLC-Server hat zwar auch sonntags Dienst, aber irgendwie müssen die Klausurergebnisse ja erst noch da 'rein kommen. Nach mehr als 7 Stunden Korrektur (abens um halb elf waren wir fertig) ist die Konzentration völlig dahin - dann nochmals 230 Matrikelnummern nebst erzielten Punkten einzutragen - da wären jede Menge Fehler vorprogrammiert. Und das finde ich wesentlich fieser, als Euch auf Montag zu vertrösten.

Außerdem wollen wir uns einige "Wackelkandidaten" nochmals näher ansehen, vielleicht ist ja noch was zu machen.

'S hat also nichts mit "fies" zu tun - letztlich soll es zu Eurem Vorteil sein.

Ach ja: Und danke für's Lob :-)

- nh


165.)

Sat Jul 9 23:30:16 2005
"Fair" ist OK!

Meine Meinung!

- nh


164.)

Sat Jul 9 22:24:12 2005
das war ja geschenkt ;-)

"Geschenkt" würde ich nicht sagen, vielleicht aber "fair", weil wir uns - wie versprochen - eng an die Demoklausur gehalten haben.

- nh


163.)

Sat Jul 9 19:36:20 2005
Hallo erstmal

ich wollte nur wissen ob die klausurergebnise heute noch im slc eingetragen werden.

Die Klausur haben wir gerade (Samstag abend, verdammt spät...) fertig korrigiert, aber die Ergebnisse kommen erst am Montag ins SLC.

Sorry, aber dafür reicht die Konzentration heute nicht mehr!

Ach ja: Und ich habe die Ergebnisse auch nicht auswendig gelernt, so daß ich vor Montag wirklich nichts zu den individuell erreichten Punkten sagen kann.

- nh


162.)

Sat Jul 9 16:42:47 2005
Hallo,
wollte euch mal ganz ganz viel Spaß beim korrigieren unserer geistigen Ergüsse wünschen.

Danke, danke, den haben wir auch gehabt :-)

- nh


161.)

Sat Jul 9 15:23:06 2005
Gibts dann nächsten Donnerstag auch gleich die Scheine? Oder muss man die in der HeHo abholen?

Die Scheine und die Klausuren (die bestandenen und die nicht benoteten) gibt es entweder am Dienstag in der Vorlesung oder am Donnerstag in den Übungen!

- nh


160.)

Sat Jul 9 09:11:34 2005
Herzlichen Dank!! ;-)

Bitte bitte!
(Wofür eigentlich?)

- nh


159.)

Sat Jul 9 08:59:52 2005
Fängt die Klausur eigentlich um 10 ct. oder st. an?

Die Klausur fing gestern s.t. an... ;-)

- nh


158.)

Fri Jul 8 21:53:53 2005
*angst* *zitter*

... wir auch... denn wir müssen das morgen alles korrigieren...

- nh


157.)

Fri Jul 8 21:12:09 2005
Hallo ich hätte nochmal ne Frage zum Feedback 141! Was genau soll da bei der Lösung falsch sein! Is die ganze Aufgabe falsch oder nur eine Teilaufgabe ? Ich raff da nich so ganz durch!

In den Antworten c1) und c2) der Aufgabe 6 ist von Projektion die Rede, obwohl aus den Typdefinitionen eindeutig hervorgeht, daß es sich um Pointer handelt. Und in Zusammenhang mit Pointern gibt es keine Projektion!

- nh


156.)

Fri Jul 8 16:10:37 2005
hallo
herr borchert hat in der vorlesung etwas zu den scheinen gesagt die benotet werden. ändert sich dann etwas an den anforderungen, oder gilt auch hier 50 % der möglichen punkte reichen zum bestehen
beste grüße
bis morgen

Die Kriterien an die Klausur sind unabhängig davon, ob sie benotet wird oder nicht. 50% der Punkte sind eine 4.0 (ausreichend), und mit gleichmäßigen Abstufungen geht es dann hoch bis zu 1.0 (ab 100 Punkte - epsilon).

- nh


155.)

Fri Jul 8 14:55:14 2005
hallo,

hab grad gedacht ich schau mir mal die 2004er klausur an, dabei hab ich schmerzlich die lösungen zu den aufgaben 5b und 6b mit der komplexität vermisst. bin ich vielleicht zu blind oder sind die wirklich nicht da? wäre sehr nett wenn du mir sagen könntest was da rauskommt.

Tatsächlich, die Lösungen zu den beiden Aufgaben stehen wirklich nicht online! Da ich nicht weiß, ob das vielleicht einen Grund hat und dies zur fortgeschrittenen Stunde heute auch nicht mehr klären kann, möchte ich dort aber auch nicht eingreifen... Sorry!

- nh


154.)

Thu Jul 7 22:15:46 2005
Hallo, wird die Musterloesung der Demoklausur noch online gestellt? ... Spass ;) Will fragen ob es vorgesehen ist, einen Klausureinsicht-Termin zu veranstalten? Viele Gruesse

Da es sich bei allen Klausuren in diesem Semester ja nur um "Scheinklausuren" handelt und nicht um Vordiplomsprüfungen (wie im letzten Semester bei den E-Technikern), geben wir die Klausuren heraus (nächsten Donnerstag in den Übungen) - zumindest jene Klausuren, die bestanden und nicht benotet sind. Bei nichtbestandenen oder benoteten Klausuren findet dann in der Tat eine Klausureinsicht statt, den Termin geben wir dann noch bekannt.

- nh


153.)

Thu Jul 7 17:40:59 2005
Hallo!

Ich halte gerade die Klausur AI II vom SS04 in Händen, sie umfasste 8 Aufgaben mit insgesamt 100 Punkten. Zum Bestehen des Scheines genügten 40 Punkte. Wird es dieses Jahr auch so sein?

Viele Grüße

Nein, diesmal gibt es zwar auch 100 Punkte, zum Bestehen der Klausur müssen aber diesmal wirklich 50% (für diejenigen, die Prozentrechnen erst im Hauptstudium hören: das macht dann 50 Punkte ;-) ...) erreicht werden!

- nh


152.)

Thu Jul 7 17:11:55 2005
Welche Hilfsmittel sind denn nun definitiv zugelassen, gibt es exiplizite Ausnamhmen (z.B. Musterlösungen der Übungsblatter, Teile von anderen Skripten usw.)?

Ich weiß, das wurde auch schon mehrfach erwähnt, jedoch - wie das ebe n so ist - während man es hört scheint alles klar zu sein, kaum unterh ält man sich mit seinen Studienkollegen darüber, gehen die Meinungen p lötzlich weit auseinander und jeder hat was anderes gehört.

Und ich sag' noch: es war heute vieeeeel zu laut im Hörsaal.

Wer schon nicht zuhören kann, kann aber hoffentlich wenigstens lesen - idealerweise dann noch Feedback 113. Die Frage ist nämlich seit zwei Wochen ein echter Dauerbrenner!

- nh


151.)

Thu Jul 7 11:09:26 2005
wann gibt es denn das Bonusblatt, bzw. bis wann ist es zu bearbeiten?

Das Blatt habe ich gerade online gestellt (Blatt 11). Das Blatt ist ein ganz normales einwöchiges Blatt - Abgabe ist daher nächste Woche (spätestens: 14.07.05).

- nh


150.)

Wed Jul 6 22:06:43 2005
besteht die möglichkeit dass du das mit den dynamischen und statischen Datenstrukturen morgen nochmal in den Übungen erklärst? so 100%ig ist mir das noch nicht klar..

Ja sicher, kein Problem! Das kann ich morgen / heute in den Übungen gerne nochmals erklären.

- nh


149.)

Wed Jul 6 17:53:54 2005
aha...! Ok, die Antwort stellt mich soweit zufrieden:). Aber was wäre wenn wir statt Zeigern dann direkt die Records hätten? Dann wäre der Compiler also böse wegen dem VAR?

(wie gut dass dieses Feedback anonym bleibt ^^)

Liebe Grüße

Wenn man direkt mit Records arbeitet statt mit Pointern (und auch weiterhin mit dem VAR), dann ändert sich interessanterweise nichts!

Der Compiler ist zufrieden, aber zur Laufzeit kracht es. Das entspricht genau dem, was auf dieser Seite des Skripts gemeint ist! (Beachte insbesondere den letzten der vier Punkte auf dieser Seite im Skript!)

- nh


148.)

Wed Jul 6 16:56:36 2005
Hallo,
hätte da mal ne Frage zu Typ-Erweiterungen. Und zwar steht im Skript, dass bei VAR-Parametern keine Projektion stattfindet. Müsste dann bei der Demo klausur A.8 d) nicht ein Compilerfehler auftreten? Weil ich ja den t3, der zwar ne Erweiterung von t2 is dem t2 zuweis, welcher aber in der Prozedur oben mit VAR deklariert wurde... (vielleicht hab ich's ja auch einfach falsch abgeschrie ben... dass es in der Laufzweit sowieso nich geht weil t3 und t4 sich nich mögen is klar...)

Danke,
hoffe du verstehst was ich sagen will ;)

Wir haben es in dieser Aufgabe mit Pointern zu tun, und im Zusammenhang mit diesen gibt es keine Projektion! Deshalb ist der Compiler zufrieden, denn er sieht in t3 eine Erweiterung von T2 und akzeptiert diese!

- nh


147.)

Wed Jul 6 11:03:04 2005
Hallo,
wird eigentlich noch eine Musterlösung zur Demoklausur ins Netz gestellt?

Wenn die Frage als Scherz gedacht war: Haha, köstlich!

Wenn sie ernst gemeint war: Wo haben Sie denn die letzten zwei Wochen verbracht? In unseren Veranstaltungen jedenfalls nicht, oder? Dort ist es ja nun hinreichend oft gesagt worden, daß es keine Lösung der Demoklausur im Netz gibt. Und auch hier im Feedback ist dies besprochen worden (Feedback 128 und Feedback 123).

- nh


146.)

Tue Jul 5 20:06:35 2005
Warum ist die Lösung der Aufgabe 4a der Demo-Klausur ein Baum und keine Hash-Tabelle, wenn in der Aufgabenstellung schon immer von Schlüsseln die Rede ist!
Die geforderten Eigenschaften könnten doch genauso, wenn nicht noch besser mit einer Hash-Tabelle erreicht werden?

Laut Aufgabenstellung ist eine Datenstruktur gesucht, die hinsichtlich der drei genannten Anforderungen besonders effizient ist. Und eine dieser Anforderungen ist das sortierte Ausgeben aller in der Datenstruktur vorhandenen Datensätze.

Wie durchlaufen und sortieren Sie denn effizient einen Hash, um dieser Anforderung zu genügen?

- nh


145.)

Tue Jul 5 18:44:51 2005
Hallo

Wie geht es eigentlich weiter falls man die Klausur und Nachklausur nicht besteht? Nochmals 1. Semester und dann mit Java oder gibt es da sonst noch eine Möglichkeit?

Nein, außer der Nachklausur sind keine weiteren Möglichkeiten mehr vorhanden, so daß ein Nichtbestehen beider Klausuren in der Tat die von Ihnen genannte Konsequenz hätte.

Aber warum denn so negativ? Es sind noch drei Tage Zeit zu lernen! Also: Demoklausur ausdrucken, durchackern, morgen mit Kommilitonen besprechen. Dann wird das am Samstag schon...!

- nh


144.)

Mon Jul 4 17:54:36 2005
Ok!
Ich gebs auf! Ich habs, das geht wirklich aber ich komm da nicht mit!
Die Proceduren sind da schon richtig heftig ineinander verschachtelt!
MFG

Tja, so ist das mit der Rekursion...

Haben Sie jetzt auch die gordischen Knoten aus Feedback 105 im Hirn?

- nh


143.)

Mon Jul 4 16:39:19 2005
Hallo nh,
also ich hab mir gerade die Aufgabe 4 der Klausur aus dem SS04 angesehn!
Und die Musterlösung stimmt wirklich?
Hat diese Aufgabe eigenlich irgend jemand gelöst?

Ja, die Lösung stimmt! (Beweis: abtippen, compilieren und ausführen ;- ))

Über die Anzahl der richtigen Lösungen weiß ich leider nichts.

- nh


142.)

Mon Jul 4 16:11:36 2005
Hallo

ich wollte mal ein ganz großes Dankeschön loswerden, für die vielen Hilfestellungen, vorallem für das Feedback, das auch Sonntags beantwortet wird!!!

Ja, vielen Dank für den Dank... ;-) - Gerne geschehen!

Aber wie gesagt: So ganz selbstverständlich ist diese Fülle von Hilfestellungen an einer Universität nicht!

(Nur so - als kleiner Tip für alle im Hinblick auf den weiteren Verlauf des Studiums!)

- nh


141.)

Mon Jul 4 15:04:21 2005
Hi, ich wollt nur noch mal fragen welches denn die andere klausur war die wir uns anschauen sollten, von der du meintest unsere würde sich an ihr orientieren? ich glaub es war 2001 oder 2000 aber bin mir nicht mehr sicher....zur Vorbereitung auf die klausur würd ich's echt gern wissen, danke im vorraus

Ganz so habe ich das nicht gesagt...

Ich habe damals (als es die Demoklausur noch nicht gab, aber die ersten Nachfragen bezüglich der Klausur kamen) die Klausur aus dem Sommersemester 2000 empfohlen, weil diese Aufgaben zur Rekursion, zu Zeigern und Listen sowie zur Typerweiterung enthält, die einen sehr guten Eindruck davon geben, wie Aufgaben zu diesen Themengebieten aussehen könnten.

Daran orientieren werden wir uns aber nicht unmittelbar! Die Demoklausur ist deutlich näher am "Original"!

Ach ja: Und wie in den Übungen am Donnerstag gesagt, enthält die Klausur aus 2000 einen dicken Fehler in der Lösung zu Aufgabe 6: Die dort erwähnte Projektion findet nicht statt, da es sich dort um Pointer handelt, und auf diese wird die Projektion nicht angewendet!

- nh


140.)

Sun Jul 3 12:37:31 2005
Noch eine Frage zu der Klausur:
Wird es sich um die selben Themengebiete (mit Gewichtung) handeln, wie bei der Probeklausur, oder kommt noch weiterer Stoff (wie etwa Backtracking) dazu??

Die Themengebiete nebst deren Gewichtung in der "richtigen" Klausur entsprechen denen der Demoklausur.

Was das Backtracking angeht, so haben wir ja zu Beginn des Semesters so eine Art "Backtracking light" gemacht, als wir mit Rekursion und Permutationen gearbeitet haben (vgl. Restaurant-Aufgabe auf Blatt 2). So etwas sollte auf jeden Fall "sitzen".

- nh


139.)

Sat Jul 2 18:34:22 2005
hi nobbi

ich versteh das nicht mit der ausgeglichenheit nach gewicht.
aus dem Skript werde ich nicht so ganz schlau.
im skript steht ja "Wenn ein Baum T nach dem Gewicht ausgeglichen ist, so folgt daraus, daß er auch in der Höhe ausgeglichen ist."
Was ist denn jetzt aber wenn zb der linke teil vom baum immer beidseitig besetzt ist und auf dem rechten teil des baums nur immer die rechte hälfte? dann gilt ja | card(T1) - card(T2) | <= 1 und für die höhe | h(T1) - h(T2) | <= 1... wenn wir jetzt beispielsweise rechts und links je 7 elemente hätten(also gleiches gewicht->formel erfüllt) aber für die höhe ergibt sich | h(T1) - h(T2) | = 4 was nicht der obigen aussage entspricht? danke für bearbeitung meines anliegens ;)

p.s.: hoffe ich habe mich einigermaßen verständlich ausgedrückt!

Sofern ich die Frage richtig verstanden habe, wird hier eine ganz entscheidende Sache übersehen:

Das mit der Gewichts- und Höhenausgeglichenheit muß nicht nur für den "Hauptbaum" sondern auch für jeden Teilbaum gelten. Und wenn man auf der rechten Seite immer nur alles auch in die jeweils rechten Teilbäme einfügt, dann bekommt man dort ziemlich schnell die Situation, daß der rechte Teilbaum gar nicht mehr ausgeglichen ist (weder nach Gewicht, noch nach Höhe). Und damit ist dann der "Hauptbaum" auch nicht mehr ausgeglichen.

- nh


138.)

Sat Jul 2 16:40:30 2005
Wenn ein Baum nach dem Gewicht ausgeglichen ist, ist er auch nach der Höhe ausgeglichen!
Kann man auch folgern, dass wenn ein Baum nicht nach dem Gewicht ausgeglichen ist, er dann auch nicht nach der Höhe ausgeglichen ist?

Na, da hat wohl jemand in der ersten Woche die Mathe-Vorlesungen nicht besucht (als es um Aussagenlogik ging).

Wie war das nochmal?

A => B kann man auch schreiben als ~B => ~A

Auf Ihre Frage angewandt:

Wir wissen: Aus Gewichtsausgeglichenheit (GA) folgt Höhenausgeglichenheit (HA), also: GA => HA
Und wir wissen, daß die Rückrichtung hingegen nicht gilt!

Ihre Frage formal lautet
~GA => ~HA, anders geschrieben: HA => GA

also: Widerspruch!!! falls Sie recht hätten!

- nh


137.)

Sat Jul 2 15:37:23 2005
Frage zu Aufgabe 6a aus der Demoklausur:
Kann es sein, dass sich die Aufgabenstellung ein wenig widerspricht?
"in angegebener Reihenfolge und nach Namen sortiert in einen binären Baum"!

Nach was soll man jetzt sortieren?
Den Baum in pre- in- oder postorder?

Das "in angegebener" Reihenfolge bezieht sich darauf, daß die Comicfiguren nacheinander in den Baum kommen sollen, angefangenen mit Garfield. Es ist doch schließlich wichtig, mit wem man anfängt, den Baum aufzubauen, denn der Baum sieht am Ende völlig anders aus, wenn man zum Beispiel mit Trick statt mit Garfield anfinge. Also ist dieser Teil der Aufgabenstellung so gemeint, die Comicfiguren in genau der angegebenen Reihenfolge nacheinander in den Baum zu stecken.

Es gibt bei Bäumen keine Pre-Order, Post-Order und In-Order-Sorierung, sondern lediglich eine Sortierung. Die Sache mit Pre-, Post- und In-Order bezieht sich auf die Traversierung des Baumes.

- nh


136.)

Sat Jul 2 15:34:44 2005
stimmt es eigentlich dass man ab dem WS in AI I mit java programmiert?

Ja, das stimmt!

- nh


135.)

Sat Jul 2 14:59:40 2005
Leider hatte ich am Di keine Zeit für die Besprechung der Demo-Klausur, worauf ich mir dann den Mitschrieb von jemand anderem kopiert hab und jetzt nicht w eiß warum bei Aufgabe 5c) gerade O(n^2) heraus kommt! :-(

Wie kommt man auf das Ergebnis?
MFG

Diese Frage habe ich nun schon öfters gestellt bekommen. Ich werde sie am Donnerstag in den Übungen für alle beantworten.

- nh


134.)

Sat Jul 2 13:34:23 2005
Zitat aus der Aufgabenstellung:
Um diesen Zustand zu erreichen gelten folgende Spielregeln:

* Frösche dürfen nur nach rechts oder nach unten ziehen.
* Kröten dürfen nur nach links oder nach oben ziehen.
* Ein Tier kann in einem Zug über (genau) ein Tier der anderen Gattung springen.
* Die letztgenannten vier Punkte gelten natürlich nur dann, wenn das Zielfeld frei ist.

Also ich komme bei besten Willen nur auf drei vorher genannte Punkte...

1:0 für Sie!

Ich hatte diese Stelle zunächst anders formuliert (da waren es vier Punkte) und danach vergessen, den zitierten Satz anzupassen.

Wenn Sie möchten, kann ich Ihnen nun einen Punkt für Erbsenzählerei gutschreiben ;-)

- nh


133.)

Sat Jul 2 12:49:39 2005
Zunächst einmal vielen dank für die Demoklausur, damit kann man sich echt gut auf die kommende Kalusur vorbereiten!
Aber ich hätte da eine kleine Bitte bezüglich der Fragestellung!
Bei Aufgabe 4, insbesondere 4c, der Demo, bin ich der Meinung, dass man ohnen die Musterlösung absolut nicht weis, was die Prozedure da machen soll!
Nach dem Blick auf die Lösung wird dann doch einiges klar!
Da ich davon ausgehe, dass ich während der Prüfung gerade keine Musterlösung zur Hand habe, wäre ich sehr dankbar, wenn die Aufgaben ein bischen begreifbarer formuliert wären!(zumindest besser als 4c!) Viele Grüße

Okay, mal schauen, was sich machen lässt... ;-)

- nh


132.)

Fri Jul 1 23:00:18 2005
Vielen Dank für die Unterstützung. Nur scheint der compiler die angegebenen Module nicht zu kennen:

"symbolfile for module "Terminals" not found (compilation stopped)"

"symbolfile for module "UnixTerminals" not found (compilation stopped)"

Muss man für diese beiden Bibliotheken (Module) vielleicht einen speziellen Pfad angeben?

In der Tat fehlt hier noch eine wichtige Option (und man moege es mir verzeihen, dass ich diese zunaechst vergessen habe). Einmalig muss das makefile mit mmo unter Verwendung folgenden Befehls angepasst werden:


   mmo -u makefile +l terminals


Das gilt natuerlich nur unter SPARC/Solaris, bei unserer Linux-Version ist das nicht notwendig. Der Hintergrund ist der, dass die Bibliotheken recht umfangreich sind und weniger haeufige verwendete Module in separate Bibliotheken ausgegliedert sind.

- afb


131.)

Fri Jul 1 21:48:06 2005
Wie kann ich System-Call absetzen?
Mit "SysArgs.Argument" komme ich irgendwie nicht sehr weit...

Ich dachte daran, aus Oberon das Unix-Kommando "clear" aufzurufen. Mit "SysArgs" kommt man da in der Tat nicht allzu weit. Aber meine Idee ist ohnehin nicht die beste Lösung... (siehe nachfolgenden Kommentar von Andreas Borchert.)

- nh

[... bezogen auf Feedback 130 ...] (nh)

Zu empfehlen ist hier das Modul Terminals und konkret des Streams Terminals.console. Damit das funktioniert, muss UnixTerminals mit importiert werden. Das Modul bietet u.a. auch Terminals.SetCursor oder Terminals.ClearScreen an, die bei dem genannten Problem helfen sollten. Details finden sich in den zugehoerigen Manualseiten.

- afb


130.)

Fri Jul 1 20:16:35 2005
Für das aktuelle Übungsblatt (Backtracking) möchte ich gerne die einzelnen "Schritte" bzw. das geänderte Spielfeld nach einer Bewegung gerne ausgeben. Um die Ausgabe nicht zu überfluten, würde ich gerne die jeweils letzte Ausgabe auf dem Bildschirm mit der jeweils folgenden überschreiben bzw. ersetzen. Wie springe ich nach 5 Zeilen Ausgabe wieder in die "1. Zeile" zurück?

*Im Vorraus 'DANKE' für die Unterstützung*

Das ist mit den Mitteln, die uns derzeit zur Verfügung stehen, so nicht möglich. Die Ausgabe am Bildschirm ist zeilenorientiert, ähnlich wie bei einem Drucker. Der zieht das Papier ja auch nur einmal durch und kann nicht mehr zurück. (Vgl. dazu auch Feedback 90!)

Eine Möglichkeit, den gewünschten Effekt zu erzielen, wäre, den System-Call "clear" abzusetzen, der jedes Mal vor der Ausgabe den Bildschirm löscht.

- nh


129.)

Fri Jul 1 20:13:32 2005
Wie viel Übungspunkte muss man mindestens haben?In SLC steht,dass maximal 134 Punkte zu erreichen sind,und wenn ich die Punkte aus den Übungsblättern berechne,ergibt sich insgesamt 130(incl. 5 Bonuspunkte).

Also, die Sache mit den Punkten ist bei uns so:

100% der "regulären" Punkte sind 125 Punkte.

Desweiteren gab es zwei Mal Bonuspunkte zu verdienen (4 + 5 = 9 Punkte). Außerdem wird in der nächsten Woche noch das Blatt 11 erscheinen, das freiwillig ist, aber nochmals bis zu 10 Zusatzpunkt (also auch Bonuspunkte) bringen kann.

Ergo: wer mindestens 63 Punkte auf seinem Konto (im SLC, nicht in Flensburg!) hat, bekommt von uns nächsten Samstag blütenweißes, frisch bedrucktes und sorgfältig geheftetes Klausurpapier überreicht.

- nh


128.)

Fri Jul 1 15:22:47 2005
Ich finde das sehr schade, dass die Lösung der Demoklausur nicht im Internet veröffentlicht wird. Zumal der Aufwand dafür ja nicht gerade sehr groß ist.(Im Vgl. zu Übungsblaettern, Skript, gesonderten Freitag-Lehrveranstaltungen, etc...)

Ich hatte fest damit gerechnet, das die Lösung- wie auch zur Demoklausur im 1.Semester- im Internet veröffentlicht wird. Sonst wäre ich sicher am Di gekommen. E-techniker waren da sicherlich nicht viele da, weil alle dachten die Lösung würde ins Netzt gestellt werden, folglich ist es schwierig als E-Techniker jetzt eine Lösung zu bekommen. Ich finde es bestraft gerade die, die gute Leistungen in den Übungen bringen, ohne jedesmal zu jeder Veranstaltung zu kommen. Ich hab keine Bedenken, die Klausur nicht zu bestehen, finde es jedoch ungerecht erst zu schreiben es wird veröffentlicht und dann im nachhinein das zu ändern.

MFG i.a. einiger E-Techniker

Drei Dinge muß ich zu diesem Feedback dringend loswerden:

1.) Ich habe zwar auf die Frage in Feedback 123 zunächst fälschlicherweise mit "Ja" geantwortet, aber das war am Mittwoch (siehe Zeitstempel), also bereits nach der Besprechung. Sonst habe ich mich zu diesem Thema nie geäußert, so daß es also nicht sein kann, daß irgendwer aufgrund einer Aussage von mir dachte, er brauche nicht zu kommen.

2.) Nur weil es im letzten Semester eine Musterlösung der Demoklausur gab, muß das ja nicht schon wieder so sein. Gab es im letzten Semester denn eine Besprechung? Nein! Das war diesmal der Ersatz für die Musterlösung!

Damit sind wir bei

3.) Einige Leute haben mittlerweile eine Anspruchshaltung entwickelt, die nicht mehr feierlich ist. Sie gehören offensichtlich dazu, insbesondere wenn Sie unterstellen, der Aufwand für die Lösung sei ja nicht so groß. Kann schon sein, aber er wäre zusätzlich und damit doppelt, denn es gab ja bereits die Besprechung.
Musterlösungen der Übungsaufgaben, die zur Hälfte aus Kommentaren (nach Wunsch: auf deutsch!) bestehen, damit jeder, der Donnerstags sonstwo ist, nur nicht in den Übungen, auch noch 'ne Chance hat, Auffrischungstutorien, Demoklausuren, Besprechung der Demo-Klausur und und und... - das alles sind zusätzliche Leistungen von Herrn Dr. Borchert und mir, die weit über das hinausgehen, was man sonst an einer Universität erwarten darf. Statt in jedem dritten Feedback irgendwas neues in teilweise unverschämten Ton zu fordern (damit sind Sie jetzt nicht gemeint), täte es manchen (wohlgemerkt: bei weitem nicht allen) auch mal gut, darüber zu reflektieren, ob wir uns nicht bereits seit zwei Semester alle Mühe gegeben haben, jedem hier eine Chance zu geben und viele Wünsche individuell zu erfüllen.

Ein ganz wichtiges Kriterium für das erfolgreiche Studieren ist die Eigeninitiative. Ohne diese wird das nichts mit dem Studium! Und eigeninitiativ ist es nicht, im Feedback zu meckern, daß man die Lösungen nicht auf dem goldenen Tablett nach Hause getragen bekommt, sondern stattdessen zu reklamieren, es sei "schwierig", eine Lösung zu bekommen. Fragen Sie Ihren Tutor nach einem WiMa oder einem WiPhy in einer seiner Gruppen, der die Lösung hat, schreiben Sie dieser Person eine freundliche E-Mail, und kommen Sie am Dienstag zur Vorlesung. In der Pause geht's ab zum Kopierer mit der Lösung des freundlichen WiMa / WiPhy - und schon ist die Sache geritzt.

So läuft das mit dem Studium!

- nh (der das mal loswerden wollte)


127.)

Fri Jul 1 14:34:01 2005
es gibt schon leute, die danach noch ne 'vorlesung' haben, bei mir bspw ein kurs des zsp. aber bin ich doch der meinung, dass man sich die lösung der demoklausur auch von seinen kommilitonen besorgen kann. ist zwar ein wenig mehr aufwand, aber wems wichtig ist, sollte einem das wert sein.

100% ACK!

- nh


126.)

Fri Jul 1 11:40:40 2005
Hi,

nur so als Anmerkung zu Nr. 125: Ich hatte zu diesem Termin noch Vorlesung (Wirtschaftsrecht; 18-20 Uhr). Aber man kann sich ja auch die Lösungen von freundlichen Kommilitonen kopieren.

Ja, so sehe ich das auch! Sicherlich ist immer mal der ein oder andere verhindert, aber das lässt sich nun mal leider nicht vermeiden. Aber dann findet sich normalerweise immer jemand, der einem mit Kopien und / oder einem Bericht aus der Veranstaltung weiterhilft.

- nh


125.)

Fri Jul 1 08:42:48 2005
Tja, und die Leute die am Dienstag nach der eigentlichen Vorlesung keine Zeit mehr hatten haben halt Pech gehabt :-(

Sehen Sie: Kaum kommt man denen entgegen, die sich durch die Freitagstermine benachteiligt fühlen, schon meckern die nächsten.

Allen auf einmal kann man es bei einer Gruppenstärke von > 100 halt nicht recht machen. Es soll aber keiner sagen, wir hätten's nicht versucht!

Dienstags ab 18 Uhr hat bestimmt niemand mehr andere Vorlesungen, Übungen oder Tutorien. Aber auch noch alle Sportvereintermine, Kegelabende und Rendevouz mit der neuen Nachbarin zu berücksichtigen ginge ja wohl doch etwas zu weit, oder?

- nh


124.)

Wed Jun 29 18:37:03 2005
Vielen Dank an Herrn Dr. Borchert für die gelungene Besprechung der Demoklausur.

Wenn sich jetzt die echte Klausur in diesem Rahmen und Schwierigkeitsgrad bewegt, wären wir alle sehr froh. :-)

Die Klausur wird sich ganz sicher in diesem Rahmen und in diesem Schwierigkeitsgrad halten!

- nh


123.)

Wed Jun 29 13:30:54 2005
Wird die Lösung der Demoklausur in der Internet bekommt?
MFG

Sorry, mein "Ja" auf diese Frage war etwas voreilig...

Es wird keine Lösung der Demoklausur im Internet geben, weil die Klausur stattdessen ja am Dienstag besprochen wurde.

- nh


122.)

Tue Jun 28 21:57:56 2005
Jetzt da wir uns langsam dem Ende von AI 2 zu neigen und das Skript für die Vorlesung sich doch nicht mehr groß ändern wird wollte fragen ob es wieder wie in AI 1 möglich wäre ein Inhaltsverzeichnis ins Netz zu stellen?
MFG

Ich denke, daß lässt sich machen!

- nh


121.)

Tue Jun 28 10:00:56 2005
hallo und auch erstmal ein großes Dankeschön für die Demo-Klausur. Es ist wirklich hilfreich, mal zu sehen, wie der Stoff abgefragt werden kann und worauf Schwerpunkte gesetzt werden.

Aber eine Frage habe ich noch: Wird die Lösung der Demoklausur in der Vorlesung oder in den Übungen besprochen?
Oder gibt es auch eine Musterlösung im Netz?

Bitte, bitte! Der Dank dafür gebührt Andreas Borchert!

Heute nach der Vorlesung (28.06., 18:00) wird die Demoklausur im H20 besprochen.

- nh


120.)

Mon Jun 27 23:22:27 2005
ich wollte mal nachfragen, wer den wettbewerb in blatt 8 um die beste db gewonnen hat.

Uns haben eigentlich alle Einsendungen sehr gut gefallen, so daß ein Sieger nach objektiven Maßstäben nicht zu ermitteln war.

Deshalb gab es für alle Teilnehmer am Wettbewerb die vollen Bonuspunkte!

Allen Teilnehmer nochmals ein herzliches Dankeschön für's Mitmachen!

- nh


119.)

Mon Jun 27 12:46:15 2005
ich wollt mal fragen, ob in der Klausur noch was zur BNF-Grammatik drankommt, weil in den Klausuren der letzten SS war da immer noch ne Aufgabe...

Nein, zur BNF-Grammatik kommt nichts mehr dran.

Im letzten Sommersemester lag der Themenschwerpunkt etwas anders als in diesem, deshalb tauchen die Grammtiken in der Klausur nochmals auf.

Bei uns ist dies aber nicht der Fall!

- nh


118.)

Sun Jun 26 16:36:10 2005
sehe ich das richtig, dass man bei diesem Uebungsblatt 5 .om Dateien schreiben muss?

Nein, ich zähle nur vier:

- DBLoader
- Database
- Game
- NameObjects

Die Module "Hashes" und "Main" sind ja bereits vorgegeben.

Und diese Module sind übrigens auch pro Gruppe zu schreiben, nicht pro Nase!

- nh


117.)

Sun Jun 26 01:41:12 2005
zu 114)
wie kann es möglich sein, dass im filmhash für schauspieler der film schonmal drin steht, ich hab gedacht in der einzulesenden datei steht jeder film nur einmal drin?

Ja, der Einwand ist berechtigt - zumindest, was unsere Datenbank angeht. Aber zum Programmieren gehört ja auch immer, den Fall abzufangen, daß die Datenbank nicht 100% integer ist.

- nh


116.)

Sat Jun 25 19:19:56 2005
hallo,
wollte nur mal wissen ob man sich für die klausur anmelden muss oder ob man schon per slc dafür angemeldet ist?

Eine Anmeldung für die Klausur ist bei uns nicht erforderlich. Es genügt (oder besser: es ist notwendig und hinreichend ;-)), wenn man sich im SLC für die Vorlesung registriert hat.

- nh


115.)

Sat Jun 25 15:26:17 2005
Ich habe einige Fragen.

1.Sind die Aufgaben in Demo-Klausur ähnlich wie die Klausuraufgaben?

2.
IF number # NIL THEN
   IF j = 0 THEN
      number.flag := FALSE; j := i;
   END;
   IF (i = 2) & number.flag THEN               (**)
      Write.Int(number.i, 1); Write.Ln;
   END;
   MoreFun(number.next, j-1);
END;


In der Zeile (**) steht i=2. Sollt es nicht j=2 sein?

Vielen Dank!

1.) Selbstverständlich! Welchen Sinn machte sonst die Demo-Klausur?

2.) Nein, der gegebene Algorithmus ist korrekt!

- nh


114.)

Sat Jun 25 14:29:22 2005
Was ist die Aufgabe der Prozedur Associate im Modul Database? Was bedeutet "stellt die Beziehung her"?

Diese Prozedur bekommt genau einen Schauspieler und genau einen Film übergeben und erwirkt es "irgendwie", daß man weiß, daß dieser (übergebene) Schauspieler in dem (übergebenen) Film mitgespielt hat.

Wenn Sie sich an den Vorschlag auf dem Übungsblatt halten, dann bedeutet dies konkret nichts anders, als daß der Film in den entsprechenden Hash des übergebenen Schauspielers eingefügt wird. (Wichtig: vorher d'rauf achten, daß er (der Film) nicht schon bereits drin steht!)

- nh


113.)

Fri Jun 24 11:03:11 2005
Hallo!

Welche Hilfsmittel sind denn in der Klausur erlaubt?

In der Regel darf in der Klausur alles außer elektronischen Hilfsmitteln (Laptop / Handy usw.) verwendet werden. Insbesondere also

- Skript inkl. Beispiele
- Übungsaufgaben mit Musterlösungen und/oder eigenen Lösungen
- eignene Aufschriebe aus Vorlesung und Übung

Achja: der große Bruder, der bereits mit dem Informatik-Studium durch ist, muß natürlich auch zu Hause bleiben...!

- nh


112.)

Fri Jun 24 10:58:48 2005
mahlzeit...
da haben wirs ja wieder...
das eigentlich neue (hash) ist schon fix und fertig und der rahmen um die uebung viel zu komplex, als dass man sich auf seinen lerneffekt konzentrieren koennte. unter umstaenden sieht es ein uebungsleiter oder dozent als kinderkram an (das laeuft doch nebenher), dafuer zu sorgen, dass die kiste nicht abschmiert, aber der gemeine student verwendet doch wertvolle ressourcen darauf, die ganzen wertvollen tipps zu beachten und zu verstehen. implementierung eines doppelten hashes, super idee, aber nicht mit dem ganzem klimbim drumherum.

mich wuerde am naechsten donnerstag mal ein review ueber das gesammelte tutorenfeedback interessieren. moechte mal den vagen tipp abgeben, dass unter 30% der studenten dieses aufgabenmonster bezwingen. zumal der eine oder der andere sich derzeit auch auf die eine oder andere (aiII-fremde) klausur vorbereitet.

in diesem sinne...

Bevor man die Aussage trifft, man könne sich nicht "auf den Lerneffekt konzentrieren", weil der Rahmen um die Übung "viel zu komplex" sei, muß man doch erstmal sicher sein, was überhaupt der Lerneffekt dieses Blattes sein soll.

Nachdem Hashes im letzten Blatt selber geschrieben wurden, sollten diese nun nicht mehr im Mittelpunkt der Aufgabe stehen, sondern vielmehr deren Anwendung im Rahmen einer (mehr oder weniger realitätsnahen) Aufgabe.

Natürlich wird man in der beruflichen Zukunft wohl nicht mehr Filme und Schauspieler assoziieren müssen, aber was steckt denn hinter dieser Aufgabe? Letztlich soll man

a) gegen vorgegebene Schnittstellen programmieren, dabei
b) über die Verwendung von "Hash von Hashes" nachdenken und
c) das ganze einigermaßen speichersparend programmieren.


Das ist der gewünschte Lerneffekt in diesem Blatt, nicht die eigene Implementierung von Hashes. Und insbesondere a) ist eine sehr realitätsnahe Aufgabenstellung!

Was die Performance-Geschichte angeht, so habe ich gestern mehrfach in den Übungen betont, man soll mit dem (mittlerweile auf der Homepage verfügbaren) Mini-Beispiel "Dozent/Vorlesung" arbeiten. Das sprengt mit Sicherheit keinen Hauptspeicher - auch nicht bei ineffizienter Implementierung der Module.

Daß die Aufgabe für einen alleine ein wenig sehr umfangreich wird, kann ich nachvollziehen. Aber auch das ist nicht gewollt! Wenn sich jeder aus der Gruppe ein Modul vornimmt, dann sollte es keinen großen Aufwand für jeden Einzelnen bedeuten. Zum Teil bestehen die Implementierungen der Prozeduren aus weniger als f&unf; Zeilen!

- nh


111.)

Thu Jun 23 23:19:32 2005
hallo hab ein kleines frägelein zu aktuellen blatt.

wir sollen da ja für jeden schauspieler noch eine extra hashtabelle machen wo drin steht in welchen filmen er mitgespielt hat. aber soweit ich das verstanden hab dafür keinen weiteren speicherplatz verbrauchen, also kein NEW() mehr machen, oder?

aber wie kann ich dann die Hashesfunktion verwenden für diese Hashtabellen, ich kann ja nicht einfach Hash.Insert aufrufen, dann brauchts ja wieder speicherplatz.

soll ich mir da was eigenes basteln?

Das ist so gemeint, daß man ein "Film-Objekt" nur einmal (mit NEW) erzeugen lassen braucht. Angenommen, dies hat den Variablen-Namen "movie", dann kann man anschließend mit Hashes.Insert das Objekt "movie" zunächst in den Film-Hash und danach in den Schauspieler-Film-Hash einfügen (das klingt übrigens nach einer Aufgabe für die Prozedur "Associate" im Modul "Database"...). Wir haben dann zwei Verweise (bzw. Pointer) auf ein und dasselbe Objekt in die beiden Hashes eingefügt, das eigentliche Film-Objekt aber nur einmal erzeugt. Verweise sind speicherplatzunkritisch!

Sie brauchen sich also nichts "eigenes" zu "basteln", sie können munter mit den vorgegebenen Operationen des Moduls Hash arbeiten!

- nh


110.)

Thu Jun 23 16:07:41 2005
Hallo,

wiso wird kein bz2 Archiv angeboten? Es wuerde bei actresses.list.gz und actors.list.gz jeweils satte 26% Traffic+Speicherplatz sparen! Und wo bekommt man in heutigen Zeiten noch 26%?

Ja, eigentlich haben Sie da Recht... Aber wir haben das Original so zur Verfügung gestellt, wie wir es selber auf der Seite der Internet-Movie-Database gefunden haben.

Es heißt zwar, Geiz sei geil, aber so richtig dekadent Speicherplatz zu verschwenden ist auch ganz amüsant... ;-)

- nh


109.)

Wed Jun 22 20:37:53 2005
hallo
zunächst erstmal danke für die demoklausur.
hab noch eine frage zur klausur:
besteht die möglichkeit dass bnf-grammatiken(AI I) explizit abgefragt werden, also der schwerpunkt einer aufgabe darauf liegt?
vielen dank und weiter so

Nein, BNF-Grammatiken und ähnliche Dinge aus dem ersten Semester werden wir in der Klausur nicht mehr behandeln. Der Klausurstoff beschränkt sich auf die Themen aus diesem Semester.

- nh


108.)

Wed Jun 22 07:33:30 2005
Hallo.

Ich muss jetzt schon nochmal was loswerden:

Könnten die Leute, die unbedingt in der Vorlesung/Übung meinen ihre Mathe-Übungsblätter besprechen/austauschen/abschreiben müssten DAS BITTE WOANDERS MACHEN!!!!

Es nervt einfach ungemein wenn man die ganze Zeit von hinten mit "Ableitung blablabla...", "Integration hier und dort" und "xy Reihe sowieso" beschallt wird, während man sich versucht auf den Dozent zu konzentrieren. Als ob man das nicht sowieso schon zu oft in der Woche hört, in AInf muss das nicht auch noch sein!

Gestern war es v.a. in der ersten Hälfte der Vorlesung fast unerträglich vom Geräuschpegel her. Wenn man sowieso nur Mathe macht und nicht auf die Vorlesung/Übung achtet, warum kommen die Leute dann überhaupt? Nur um anderen auf den Zeiger zu gehen? Die könnten doch sich und uns einen Gefallen tun und entweder

a) nicht in die Vorlesung/Übung gehen, sondern ihre Matheblätter woanders besprechen oder

b) ihre Matheblätter NICHT in der Vorlesung/Übung besprechen, sondern da sich auf AInf konzentrieren und sich für Mathe einen anderen Zeitpunkt/Ort suchen.

Danke!

Da wir doch gerade intensiv mit Zeigern in der Vorlesung und der Übung arbeiten, ist es thematisch ja sehr nahe dran, wenn die Leute, kommen "...um anderen auf den Zeiger zu gehen", wie Sie es formulieren... ;-)))

Aber aus diesem Feedback spricht natürlich auch das Anliegen von uns "da vorne". Denn auch wir haben gegen den Geräuschpegel anzukämpfen - und das schlaucht auf die Dauer!

Also, eine Bitte an die Störer: bleibt doch lieber im NIL oder badet im NIL... aber lasst den Leuten, die etwas mitnehmen wollen eine Chance dazu!

- nh


107.)

Tue Jun 21 12:36:17 2005
Hallo Herr Dr. Borchert,
ich hätte ein dringendes Anliegen an Sie. Wären Sie so nett und würden die genaue Funktionsweise des Vorlesungsbeispieles zu den Hash-Verfahren (Andere Schlüsseltypen) erläutern. Vor allem die Betrachtungsweise mit dem Hintergrund der Verschiebung von Bytes,was mir persönlich nicht verständlich geworden ist. Ich wäre Ihnen sehr verbunden.

Ich werde die Frage gleich nach dem Mittagessen mal an Andreas Borchert weitergeben.

- nh


106.)

Tue Jun 21 09:53:29 2005
Wann ist eigentlich der "große Tutoriumstag"? In der Woche vor der Klausur, so Montags oder Dienstags?

Was ist denn das?

Wir hatten ja vor, am 01.07. im Rahmen eines Auffrischungstutoriums nochmals Fragen rund um die Klausur / Demoklausur zu besprechen. Meinen Sie das vielleicht?

- nh


105.)

Mon Jun 20 17:19:09 2005
Vielen, vielen dank für die Demoklausur *verbeug*

Obwohl ich jetzt kalte Füsse hab, da sie doch auf den ersten Blick relativ schwer aussieht. Kein Wunder, fängt ja schon mit einer rekursion an. Da hab ich dann danach n gordischen knoten im hirn ;)

Na bitte, das mit der Höflichkeit klappt doch heute schon viel besser ;-)

Zu den Knoten im Hirn: die Klausur ist noch nicht ganz vollständig und wird im Laufe der Woche noch ein wenig erweitert. Lassen Sie also unbedingt noch Platz für ein paar weitere Knoten übrig!

- nh


104.)

Mon Jun 20 16:50:10 2005
Vielen Dank für die Probeklausur!

Bitte, bitte!

- nh


103.)

Sun Jun 19 17:17:09 2005
hallo,
hab mal ne frage, was ist eigentlich der größte wert den

   SHORT(SYSTEM.LSH(1327217883 * hashval, 10 - 32)

liefern kann wenn man alles so macht wie's im skript steht unter "Andere Schlüsseltypen" also mit dieser methode hashwerte für strings bestimmen will.

weil dann müsste ja mein Array mindestens so lang sein, oder hab ich da mal wieder was voll net verstanden?

Doch doch, alles richtig verstanden ;-)

Das Array muß in der Tat genau so lang sein, wie der maximale Rückgabewert der Funktion "HashString". Und dieser maximale Wert hängt (abgesehen vom Wertebereich der SHORT-Integer) ausschließlich vom Parameter "t" ab, der im Beispiel den Wert 10 hat.

Formal liegt der Rückgabewert stets im Intervall [0..2^t-1], d.h. bei uns (für t=10) im Intervall [0..1023]. Wir brauchen also stets ein Array der Größe 2^t (hier: 1024).

- nh


102.)

Sun Jun 19 15:52:47 2005
Hallo nh!

Wie kann ich Oberon dazu zwingen, den (Zeilen-)Puffer zu leeren? Bei Strings scheint das automatisch zu funktionieren.
Bei Integern überhaupt nicht.

Bei folgendem Quelltext

   Write.Int(zahl, 1);
   Write.Ln;

muss ich beim Ablauf des Programms immer erst die Return-Taste auf meiner Tastatur drücken, damit die Ausgabe auch auf dem Display erscheint.
Für Hilfe bin ich dankbar.

Der Zeilenpuffer wird in Oberon (erzwungen) geleert, wenn man Write.Ln aufruft. Deshalb wundert es mich geade, daß dies in Ihrem Programm nicht funktionieren soll.

Bei Strings ist es davon abhängig, was man benutzt: Write.String("Hallo") leert den Puffer noch nicht, da müsste ein Write.Ln folgen. Beides zusammenfassen in einem Befehl kann man dann mit: Write.Line("Hallo").

Etwas Äquivalentes gibt es für Integer nicht, so daß hier - wie Sie völlig richtig schreiben - die genannten zwei Zeilen nötig sind.

Ich vermute daher einfach mal, daß das Problem an einer anderen Stelle steckt und nichts mit Pufferung zu tun hat. Sie können mir das Programm gerne mal per E-Mail schicken.

- nh


101.)

Sun Jun 19 14:54:10 2005
Die Übungsklausur dürfte langsam fällig werden... immerhin ist schon in zwei Wochen Prüfung.
Wird die noch rechtzeitig online gestellt?

Abgesehen davon, daß die Klausur erst in drei Wochen stattfindet (am 09. Juli), wird schonmal überhaupt nichts "fällig". Weder "so langsam" noch sonst irgendwie.

Es ist ein Entgegenkommen von uns, eine Demoklausur zur Verfügung zu stellen. Aber jeglicher gute Wille kann einem vergehen, wenn man sich einige Kommentare hier so ansieht. Die Charaktereigenschaft "Höflichkeit", die sich auch in Formulierungen artikulieren kann, scheint manchem hier völlig abhanden gekommen zu sein.

Nicht vergessen: wir müssen keine Demoklausr anbieten, wir woll(t)en es nur gerne machen!

- nh


100.)

Sun Jun 19 11:59:11 2005
Guten (Sonn)Tag :-)

Bitte erlaube zwei kleine kurze Fräglein:

1) Wie muss die Implementierung aussehen, dass statt "$> KnowdgeTester < EU"
auch "$> KnowledgeTester EU" funktioniert? Also ohne diesen Winkel :-)

2) Wie funktioniert Signalverarbeitung unter Oberon? Also, dass ich in meinem Programm entsprechend auf "Ctrl-D" reagieren kann...

Jaja, kaum geht das zweite Semester dem Ende entgegen, schon denkt man sich "Mensch, könntest ja ausnahmsweise auch mal was selber programmieren". Und dann tun sich sooooooooo große Lücken auf, gell?

Also, die "Sache mit dem Winkel" hat was damit zu tun, ob das Programm aus der Standardeingabe lesen soll, die dann (shell-seitig) auf eine Datei umgelenkt wird, oder direkt aus der Datei. Letzteres machen wir seit Mitte des Wintersemesters ständig in den Übungsaufgaben bzw. den Vorlesungsbeispielen, so daß ich hierzu die Lektüre der jeweiligen Übungsaufgaben sowie des Skriptes dringend empfehle!

Auch das Abfangen von CTRL-D ist ständig behandelt worden. Schonmal was von "Streams.stdin.eof" gehört? Oder "Streams.stdin.count"? Nein? Na, dann ist's jetzt auch zu spät, sorry!

Ehrlich, ich helfe wirklich gerne! Aber es gibt gewisse Grenzen! Ein wenig Eigentinitiative und Biß, sich Sachen auch mal selber anzueignen, erwarte ich im zweiten Semester schon! Und diese beiden Fragen hier sind absolute Grundlagen, die wir regelmäßig verwenden. Gerade im letzten Übungsblatt haben wir noch Dateien zum Lesen und Schreiben geöffnet! Diese Fragen kann man sich wirklich selber beantworten oder notfalls mal vom Kumpel beantworten lassen!

- nh


99.)

Sat Jun 18 20:28:47 2005
gab's dieses Mal in den Übungen kein Beispiel?

Haste eins gesehen? Oder warste gar nicht da?

Ein spezielles Beispiel gab es diesmal nicht, sondern nur Verweise auf den für diese Aufgabe relevanten Teil im Skript (guckst Du z.B. hier...)

- nh


98.)

Sat Jun 18 00:24:11 2005
Warum gibt es nicht das Binary für Blatt 8 auch für Linux?

Weil ich langsam alt und vergeßlich werde...

Ich hab's aber gerade online gestellt. Sorry!!!

- nh (a.k.a. "Alzheimer Heidi")


97.)

Fri Jun 17 14:58:32 2005
mahlzeit...
wenn man fuers aktuelle blatt keine hash/funktion schreiben will, muss man die im skript auf seite "andere schluesseltypen" erst mal verstehen. und das gelingt mir bis auf "SYSTEM.ROT" und "SYSTEM.LSH". was sind denn das fuer befehle? oder ist das ein kochrezept?

ich finde, was hash (woher kommt der name ueberhaupt?) im allgemeinen bedeudet und tut kam ganz gut rueber in vorlesungen/uebungen. aber grad dieses beispiel kam bissel kurz, finde ich.

in diesem sinne...

hm... vielleicht sortier ich die bundeslaender auch nach dem asciiwert der ersten drei buchstaben...

in diesem sinne...

Im großen und ganzen kann das Beispiel "Andere Schlüsseltypen" im Skript als Kochrezept auch für diese Übungsaufgabe verwendet werden. Dennoch hier eine kurze Erklärung der beiden Funktionen:

Mit SYSTEM.LSH führt man einen "Logical Shift" durch (daher LSH), d.h. die Bits des ersten Parameters werden um die im zweiten Parameter angegebene Anzahl verschoben (nach rechts, wenn der Wert positiv ist, sonst nach links). Siehe dazu auch die Seite "Auf Multiplikation basierende Hash-Funktionen II" im Skript.

Mit SYSTEM.ROT wird die Rotation vorgenommen, die im dritten Punkt auf der Seite "Andere Schlüsseltypen" erwähnt ist.

- nh

``hash'' im Englischen steht fuer ``Gehacktes'' bzw. ``to hash'' fuer ``klein hacken''. Sowohl in der Mathematik als auch in der Informatik steht das fuer eine Funktion, die einen grossen Wertebereich in einen kleinen abbildet. Eine allgemeine Einfuehrung dazu findet sich hier.

- afb


96.)

Thu Jun 16 17:46:46 2005
Hallo Herrr Heidenbluth
ich hoffe sie nehmen mir folgende Frage nicht übel!
Könnten sie uns sagen, welche Themenbereiche aus dem 2.Semester nicht klausurrelevant sind? Dabei meine ich weniger grundlegende Programmiertechniken, sondern vielmehr solche speziellen Themen wie Fehlersuche...

Ich würde mich über eine Antwort freuen.

Fehlersuche? Was genau meinen Sie damit?

In der Klausur werden wir natürlich den Schwerpunkt auf die wesentlichen Themen wie "Rekursion" und "Dynamische Datenstrukturen" legen, weil das die zentralen Themen des Semesters waren.

Um jetzt das Wesentliche dieser Themen von dem "Drumherum" zu lösen, empfiehlt es sich, mal die Themen der einzelnen Übungsblätter und die in den Beispielen im Skript behandelten Schwerpunkte zu betrachten. Die Schnittmenge beider Bereiche ist im Wesentlichen das, was wir für besonders wichtig halten.

Beispiel: Wie man bei XPlotters den maximalen plottbaren Bereich bestimmen, haben wir zwar mal für eine Übungsaufgabe gebraucht, aber das steht nirgends im Skript, also kann man das eher vernachlässigen. Andererseits haben wir aber sowohl in der Vorlesung als auch in den Übungen abstrakte Datenstrukturen behandelt. Die sind also dann auf jeden Fall klausurrelevant.

Mit diesem Vorgehen kann man dann eine einigermaßen zielsichere Rangordnung der Themen herausfinden, die besonders oder eher nicht so wichtig ist. Und so ganz nebenbei ist das schon die erste grobe Wiederholung für die Klausur ;-)

- nh


95.)

Thu Jun 16 09:40:39 2005
Da hat wohl jemand in Bio gefehlt?
Na wie war das mit den Nagetieren?

Ja genau, richtig das sind Säugetiere und nicht etwa sonst irgendwas wie in ihrer Beispieldatei.

Na dann sollte die Frage wohl nach der ob es ein Säugetier ist stehen!!!

Zwar war Bio mit Sicherheit überhaupt nicht mein Fach (obwohl... in der 7. Klasse hatten wir mal ein recht interessantes Thema...), aber die Beispieldatei ist doch trotzdem richtig:

Kurzer Auszug aus einem Spiel:

theseus$ ./Animals tiere.db
Darf ich eine Tierart erraten? ja
Handelt es sich um ein Wirbeltier?
Ja oder nein? ja
Handelt es sich um ein Saeugetier?
Ja oder nein? ja                         <---
Handelt es sich um einen Primaten?
Ja oder nein? nein
Handelt es sich um ein Nagetier?         <---

Was stimmt denn Ihrer Meinung nach hier nicht?

Nicht vergessen: Die Beispieldatei ist PREORDER sortiert, da kommt man beim reinen Lesen mit dem VI oder mit sonstwas schonmal schnell durcheinander!

- nh


94.)

Wed Jun 15 18:54:45 2005
hallo,
natürlich ist es nicht die feine englische art, nicht in den übungen zu erscheinen und dann hier verständnisfragen zu stellen. aber ich glaube in meiner bisherigen zeit an der uni wurde schon ca. 500 mal gesagt, dass man jederzeit fragen stellen darf und dass diese auch erwünscht sind. desweiteren war diese frage nicht so ausgelegt, dass die antwort darauf eine gesamtrekapitulation der letzten übungsstunden hätte sein müssen und die erste verständnisfrage im anonymen feedback war es ja auch nicht.

Jaja, schon recht...! Letztlich gab's ja eine (hoffentlich hilfreiche) Antwort auf Ihre Frage. Ich hab Ihr Feedback halt genutzt, um nochmal etwas Grundsätzliches klarzustellen.

Fragen sind natürlich jederzeit willkommen, und es dürfte sich niemand ernsthaft beschweren, daß er/sie nicht auch umgehend eine Antwort erhielte.

Grundsätzlich sind mir aber per E-Mail oder persönlich gestellte Fragen wesentlich lieber als hier im Feedback. Das macht die Sache irgendwie persönlicher.

- nh


93.)

Wed Jun 15 16:52:40 2005
hallo,
erstmal muss ich gestehen, dass ich in den letzten zwei übungsstunden, aus zeitlichen gründen, nicht anwesend war ;-).

deswegen hab ich beim durcharbeiten der lösung des letzten übungsblattes so meine probleme.

bspw: im module mailboxes finde ich die funktion comparemailboxes, die als argument zwei objrkte vom typ object.object erwartet und als rückgabewert integer hat. in dieser funktion werden dann vergleichsoperationen mit den beiden typen object1.name und obhect2.name vorgenommen. aber wie und warum kann ich hier zwei zeichenketten miteinander vergleichen? es wird darauf hingewiesen, dass man hier von lexikographischen grössen ausgeht, aber was kann ich mir darunter vorstellen?

Das ist ja schon ein wenig dreist, finden Sie nicht? Nicht in die Übungen kommen, aber dann hier Verständnisfragen stellen. Ich denke, es leuchtet ein, daß wir - ebenfalls "aus zeitlichen Gründen" dieses Feedback nicht als Ersatz für den Besuch von Übungen und/oder Vorlesung betreiben.

Und wenn der Besuch der Übung nicht möglich ist, gibt es immer noch rund 75 - 100 (je nachdem, ob Badewetter ist, bzw. andere "zeitliche Gründe" vorliegen) Kommilitonen, die einem weiterhelfen können.

Ausnahmsweise: Wir wollen schlicht die Mailboxen nach Namen sortiert haben - genau das meint "lexikographisch". Also stopfen wir zwei Mailboxen in die Vergleichsprozedur, diese schaut sich dann das Feld "Namen" der Mailbox-Objekte an und gibt - je nachdem, welcher Name im Alphabet zuerst kommt, entweder 1 oder -1 zurück, bzw. 0 im Falle von Gleicheit.

- nh


92.)

Tue Jun 14 11:55:08 2005
mahlzeit...
mal unabhaengig von ai2...
sicher kennt norbert oder herr borchert denjenigen, der ans waschbecken in den saipools papierhandtuecher machen sollte, kann oder gar dafuer bezahlt wird... denn es ist sicher im interesse von norbert oder herrn borchert, dass weder maeuse noch tastaturen mit nassen fingern benutzt werden... vielleicht hilfts, ansonsten ignorieren...

in diesem sinne...

Stellt sich die Frage, warum im SAI-Pool das Waschbecken benutzt wird. Gut, wahrscheinlich deshalb, weil's da ist... Aber eigentlich braucht man dort ja nicht zwingend Wasser, oder?

Aber wir können natürlich mal schauen, daß dort wieder ein paar Papierhandtücher hinkommen. Danke für den Hinweis!

- nh


91.)

Tue Jun 14 00:18:19 2005
Das dieswöchige Übungsblatt war richtig toll - nicht allzuschwer (obwohl man auf die Idee mit dem kompletten Neuzeichnen des Baums erst einmal kommen muß) und die Aufgabenstellung motivierend.
Mein Programm macht letztendlich, was ich will, eine gute Datenbank habe ich auch schon im Kopf. Wohin muß man die eigentlich schicken?

Fazit: Gut gemacht, weiter so :)

Hey, das freut uns :-)

Das Lob gebührt übrigens Andreas Borchert, denn das war - wie immer bei den besten Übungsaufgaben - seine Idee.

Die Datenbank sollte an mich (nh) geschickt werden, ich stelle sie dann auf den FTP-Server. Einen Link zu den bislang eingesandten Datenbanken habe ich bereits auf der Homepage platziert.

- nh


90.)

Sun Jun 12 22:06:40 2005
Ich habe folgendes Problem: Ich möchte in einer Textdatei zwischen zwei Zeilen einen Text einfügen. Wie kann ich das realisieren, OHNE den bereits vorhandenen Text zu überschreiben? Selbst Write.LnS(stream) überschreibt die ganz Zeile...

Wenn ich die Frage richtig verstehe, dann haben Sie z.B.

Zeile 1
Zeile 2

und Sie möchten nun zwischen diesen Zeilen eine weitere einfügen und Zeile 2 (nebst allem folgendem) "nach unten verschieben".

Die schlechte Nachricht des Tages lautet in diesem Fall: Das geht nicht :-(

In einen Stream schreibt man "seriell", d.h. hintereinander, und - zumindest im Falle des Schreibens in Dateien - ist so etwas wie "Einfügen zwischen zwei Zeilen" (ohne den Rest zu überschreiben) nicht möglich.

Was kann man stattdessen machen? Nun, am besten ist, alles das, was Sie in der Datei haben möchten, zuvor in irgendeiner geeigneten Datenstruktur vorzuhalten, die Sie dann jedesmal komplett herausschreiben. Diese Datenstruktur können Sie dann beliebig manipulieren, und beim Herausschreiben wird alles vorher da gewesene komplett überschrieben.

- nh


89.)

Sun Jun 12 18:47:38 2005
Betrifft: SLC

Ich finde es etwas unfair, wenn die Zusatzpunkte als Bonus vergeben werden, aber dann doch in das SLC-Punktemaximum mit gerechnet werden. Aktueller angezeigter maximaler Punktestand: 99 Punkte. Bisher (bis Blatt 6) erreichbar: 85
Differenz: _14_ für Blatt 7 - und nicht 10, wie angegeben.
Nicht daß ich von der 50%-Klausel betroffen wäre, aber es wäre schon ganz nett, wenn die Bonuspunkte auch als solche gewertet werden. Danke.

PS: Das soll jetzt auch keine destruktive Kritik sein, an sich finde ich die Aufgabenstellung der Übungsblätter recht erfrischend und gelungen.

Im SLC werden die Bonuspunkte tatsächlich wie "richtige" Punkte mitgezählt, da haben Sie Recht. Das kann man leider auch nicht ändern. Aber wenn es demnächst um das Addieren der erzielten Punkte für den Schein geht, dann rechnen wir die Bonuspunkte wieder 'raus. Versprochen!

Bis dahin gilt für Wackelkandidaten: Immer "minus vier" rechnen, und dem Rest kann's ja eh egal sein... ;-)

Ihr Kommentar zur den Übungsaufgaben freut uns natürlich!

- nh


88.)

Sun Jun 12 10:38:41 2005
Mal ein Frage zum Klausurstoff. Kommen nur Inhalte des 2.Semsters dran, also Zeiger, Rekursion, Bäume, Modularisierung usw. oder ist es auch moeglich, dass noch themen des letzten semsters abgefragt werden wie argumentverarbeitung, streams usw.

Explizite Fragen nach den Themen des ersten Semesters werden in der Klausur nicht vorkommen.

Aber andererseits bilden viele Dinge natürlich das Handwerkszeug für weiterführende Operationen. Wie man zum Beispiel aus einem Stream liest, sollte man daher schon wissen.

- nh


87.)

Sat Jun 11 15:21:41 2005
wurden eigentlich für die Tutorien Vortragsfolien oder sowas erstellt, die man als "Crashkurs" ins Netz stellen könnte?

Nein, Folien gab es bei den Auffrischungstutorien keine. Letztlich wurde dort ja auch nichts Neues gemacht, sondern nur Stoff wiederholt.

Wohl aber gab es immer einen kleinen Tafelanschrieb. Hier lässt sich bestimmt jemand aus dem Semester finden, der alles mitgeschrieben hat und für die "terminlich unglücklich gelagerten Fälle" eine Kopiervorlage anbietet.

- nh


86.)

Sat Jun 11 02:47:44 2005
hallo,
ich hätte eine frage bezgl. des befehls UF(Unixfiles).Open. als argumente muss ich ja erst den stream zu dieser datei, den dateiname, das was ich mit der datei machen will (neu erstellen, reinschreiben etc.), pufferungsart,und den teil, den ich noch nicht kapier, übergeben. z.B: (select, sfile, UF.write + UF.create, Streams.onebuf, errors). also, wie gesagt, in diesem beispiel wäre es das errors, ganz am schluss, was für einen sinn macht dieses argument? desöfteren wird ja auch NIL übergeben, was ja dann schwer auf eine undefinierte speicherzelle riecht, nur wo ist dann hier der zusammenhang?

und noch was, was bedeutet diesaer befehl genau: Conclusions.Conclude(errors, Errors.fatal, "")?

danke für hilfe

Die "RelatedEvents" bzw. die "Disciplines", auf die Ihre Frage hinausläuft, haben wir in der Vorlesung noch nicht behandelt und werden dies aus zeitlichen Gründen wohl auch nicht mehr machen. Deshalb haben wir immer gesagt, daß es sich an dieser Stelle um ein "Kochrezept" handelt, das Sie einfach so in Ihre Programme übernehmen können.

UnixFiles.Open erwartet als fünften Parameter den Typ "RelatedEvents.Object" (bei dem es sich letztlich um einen Zeiger handelt). Mit Hilfe dieses "RelatedEvents.Object" lassen sich Fehlerereignisse, die (hier: beim Öffnen der Datei) entstanden sein könnten, aufsammeln und zurückgeben. Dies ist aber nur "ein Angebot", das heißt, wenn man nicht an diesen Fehlerereignissen interessiert ist, dann übergibt man hier einfach NIL.

Wenn Fehler aufgetreten sind, kann man diese dann mit Conclusions.Conclude(...) ausgeben. Dazu übergibt man als erstes das "errors"-Objekt (s.o), das ja die Fehler enthält, "Errors.fatal" gibt an, daß das Programm beendet werden soll und als drittes könnte man noch einen String übergeben, der auch ausgegeben werden soll (hier ist das aber der leere String "").

- nh


85.)

Fri Jun 10 20:23:46 2005
Habe noch etwas vergessen:
Wie kann ich eine bestimmte Zeile einer Datei ansteuern?

Zunaechst moechte ich betonen, dass fuer die Loesung des aktuellen Uebungsblattes es keinesfalls notwendig ist, sich auf Zeilen zu positionieren oder diese zu zaehlen. Wenn diese Frage in diesem Zusammenhang entstanden ist, dann sieht das schwer nach einem Holzweg aus. Beachten Sie bitte, dass Sie von Position 0 bis zum Ende den gesamten Baum aus der Datei einlesen und spaeter, wieder von Position 0 beginnend, den gesamten Baum in die Datei abspeichern. Sie benoetigen dazu ein schlichtes ``Streams.SetPos(s, 0);'' und keine weiteren Positionierungstricks.

Im uebrigen ist eine Positionierung auf Zeilenpositionen in Oberon moeglich mit Hilfe des Moduls Lines, fuer das eine Manual-Seite zur Verfuegung steht.

- afb


84.)

Fri Jun 10 20:19:38 2005
Wenn ich einen Stream aus einer Datei auslese, wie kann ich dann in Erfahrung bringen, in welcher Zeile ich mich befinde?
Streams.GetPos(...) gibt ja nur die Absolutposition seit Beginn der Datei an.

Erstmal ein wenig klugschei..ern: Sie lesen nicht "einen Stream aus einer Datei", sondern Sie lesen aus einem Stream, der letztlich die Verbindung zu einer Datei repräsentiert. Aber das nur am Rande ;-)

Zur eigentlichen Frage: Die Information, in welcher Zeile Sie sich gerade befinden, müssen Sie selber ermitteln, indem Sie einen Zähler mitlaufen lassen: für jedes (geglückte) "Read.LineS(...)" erhöhen Sie den Zähler um eins. Anders geht's nicht, denn die Sache mit der Position in der Datei ist - wie Sie richtig schreiben - die Absolutposition.

- nh


83.)

Fri Jun 10 11:46:00 2005
wird die Lösung des letzten Auffrischungstermins auch noch online gestellt?
wenn schon unfairer Weise für die einen Tutorien angeboten werden zu denen die Anderen nicht kommen können, wäre es nett wenn diese "Ungerechtigkeit" wenigstens im Rahmen gehalten wird - DANKE!

P.S.:Ich finde es auch ganz toll dass diese Tutorien so gut aufgenommen werden und super zum Verständnis beitragen

Höre ich da leichten Sarkasmus zwischen den Zeilen heraus?

Wenn Sie ein Patentrezept wissen, wie man es allen auf einmal Recht machen kann, dann lassen Sie es mich wissen. Irgendjemand wird wohl immer dabei sein, dem der Termin gerade nicht passt. Die Formulierung, daß wir "unfairer Weise für die einen Tutorien anbieten, zu denen die Anderen nicht kommen können", halte ich übrigens für eine Frechheit!

Was die Lösung zur Aufgabe der letzten Woche angeht, so werden wir sie demnächst veröffentlichen.

- nh

Ich habe tatsaechlich die Veroeffentlichung meiner Musterloesung verschwitzt. Mich haette eine freundliche Erinnerung z.B. am letzten Montag nicht gestoert. Aber die Tonlage dieses Feedbacks empfinde ich nicht als angemessen.

- afb


82.)

Thu Jun 9 15:20:06 2005
das Angebot mit der Demo-Klausur und dem Besprechen finde ich mal echt deluxe und wirklich nett

Na bitte, wenigstens eine(r)... ;-)))

- nh


81.)

Thu Jun 9 13:05:00 2005
So in 2 - 3 Wochen könnte man doch frei von irgendwelchen Programmieraufgaben> gemütlich ein Vanille-Mokka-Eis lutschen und nebenher eine allgemeine Fragestunde machen. ;-) Klausurrelevante Themen zusammenfassen und dann je nach Fragen der Zuhörer in die Tiefe gehn...

Ende Juni / Anfang Juli ist auch der Zeitpunkt, den wir uns für die Besprechung der Demo-Klausur vorgestellt haben. Vermutlich werden wir dann am 01.07. ein Tutorium für Klausurfragen anbieten!

- nh


80.)

Thu Jun 9 11:01:02 2005
Kann man mir nochmal erklären warum wir immer wieder dieses Objects.Object verwenden und was das eigentlich macht!
Ich schreib das einfach immer dazu versteh das aber nicht so richtig!

Ich werde heute nachmittag in den Übungen nochmals auf diese Frage eingehen.

- nh


79.)

Wed Jun 8 17:24:06 2005
ich weiß, komme vielleicht schon ein bisschen früh damit, aber könnte man vielleicht jetzt schon (wie bei der ersten Klausur) eine Demo-Klausur wieder ins Netz stellen?
Wäre wirklich nett

Noch ist es vielleicht wirklich ein wenig früh für die Demo-Klausur. Wir müssen uns ja erst auch noch ein paar vernünftige Aufgaben einfallen lassen. Bitte haben Sie noch etwas Geduld!

- nh


78.)

Wed Jun 8 17:16:21 2005
Hi Herr Heidenbluth und Herr Borchert!

Kurze Kritik zum aktuellen Übungsblatt: Mir war die Dokumentation zu der Schnittstelle beziehungsweise zu den einzelnen zu implementierenden Modulen zu knapp. Konkret: Bei Next und NextLink bin ich erst nach einigem herumprobieren draufgekommen dass der Rückgabewert TRUE sein soll wenn versucht wird vom Letzten Element weiter zu springen, intuitiv hätt ich da eher FALSE zurückgegeben. Hier hätte ich mir eine ausführlichere Dokumentaion gewünscht. Ansonsten gefiel mir das Konzept des Blattes, in einem Modul eine bestimmte programmiertechnik umzusetzen recht gut.

Ja, da gebe ich Ihnen Recht: dies geht aus meinem Kommentar nicht hervor, sondern erst aus dem Beispielprogramm. Sorry, wenn Sie deshalb Schwierigkeiten hatten!

Wenn etwas unklar ist, stehen wir Ihnen aber natürlich jederzeit via Feedback bzw. (besser!) E-Mail für Nachfragen zur Verfügung!

- nh


77.)

Tue Jun 7 22:59:59 2005
Hallo ich finde die Idee mit den Demoklausurfragen in den Auffrischungen nicht schlecht, würde mich aber auch über Modularisierung und Typerweiterung freuen, da beim momentanen Übungsblatt da noch ein paar mehr Versuche nötig waren...

Zu der Frage über die Nachklausurzulassung:
Mich würde das auch interessieren (leider), da um die Informatik Klausur verteilt zumindest bei mir noch ziemlich viele Klausuren liegen...
Um genau zu sein, 5 in zwei Wochen :-(

Und über das Eis lässt sich ja reden, vielleicht als Dank für die bestandenen Klausur??

Die Themen Modularisierung und Typerweiterung wollte ich am Donnerstag in den Übungen nochmals ein wenig vertiefen.

Und zur Nachklausur: wir haben uns ehrlich noch keine Gedanken über die Nachklausur gemacht. Je nachdem, wie viele (oder besser gesagt: wenige) es betrifft, bieten wir vielleicht auch mündliche Nachprüfungen an. Aber ein Kriterium ist für die Teilnahme an der Nachklausur mit Sicherheit gegeben: die Teilnahme an der Hauptklausur!

Und jetzt noch ein Riesen-Gag:
Das Sache mit dem Eis müssten wir ja auch über das anonyme Feedback abwickeln, von wegen Bestechung und so... Aber wie bekommt man das Eis via Internet verschickt? Na, ganz einfach: wir nehmen die neue Technik "Voice over IP" und lassen das " Vo" einfach weg...

Das ist doch ein Brüller, oder? Nein? Schade, ich finde ihn grandios :-)))

- nh


76.)

Tue Jun 7 22:10:56 2005
Hallo,

ich würde mich freuen, wenn in den Auffrischungen (wenn es wieder welche gibt) die relevanten Themen für die Klausur wiederholt werden. Damit dürfte das Thema Nachklausur vergessen und das erhoffte Vanille-Mokka-Eis dahin geschmolzen sein :-)

Wenn Bedarf besteht, können wir die Auffrischungstutorien sofort wieder stattfinden lassen (nur am 17.06. nicht!). Wir warten eigentlich nur auf Ihre (konkreten) Themenwünsche.

Ich kann aber auch mal über die Idee nachdenken, daß wie ein Auffrischungstutorium anbieten, in dem wir zum Beispiel Fragen zur Demo-Klausur klären können. Das dürfte wahrscheinlich die beste Lösung sein: erstmal bereiten sich alle ein wenig vor, dann versucht jeder (alleine oder in der Gruppe) die Demo-Klausur zu lösen, und dann machen wir das Auffrischungstutorium zum Thema "Fragen rund um die Demo-Klausur". Wäre das okay?

Obwohl: so gut ist die Idee auch wieder nicht, denn was wird dann aus meinem Van ille-Mokka-Eis?

- nh


75.)

Tue Jun 7 09:31:34 2005
Hallo
Ich hätte da mal eine Frage zu Remove:

1.) Wie enthält link vom Typ Link die Informationen über die Zeiger head und tail aus LinearList?
2.) Wie sieht der Aufruf von head über link formal aus?

Etwa so???

PROCEDURE Remove(link: Link;);
VAR
BEGIN
   IF link = link.head THEN
   link.prev.next:= link.next;
   link.next.prev:= link.prev;
END;


Ich hoffe du kannst(willst?) mir helfen!!!

Wollte ich jemals bei vernünftigen Fragen nicht helfen?

Die Informationen "head" und "tail" gehören nicht zu einem Objekt vom Typ "Link" sondern vielmehr zum Typ "LinearLists". Also ist die Frage, wie man - wenn man nur einen "Link" hat - zu der Liste gelangt, in der dieser Link enthalten ist (und von dort aus dann die Informationen "head" und "tail" zur Verfügung hat). Und die Antwort darauf habe ich im Feedback 72 schonmal gegeben.

Der zitierte Programmcode hilft daher leider nicht weiter, weil es bei einem Link-Objekt kein Feld namens "head" gibt, und daher "link.head" nicht möglich ist. Aber ein

IF link = link.list.head THEN ...

ist natürlich möglich!

- nh


74.)

Mon Jun 6 15:58:53 2005
Wie kann ich zwei verschiedene Records aufeinander beziehen?

Also gegeben zwei Records: A und B.
Also A soll ein Element vom Typ B enthalten und Record B soll ein Element vom Typ A enthalten. Weil Oberon "linear" ist muss ich immer den einen Typ vor dem anderen definieren... Gibt es eine Lösung für das "Henne-Ei" Problem?

Dieses Problem lösen Sie, indem Sie nicht direkt mit den Records selber arbeiten, sondern mit Zeigern auf diese.

Definieren Sie sich zwei Zeiger auf die Records A bzw. B und bringen Sie diese in dem jeweils anderen Record unter, also so:

   TYPE
      ARecPtr = POINTER TO ARecord;
      BRecPtr = POINTER TO BRecord;

      ARecord = RECORD
         int: INTEGER;    (* Nur als Beispiel... *)
         br: BRecPtr;
      END;

      BRecord = RECORD
         zahl: INTEGER;   (* Wieder nur ein Beispiel *)
         ar: ARecPtr;
      END;

- nh


73.)

Mon Jun 6 14:59:44 2005
Frage:
Wer darf an der Nachklausur teilnehmen?

Tja, mal überlegen...

Hmm, was halten Sie davon: Alle, die in der Hauptklausur mindestens 75% der Punke erreicht haben? Oder hiervon: Alle, die uns rechtzeitig vor der Nachklausur ein Eis vorbeibringen (Vanille und Mokka für mich, bitte!)

Meinen Sie nicht, daß sie mit dieser Frage eine völlig falsche Einstellung zu Ihrem Studium offenbaren? Die Frage kann doch nicht sein, wann man an der Nachklausur teilnehmen darf. Sie muß vielmehr lauten: was kann ich tun, damit ich die erste Klausur gleich bestehe.

Unsere Klausur findet in etwas weniger als fünf Wochen statt. Da ist also noch massig Zeit zum Lernen. Damit würde ich so langsam mal beginnen. Dann stellen wir eine Demo-Klausur zur Verfügung, an der man sich sehr gut orientieren kann. Und dann ist immer noch Zeit, eventuelle Lücken aufzufüllen.

Ich weiß jedenfalls heute noch nichts über die eventuellen Modalitäten einer eventuell stattfindenden Nachklausur zu sagen. Vielleicht bestehen ja so viele, daß sich eine Nachklausur nicht lohnt? Und falls es eine gibt: warum glauben Sie, diese zu bestehen, wenn Sie dies offensichtlich für die eigentliche Klausur nicht erwarten?

Also, ein ernstgemeinter Tip für den Rest Ihres Studiums: Spekulieren Sie nicht auf die zweite Chance sondern nutzen Sie gleich die erste!

- nh


72.)

Mon Jun 6 13:20:48 2005
Noch eine kurze Frage zu LinearLists.Remove:

Wenn ich zum Beispiel das erste Element der Liste entfernen moechte, muss ich ja den Pointer list.head auf das bisher zweite Element zeigen lassen. Der Prozedur wird aber nur link, nicht aber list uebergeben. Wie kann ich diese Veraenderung dann durchfuehern?
Und was meinen Sie mit: "link weiss zu welcher Liste es gehoert"?

In der Datenstruktur "Link" soll / muß ein Feld (also ein Eintrag) vorhanden sein, der vom Typ "LinearLists" ist. Und in diesem wird beim Erzeugen eines neuen Link-Objektes eingetragen, zu welcher Liste es gehört.

Wenn man nun "Remove" aufruft und dieser Prozedur - wie gefordert - ein Link-Objekt übergibt, dann trägt dieses Link-Objekt also (einen Zeiger auf) "seine" Liste in sich, und man braucht die Liste nicht mehr explizit zu übergeben.
Clever, gell...?

- nh


71.)

Sun Jun 5 17:34:27 2005
Was kann ich konkret folgender Prozedur übergeben?
PROCEDURE Create(VAR tree: Tree; compare: CompareProc; comparable: ComparableProc);

Ich gebe ja zu, dass ich diese "Prozedurtypen" nicht verstanden habe...

Also, der erste Parameter "tree" ist klar: Das soll die Variable sein, die den neu zu schaffenden Baum repräsentiert.

Der zweite Parameter ist eine Vergleichsfunktion, die angibt, wie zwei Elemente des Baumes miteinander verglichen werden können. Diese Prozedur muß exakt den Aufbau haben, den der Prozedurtyp "CompareProc" vorschreibt: zwei Objekte vom Typ Objects.Object als Parameter und einen Rückgabewert vom Typ INTEGER (der zudem noch der Spezifikation im Kommentar zur Prozedur Create entsprechen muß).

Der dritte Parameter ist ebenfalls eine Funktion, die einem vorgegeben Prozedurtyp (diesmal: ComparableProc) entsprechen muß. Diese Funktion wird "vom Baum" immer aufgerufen, wenn geprüft werden soll, ob das jeweilige Element in einem Knoten mit einem anderen Element vergleichbar ist. Und daher ist es hier am einfachsten, wenn die Funktion überprüft, ob das Objekt im Knoten einem ganz bestimmten Datentyp entspricht ("...IS...").

Hintergrund dieser beiden Prozedurtypen ist, daß ich grundsätzlich einen heterogenen Baum haben kann: jedes Element in einem Knoten kann von einem anderen Typ sein als die anderen (solange es nur von Objects.Object abgeleitet ist). Daher weiß der Baum auch nicht von sich aus, wann, ob und wie zwei seiner Elemente miteinander verglichen werden können. Diese Information muß man ihm also beim Anlegen mitgeben (compare). Desweiteren funktioniert das Vergleichen natürlich nur, wenn der Baum aus homogenen Einträgen besteht, und daher wird für jedes Element überprüft, ob es mit den anderen vergleichbar ist (mittels der Funktion "comparable").

Das entsprechende Beispiel aus den Übungen am Donnerstag steht ausführlich kommentiert online!

- nh


70.)

Sat Jun 4 21:21:06 2005
Wie mache ich aus Objects.Object eine INTEGER?

Gar nicht ;-)

Objects.Object ist ein Zeiger (auf Objects.ObjectRec), und aus einem Zeiger wird niemals eine INTEGER-Zahl werden können.

Aber: was Ihnen vermutlich weiterhilft, ist das Konzept der Typerweiterung. Erweitern Sie einfach den Record "Objects.ObjectRec" um die Information einer INTEGER-Zahl und dann haben Sie vermutlich das, was Sie wollten.

Falls Ihnen das bekannt vorkommt: genau das haben wir anhand eines Beispiels (SortedTreesEx) in den Übungen besprochen. Falls nicht: wo waren Sie denn am Donerstag zwischen 16 und 18 Uhr?

- nh


69.)

Sat Jun 4 21:20:32 2005
Versuche gerade LinearLists.om zu erstellen, weiß jedoch nicht, wie ich ohne head und tail im LinearListRec bzw. ohne next und prev im LinkRec eine doppelt verkettete lineare Liste aufbauen soll. Wenn ich sie einfach in die Records hineinschreibe, bekomme ich stets die Fehlermeldung "unknown field name", schreibe ich sie ebenfalls in die Definition des Records so bekomme ich die Fehlermeldung "base types are different". Wie kann ich dies umgehen.

Wer sagt denn, daß Sie kein "next" und "prev" bzw. "head" und "tail" verwenden dürfen? Im Gegenteil - und da haben Sie vollkommen Recht: ohne diese Informationen können Sie keine doppelt verkettete Liste basteln.

Aber: An der .od-Datei darf nichts verändert werden - das ist ja gerade der Witz bei unseren derzeitigen Aufgaben. Die Definition-Datei stellt nach außen hin den Datentyp einer doppelt verketteten Liste nebst elementarer Operationen hierauf zur Verfügung. Darauf, daß die Schnittstelle genau so aussieht, muß man sich verlassen können, deshalb wird sie nicht verändert!

Die eigentliche "Musik" spielt daher in der Modul-Datei: diese ist die eigentliche Implementierung. Dort können (und müssen!) Sie "head", "tail" usw. verwenden - nur nach außen hin ist diess nicht bekannt (Stichwort: "Information Hiding").

Schauen Sie sich nochmal die SortedBinaryTree-Definition an (insbesondere die Typdefinitionen von "NodeRec und TreeRec) und vergleichen Sie diese dann mit der Implementierung. Dann wird wahrscheinlich klar, was ich meine.

- nh


68.)

Sat Jun 4 17:45:41 2005
mahlzeit...
ich finde es ziemlich witzlos, in der vorlesung binäre bäume zu behandeln, wie sie sortiert werden u.ä. und genau dies in der übung nicht festigen zu lassen, sondern es fertig bereitzustellen.
der geistige aufwand, das gegebene modul zu überblicken und einzubinden ist meiner meinung nach ähnlich hoch, wie es selbst zu schreiben. und für all diejenigen, die motivation und interesse für eine beschäftigung mit den themen liste, programmlogik und (!) bäumen haben, ist die übung einen tick zu umfangreich und/oder abstrakt.
ich glaube, es liessen sich weniger umfangreiche aufgabenstellungen finden, in denen alle drei inhalte erprobt, geübt und vertieft werden könnten.
in diesem zusammenhang auch meine kritik am letzten übungsblatt: madularisierung, das eigentlich aktuelle thema, hätte sich sicher üben/vertiefen lassen, ohne den komplizieren calculator noch einmal rauszukramen und eine einarbeitung in die musterlösung zu fordern.
in diesem sinne

Das Modul zu den sortierten binären Bäumen ist nicht extra für dieses Übungsblatt entstanden, sondern bereits im Skript zur Vorlesung nachzulesen - also Bestandteil der Vorlesung. Da kann man es schlecht in den Übungen programmieren lassen.

Für dieses Übungsblatt ist es ja geradezu von Vorteil, daß dieses Modul bereits fertig existiert. Denn wenn man sich für die Implementierung des LinearLists-Moduls entscheidet, übt man den Umgang mit dynamischen Datenstrukturen und deren Schnittstellen nochmal anhand eines leichten Beispiels und hat mit den "SortedBinaryTrees" eine gute Vorlage, wie man an so etwas herangeht (insbesondere im Hinblick auf die Typerweiterung).

- nh


67.)

Fri Jun 3 09:24:17 2005
Hallo,

wäre wirklich nett, wenn es mal wieder leichtere Übungsblätter geben könnte;
ich finde das gerade mal wieder eine heftige Phase. Ist keine Kritik, sondern eine Anregung :)

Wenn Sie sich im aktuellen Übungsblatt für die Implementierung des Moduls "LinearLists.od" entschieden haben sollten, dann haben Sie sich bereits eine recht leichte Aufgabe herausgesucht.

Sofern das Prinzip von Typerweiterung und Verkettung (in diesem Fall in beide Richtungen - wie gestern in den Übungen demonstriert) verstanden wurde, ist die Lösung dieser Aufgabe im Wesentlichen eine Kombination aus den Vorlesungs- und Übungsbeispielen.

- nh


66.)

Sun May 29 20:02:44 2005
Hallo,
noch eine Frage zum Plotten:
Wenn ich in meinem Programm plotter:=Plotters.Plotter definiere, stellt das ja einen Pointer dar, oder?
Aber wie initialisiere ich ihn am Anfang meines Programmes? Ich weiß bei Streams.Stream geht das mit Streams.stdin, aber was ist mit Plotters?

Fangen wir mit der ersten Frage an: Ja, Plotters.Plotter ist ein Pointer. Zitat aus der Oberon-Dokumentation:

   TYPE Plotter = POINTER TO PlotterRec;
   TYPE PlotterRec = RECORD (Services.ObjectRec) END;

Entsprechend sieht es übrigens auch für Variablen vom Typ "Streams.Streams" aus, denn auch die Analogie der Module Plotters und Streams ist richtig: es sind beides sogenannte Abstraktionen. Beide stellen Möglichkeiten zur Verfügung "irgendwo" hinzuplotten bzw. hinzuschreiben. Und dieses "irgendwo" wird dann durch eine Implementierung des jeweiligen Moduls konkretisiert.

Auch hier hilft ein Zitat aus der Oberon-Bibliothek (Modul "Streams"):

"The standard streams stdin, stdout, and stderr are initialized to null but are possibly reinitialized by other modules (e.g. UnixFiles initializes them to the UNIX standard files)."

Also: "Streams.stdin" für sich alleine genommen nützt gar nichts (da "abstrakt"), stattdessen muß mit einer konkreten Implementierung gesagt werden, wohin genau ich schreiben möchte. (bzw. woher lesen...). Wir haben bislang immer das Modul "UnixFiles" als konkrete Implementierung verwendet.

Und genau das selbe gilt für Plotters. Mit "Plotters.Plotter" kann ich "irgendwo" hinplotten (abstrakt), und mit einer konkrekten Implementierung sage ich dann noch, wohin genau. Hier kennen wir bislang zwei Möglichkeiten: das Modul "XPlotters" zur Ausgabe auf einem X-Display sowie das Modul "Plot5Streams" zur Ausgabe als traditioneller Berkley Plot-Stream. Für die aktuelle Übungsaufgabe benötigen wir aber nur die Ausgabe am Bildschirm (a.k.a. X-Display).

Um nun zu der eigentlichen Frage dieses Feedbacks zu kommen: Die Variabe plotter vom Typ "Plotter.Plotter" brauchen Sie "von Hand" nicht zu initialisieren. Stattdessen werfen Sie diese - wenn ich's mal so plakativ formulieren darf - einer konkreten Implementierung "zum Fraß" vor, und diese verknüpft dann die Variable plotters mit dem gewünschten Ausgabemedium (hier: Bildschirm).

Und so sieht die wesentliche Code-Zeile dann aus:

    IF ~XPlotters.Create(plotter, errors) THEN 
(* Fehlermeldung ausgeben, da etwas nicht geklappt hat... *)
END;

- nh


65.)

Sat May 28 19:12:58 2005
eine Frage über die CASE-Schleife
dieses Problem taucht bei mir immer auf, keine Ahnung, was los ist.
bei mir sieht die Schleife so aus

    CASE f.function OF
     |"sin" : RETURN (Math.Sin(x));
     .
     .
     .
    END;

bei make kommt immer die Fehlermeldung

   55 CASE f.function OF
		      ^
      must be of interger type or CHAR
   .
   .
   .

so immer weiter
statt CASE-Schleife funtioniert IF-Schleife immer richtig.

Die CASE-Anweisung akzeptiert ausschließlich die Datentypen INTEGER und CHAR (einzelne Zeichen), aber in Ihrem Fall ist f.function vom Typ "ARRAY OF CHAR". Deshalb können Sie die CASE-Anweisung hier nicht nutzen.

Die IF-Bedingung hingegen überprüft einen Ausdruck auf seinen Wahrheitsgehalt (BOOLEAN), und deshalb funktioniert selbstverständlich dort der Vergleich "IF f.function = "sin" THEN...").

- nh


64.)

Fri May 27 23:39:24 2005
Wenn ich PlotRPN ausführen möchte, dann wird bei mir vor allem anderen der FunctionPlotter ausgeführt (der dann natürlich noch kein a, b und delta erhalten hat), auch wenn ich den Aufruf auskommentiere. Passiert das automatisch beim Importieren? Das kann doch nicht sein... Woran könnte es denn liegen?

Ihre Vermutung ist richtig: das "passiert automatisch beim Importieren"!

Beim Starten des Programms wird der Teil in allen importierten Modulen ausgeführt, den wir bislang immer als "Hauptprogramm" bezeichnet haben (also alles zwischen "BEGIN" und "END <Modulname>."). Das kann sinnvoll sein, um z.B. Initialisierungen vornehmen zu lassen.

Deshalb vermute ich mal ganz stark, daß in Ihrem FunctionPlot.om in eben diesem Teil Anweisungen stehen. Abhilfe in diesem Fall: Keine Anweisungen in diesem Teil ;-)

Was ich nicht ganz verstehe ist "...auch wenn ich den Aufruf auskommentiere." Welchen Aufruf?

Wenn diese Antwort noch nicht geholfen hat, dann sollten wir auf die E-Mail-Korrespondenz ausweichen (mit angehängtem Quelltext).

- nh


63.)

Fri May 27 10:40:26 2005
Gibt es eigentlich einen speziellen Grund für die Komplexität dieser Typcasts?

Eigentlich sollte doch z.B. bei der Umwandlung eines INTEGERS in einen LONGINT nichts Spannendes passieren und bei der Rückrichtung höchstens mal was überlaufen, oder?

Bei C++ gibt es diese schönen impliziten und expliziten Casts, die nebenbei bemerkt auch den Vorteil haben, dass man nicht erst ewig nach der passenden Funktion suchen muss die Typ A in Typ B konvertiert.

Gibt es da spezielle Vorteile in der Oberonversion oder ist es einfach nur so?

In Oberon lassen sich die numerischen Typen hierarchisch anordnen, wobei (= hier immer fuer ``ist eine Teilmenge von'' stehen moege:

SHORTINT (= INTEGER (= LONGINT (= REAL (= LONGREAL

Zuweisungen und Werte-Parameteruebergaben sind immer ohne eine Konvertierung moeglich, wenn der Typ des zu uebergebenden Wertes eine Teilmenge des Ziel-Typs ist. In der umgekehrten Richtung sind nur zwei Konvertierungs-Funktionen relevant: SHORT und ENTIER. SHORT konvertiert zum naechstkleineren numerischen Datentyp, jedoch nicht ueber REAL -> LONGINT hinweg. ENTIER uebernimmt die Konvertierungen von LONGREAL oder REAL zu LONGINT.

All diese Konvertierungen kommen mit Ueberpruefungen, die sicherstellen, dass der Ausgangswert auch in der kleineren Menge darstellbar ist.

C++ und C implementieren ueberhaupt keine Ueberpruefungen. Da wird also froehlich unbemerkt abgeschnitten. Wer das in Oberon wirklich haben moechte, kann auch die Konvertierungs-Funktion SYSTEM.VAL verwenden:

   VAR
      x: LONGREAL;
      si: SHORTINT;

   (* ... *)

   si := SYSTEM.VAL(SHORTINT, x);

Der Vorteil von Oberon ist der, dass zwischen geprueften und ungeprueften Konvertierungen unterschieden werden kann.

- afb


62.)

Wed May 25 20:14:00 2005
nochmal zu Feedback 61:
Ich habe das mit dem ENTIER(realval) versucht, um die REAL-Variable realval in eine Variabel vom Typ LONGINT zu verwandeln...
Leider funktioniert dann Plotters.Cont immer noch nicht, sondern fordert weiterhin eine Variable vom Typ INTEGER!

In diesem Fall muß das Ergebnis ein weiteres Mal umgewandelt ("gecastet") werden (Casting ist nicht immer nur "Deutschland sucht den Superstar"...), und zwar mit der Funktion "SHORT", also so:

   VAR realval: REAL; intval: INTEGER;
      (* ... *)
         intval := SHORT(ENTIER(realval));

Sorry, das hatte ich eben vergessen!

- nh


61.)

Wed May 25 19:29:18 2005
Nochmal eine Frage zu dem Modul Plotters:
Wenn ich beispielsweise Plotters.Cont(f,x,y) aufrufe und x und y REAL Zahlen sind, dann wird eine Fehlermeldung zurückgeliefert, da Plotters.Cont nur mit REAL-Zahlen arbeitet. Leider sind a,b und auch alle zurückgelieferten Werte von Evaluate REAL-Zahlen. Wie kann ich die denn umwandeln??

Da hat sich wohl ein kleiner Tipfehler in das Feedback eingeschlichen: Plotters.Cont verlangt INTEGER-Zahlen...

...und dann war da noch Feedback Nr. 47... :-)

- nh


60.)

Wed May 25 16:28:47 2005
Hallo,
ich hätte da auch noch eine Frage zum aktuellen Übungsblatt:
Was genau liefert mir die Prozedur Plotters.GetSpace zurück und an welcher Stelle muss ich diese aufrufen?

Frage 1 beantwortet uns ein simples "man Plotters":

"A plotter provides a two-dimensional rectangular discrete space whose dimensions can be retrieved by GetSpace, and, if supported, changed by SetSpace under consideration of the maximal supported space returned by GetMaxSpace"

Zu Frage 2: GetSpace selbst wird nicht unbedingt benötigt, wohl aber GetMaxSpace und SetSpace. Wo? Nun, das braucht man im Zusammenhang mit der Skalierung des Ausgabebereiches, der ja maßstabsgetreu und abhängig von den Extremwerten der Funktion auf dem gewünschten Intervall in der Größe angepasst werden soll.

- nh


59.)

Sun May 22 11:54:20 2005
Hallo,
ich hab da nochmal eine Frage zu dem neuen Übungsblatt:
Was genau habe ich mir unter der Prozedur Create nochmal genau vorzustellen. Seit Donnerstag ist inzwischen leider soviel Zeit vergangen, dass ich nicht weiß, was diese Prozedur eigentlich für eine Funktion hat.

Die Funktion "Create" soll eine lineare Liste erstellen, welche aus den einzelnen Tokens besteht, die zusammen die zu plottende Funktion ergeben. Dazu liest sie aus dem übergebenen Stream "s" die einzelnen Tokens und legt sie in der Datenstruktur "Function" ab, die ja ebenfalls im Modul "Functions" zu implementieren ist und als VAR-Parameter übergeben wurde. Wenn das Einlesen erfolgreich war, soll TRUE zurückgeliefert werden, sonst FALSE.

Noch ein Tip: Alles, was mit dem Einlesen zu tun hat, kann (mit nur minimalen Veränderungen) aus der Beispiellösung zu Aufgabe 5 übernommen werden. Wichtig bzw. Neu ist bei "Create" lediglich, daß die eingelesenen Tokens in der Datenstruktur "Function" landen sollen und man auch das "x" (die Veränderliche) als Token besonders behandeln / erkennen muß.

Übrigens: Die Formulierung aus Ihrem Feedback "...was diese Prozedur eigentlich für eine Funktion hat..." ist ja schon fast ein Oxymoron... ;-)))

- nh


58.)

Fri May 20 17:53:00 2005
<Opera Meldung>
Internal error in FTP module

You tried to access the address
ftp://ftp.mathematik.uni-ulm.de/pub/vorlesungen/ss05/ai2/uebungen/blatt5/bsp/interfaces/Functions.od, which is currently unavailable. Please make sure that the Web address (URL) is correctly spelled and punctuated, then try reloading the page.
</Opera Meldung>

Die andere .od lässt sich öffnen

Ein Reload wird nicht helfen. Wenn direkt Opera verwendet wird ohne zwischenliegenden Proxy, kann es nicht funktionieren, da Opera auf ein voellig obsoletes ``MODE B'' im FTP-Protokoll besteht und nur EPSV kann, jedoch weder POST noch PASV. Das ist kein brauchbarer FTP-Klient! Also bitte einen Proxy einsetzen, der die Opera-Merkwuerdigkeiten toleriert oder zu einem anderen FTP-Klienten wechseln.

- afb


57.)

Tue May 17 14:37:33 2005
Da es lange keinen neuen Kommentar mehr gab, mal wieder etwas Schwung ins
Feedback:

Zweiter offizieller Geschwindigkeitstest
--- es ist jetzt 14:39, Dienstag der 17te Mai ---




LOS!

Bislang habe ich wirklich ausnahmslos jedes Feedback beantwortet, das mich erreicht hat. Aber ich denke, es dürfte allen klar sein, daß ich meine Zeit nicht gestohlen habe und sie mir zum Beantworten derartiger Nonsens-Inhalte zu kostbar ist.

In diesem Sinne haben Sie zwar nun erreicht, was Sie wollten: eine schnelle Antwort, aber zukünftige Feedbacks dieser Art wandern ab jetzt in ">/dev/null" (falls Sie verstehen, was ich meine...).

- nh (leicht verärgert)


56.)

Thu May 12 17:37:31 2005
Bin ich blind oder ist die Liste mit den freien Tutorneterminen verschwunden?

Keine Sorge - Sie brauchen nicht zum Augenarzt! Ja, die Liste mit den freien Tutorenterminen ist nicht mehr online. Ich dachte mir, in der nunmehr 5. Semesterwoche wird wohl jeder sein Tutorium gefunden haben.

Wenn dennoch ein (anderer) Tutoriumstermin gesucht wird, so können wir dies (unter Angabe eines Grundes) per E-Mail regeln.

- nh


55.)

Thu May 12 11:13:13 2005
Hallo

ich finde die Auffrischungsstunden am Freitag super. Es würde mich allerdings noch mehr freuen, wenn wir in einer dieser Stunden noch das Thema des jetzigen Semesters naemlich Zeiger und Lineare Listen behandeln würden.

Auch kein Problem - das haben wir auch vor!

Wie schon in den Feedbacks 48 und 44 versprochen, werden wir zunächst den Stoff des letzten Semesters wiederholen und danach mit dem Stoff des laufenden Semesters fortfahren.

- nh


54.)

Wed May 11 10:27:16 2005
Hallo

ich finde die Nachbereitungsstunden am Freitag spitze (und vor allem sehr lehrreich). Es würde mich allerdings noch mehr freuen, wenn wir in einer dieser Stunden noch das Thema "Streams und Unix Files" abhandeln würden.

Kein Problem - das lässt sich ohne Weiteres machen. Am kommenden Freitag (13.05.) steht zwar schon die Argumentverarbeitung auf dem Programm, aber wir können das Thema "Streams & Co." dann gerne am 20.05. behandeln.

Anregungen und Themenwünsche sind übrigens immer herzlich willkommen!

- nh


53.)

Sat May 7 18:00:49 2005
Treffender kann man´s nicht sagen:
"Als nächstes würde ich nun das Studium der deutschen Kommaregeln empfehlen...!" (Zitat -nh) ;-)

;-)

- nh


52.)

Fri May 6 18:10:15 2005
Kann es vielleicht sein, dass mit dem Putty zur Zeit irgendwas schief läuft? Ich hab jetzt ein paar mal versucht mich einzuloggen... das hat ja geklappt, aber ich lande nicht in meinem heimatverzeichnis und habe überhaupt keine Ahnung wo ich bin.

Es sieht aus, als wäre ich bei irgendjemand anderem... Kann nur hoffen, dass ich noch existiere!!! Hilfe!!

Siehe Feedback #51!

- nh


51.)

Fri May 6 18:03:29 2005
Hallo.

Kann es sein vielleicht sein, dass sich die Theseus irgendwie abgeschossen hat? Ich krieg weder mit Putty noch mit Cygwin Zugriff auf mein Verzeichnis. Entweder ich bekomm einen Timeout-Error präsentiert, oder ich lande im "/" Verzeichnis, mit (natürlich) 0 Rechten.

Was in aller Welt ist da los? Ich hab mal ins "/Theseus" Verzeichnis reingeschaut.... komplett leer, wo ich ansonsten die einzelnen Verzeichnisse gesehen hab. Ich hab weder bei Putty noch bei Cygwin die Einstellungen verändert, daran kanns also auf gar keinen Fall liegen.

Auch hab ich keine Ankündigung mit Serverwartung o.ä. gesehen. Können Sie mir bitte sagen was da los ist? Und bis wann man wieder mit Zugriff rechnen kann?

Vielen Dank.

Ja, Ihre Vermutung ist richtig: Die Theseus - und damit auch die Heimatverzeichnisse aller Studenten - stehen momentan wegen Wartungsarbeiten nicht zur Verfügung. Die Wartung dauert vermutlich so ca. zwei Stunden (also bis gegen 20 Uhr heute abend).

Da die Wartungsarbeiten nicht vorgesehen waren, konnte vorab auch keine Ankündigung erfolgen! Sorry!

Siehe auch hier!

Also: Sie können jetzt erstmal ruhigen Gewissens in den Biergarten gehen ("Ich wollte ja programmieren, aber...")

- nh


50.)

Fri May 6 12:22:32 2005
mal ne persönliche Frage an -nh:
War das bei Ihnen im Semester damals auch so, dass vielleicht 5% die Übungsaufgaben selber gemacht haben?(abgesehen vllt von den ersten 3-4 Übungsblättern letztes Semester und den ersten 3 Aufgaben dieses Mal)
Und vor allem: bleibt Informatik auch im Hauptstudium so aufwendig dass keiner Lust hat was dafür zu tun?

Ja, auch bei uns damals im Semester haben nur 5% wirklich selber programmiert. Die anderen 95% mussten im Uni-Keller auf Heimtrainern trampeln, um den Strom für die Rechner zu produzieren, denn Elektrizität war damals noch nicht selbstverständlich!

Also: es gab immer schon leichtere und schwerere Aufgaben, es gab immer schon einwöchige und zweiwöchige Übungsblätter, und es gab auch immer schon Gemeckere. Aber wenn von den bisherigen fünf Aufgaben in diesem Semester doch drei okay waren, wo ist dann das Problem?

- nh


49.)

Fri May 6 11:14:00 2005
Nachdem ich jetzt die hyperbolischen Funktionen inklusive der Umkehrungen eingebaut habe, ist mir wieder langweilig geworden und ich habe mich erneut dem Arcussinus zugewandt. Dank mithilfe von Physikern, die ja bekanntlich Taylorreihenkoeffizienten sogar ausrechnen und sich nicht damit zufrieden geben dass die Reihe konvergiert gelang es mir die ersten 150 Entwicklungsschritte für arcussinus zu implementieren. Bei mehr werden die Zahlen einfach zu groß :)

Aber bis auf das 1 sin asin 0.999999 liefert klappt es auch bei allen Zahlen. Da der Arcuscosinus dann ja auch kein Problem mehr ist, ist er jetzt auch drin. JETZT darf mein Programm Caluclator heißen!

Wow, das hassu aber fein gemacht...! Wir sind alle ungemein beeindruckt und stolz!

Als nächstes würde ich nun das Studium der deutschen Kommaregeln empfehlen...!

Und dann darf das Programm auch Calculator heißen (und braucht sich nicht mehr mit dem Buchstabendreher abzugeben!)

- nh


48.)

Fri May 6 07:47:56 2005
1.
---------------------------------------------------
(Original erstellt von N.H.)
Gerade heute haben wir die Raumreservierung für Freitag, 8-10 Uhr bis zum Ende des Semesters verlängert. Das heißt, wenn auch weiterhin Interesse besteht, dann lassen wir die Freitagstutorien im "Lab"-Format solange weiterlaufen, bis wir den Stand der aktuellen Vorlesung erreicht haben - aber natürlich nur, sofern wir diese Auffrischungen auch weiterhin "nachgefragt" (also besucht ;-)) werden.
----------------------------------------------------
man könnte diese extra-übungen ja auch zum aktuellen stoff veranstalten (also nicht zusätzlich, die beiden chefs müssen ja nicht zuuu viel extra arbeit aufgehalst bekommen), denn diese betreuten aktionen sind die beste art, programmieren zu lernen. wenn man das alleine versucht oder in der kleingruppe schwindet bei einem kleineren problem schnell die motivation und die lust weiterzumachen.

2.
gibt es einen Befehl, der die CAP-Funktion umdreht, also Groß - in Kleinbuchstaben umwandelt?

3.
Erster offizieller Geschwindigkeitstest im Anonymen Feedback - es ist jetzt Freitag, der 6.Mai, 07:48 Uhr.

zu 1.)
Genau das war mit meiner zitierten Antwort gemeint. Wenn wir jetzt bald mit dem Stoff des ersten Semesters durch sind, können wir in den Freitagstutorien dann gerne auch den aktuellen Stoff behandeln.

zu 2.)
Nein, eine Umkehrung der CAP-Funktion gibt es nicht, die kann man sich aber leicht selber basteln (mit ORD() und CHR() - 'ne nette Übungsaufgabe für die Mittagspause heute!)

zu 3.)
Es ist Freitag, der 6. Mai, genau 08:01. Geschwindigkeitstest bestanden???
(Beachte dabei: Die Antwort auf dieses Feedback hat heute morgen schon mehr als 500 km hinter sich gebracht, weil ich nämlich derzeit gar nicht in Ulm bin!)

- nh


47.)

Wed May 4 20:57:20 2005
Jetzt hab ich da auch mal eine Frage:
Wie wandelt man den in Oberon eine REAL-Variable in eine INTEGER-Variable um?

Werte des Typs REAL oder LONGREAL koennen mit der Standardfunktion ENTIER in LONGINT konvertiert werden. Dabei wird immer nach unten abgerundet.

Beispiel:

   VAR realval: REAL; intval: LONGINT;
      (* ... *)
         intval := ENTIER(realval);

- afb


46.)

Tue May 3 21:55:48 2005
Hallo erstmal
ich hätte da mal ne Frage zum aktuellen Übungsblatt.

Und zwar würde ich doch gerne mal wissen, wie ich es schaffe, zwei operatoren mit einem Operanden wieder zu einem neuen Operator zu verknüpfen, wenn ich doch nicht genau weiß, wie der Operand eigentlich aussieht.

Im moment steh ich da leider völlig auf dem Schlauch!

Kann es sein, daß hier Operanden und Operatoren verwechselt werden? Operatoren sind z.B. "+", "-", "sqrt" usw., und Operanden sind die zugehörigen "Zahlen", auf die die Operatoren angewendet werden.

Beispiel: Bei der Eingabe "5 2 +" sind "5" und "2" die Operanden und "+" ist der Operator.

Und bei der Aufgabe soll es nun so laufen, daß Operanden auf den Stack gelegt werden, und -- wenn ein Operator gelesen wurde -- die benötigte Anzahl von Operanden vom Stack geholt, die Berechnung durchgeführt und das Ergebnis (also als ein "neuer Operand") wieder auf den Stack gelegt wird.

- nh


45.)

Tue May 3 21:52:14 2005
Ich möchte auch ein Lob aussprechen, die Vorlesung heute war ziemlich gut! :-)

Vor allem wegen dem Erarbeiten von Ideen an der Tafel. Ich habe aus dieser Vorlesung sicher mehr mitgenommen als wenn man (wie meistens) nur Folien gezeigt hätte. Wäre schön, wenn sie das öfters so wie heute gestalten könnten, Herr Borchert! Danke!

Hier jagt ja ein Lob das nächste. Machen wir irgendwas falsch?

- nh


44.)

Tue May 3 14:35:33 2005
Ich möchte mich bei Herrn Dr.Borchert bedanken. Es ist echt nett von Ihnen, uns die Auffrischungen anzubieten. Ich habe jetzt viel mehr als vorher verstanden.

Vielen Dank!

Gerade heute haben wir die Raumreservierung für Freitag, 8-10 Uhr bis zum Ende des Semesters verlängert. Das heißt, wenn auch weiterhin Interesse besteht, dann lassen wir die Freitagstutorien im "Lab"-Format solange weiterlaufen, bis wir den Stand der aktuellen Vorlesung erreicht haben - aber natürlich nur, sofern wir diese Auffrischungen auch weiterhin "nachgefragt" (also besucht ;-)) werden.

Auf der Vorlesungshomepage können dann jeweils die Termine und die Themen angeschaut werden.

- nh


43.)

Mon May 2 18:42:52 2005
afb schrieb:
[...]Aber dann ist dem Compiler bei einer Vorausschau von einem Symbol
nicht mehr klar, wo genau der naechste CASE-Fall beginnt, denn
das ``|'' das als OR interpretiert werden soll, koennte auch als
Fall-Trenner interpretiert werden:[...]

Ohne dem Herrn Wirth nun zu nahe treten zu wollen, genau da sehe ich ein großes Manko der Sprachdefinition von Modula 2 bzw. Oberon. Hätte man die Syntax so gelassen, wie sie ursprünglich in PASCAL war, hätte man von vornherein diese mögliche Kollision umgehen können. Zumindest bei der "Neu"definition von OBERON hätte man hier dran denken können. Aber Herr W. hat ja lieber sinnvollere Sachen wie "FOR-Schleifen" rausgelassen, weil er die selber nie gebraucht habe.

Ich als Zwangsumsteiger PASCAL --> OBERON hingegen finde es einfach nur lästig jedes Mal an das INC() zu denken. Natürlich ist es mühsig hierrüber zu diskutieren, aber vielleicht liese sich ja auch (das Ulmer) OBERON einmal weiterentwickeln (oberon-2 gibt es ja glaube ich schon, deshalb vielleicht "OBERON X" oder wie immer man es dann nennen mag [der Jupiter hat ja noch ein paar mehr Monde] ;-))

und jetzt wo ich schon dabei bin, HTML-Formatierungen hier mit reinzuwursteln
ein script-injection-test ;-) [ich weiß, die Ressource Mensch wird den wohl
filtern (oder gar irgend ein bösartiger Filter ;-) ...]:
<script language="JavaScript" type="text/javascript">document.write("TEST");</script>
So, ma guggen ...

So, die Ressorce "Mensch Norbert" hat den Code nicht gefiltert, als Zeichen dafür, daß wir keine Zensur bei den Feedbacks vornehmen. Aber in gewisser Weise unbrauchbar gemacht ist der Code dennoch... ;-) Was den Rest des Feedbacks angeht, so gebe ich ab an die nächste Ressource Mensch.

- nh

Zunaechst haette ich eine Bitte. Wir sollten das anonyme Feedback nicht in ein allgemeines Diskussionsforum ueber Oberon verwandeln, sondern es primaer dazu nutzen, wozu es gedacht ist: Zum anonymen Einreichen von Kommentaren zur Vorlesung, den Uebungen und den Tutorien.

Modula-2 und Oberon sind gewaltige Schritte vorwaerts in der Entwicklung im Vergleich zu Pascal. Auch in der Grammatik. Entsprechend ist es ziemlich absurd, von einem ``grossen Manko'' hier zu sprechen. Ich moechte an dieser Stelle beispielsweise an die Probleme der Grammatik fuer Mengen in Pascal erinnern, die unseligen begin/end-Paare, um Anweisungen zusammenzufassen, die Mehrdeutigkeiten der Zuordnung von ELSE an das IF, die Abwesenheit eines ELSIF und die Konflikte bei der CASE-Anweisung. Pascal war ein wichtiger Entwicklungsschritt 1968 und in den darauffolgenden 70ern, aber es haelt einem Vergleich mit den Nachfolgern von Wirth nicht stand.

Grundsaetzlich bin ich extrem zurueckhaltend mit lokalen Spracherweiterungen, da dies nur zu weiteren Portabilitaetsproblemen fuehrt. Am Ende sind fast immer die Kosten hoeher als der erwartete Gewinn. Oberon-2 gibt es schon seit Anfang der 90er Jahre und bietet auch eine FOR-Schleife, falls das fuer jemanden von Interesse sein sollte. Oberon-2 hat einige sinnvolle Ergaenzungen, aber die sogenannten typgebundenen Prozeduren aus Oberon-2 lehne ich als ueberfluessig ab und habe deswegen nie Arbeit in eine Adaption von Oberon-2 investiert.

Ich gebe frei zu, dass ich (wie Niklaus Wirth) ein Minimalist bin und dass dieser Geschmack nicht von vielen geteilt wird. Aber Minimalismus hilft sehr, mit wenig Personalaufwand viel zu erreichen. Und immerhin ist das Ulmer Oberon-System eines der ganz wenigen Systeme, die voellig unabhaengig von der Welt von C und ihren Einschraenkungen und inhaerenten Sicherheitsproblemen sind. Wer beispielsweise mit Java programmiert, lebt mit C und all seinen Problemen. Es waere moeglich, Java ohne C zum Leben zu erwecken, aber diese Arbeit hat offenbar niemand bislang getan und sie wuerde auch bedeuten, dass dann die ganzen Java-Bibliotheken von Sun wegfallen wuerden, da die externen C-Code benoetigen oder eine komplette Re-Implementierung desselben.

Das gesamte Ulmer Oberon-System besteht aus 100% freier Software (GNU General Public License) ohne irgendwelche Abhaengigkeiten. Wer Lust auf Oberon-2 hat, ist herzlich eingeladen, den Compiler entsprechend zu erweitern. Fuer mich persoenlich steht das jedoch nicht oben auf der Prioritaetenliste.

Zu guter Letzt darf ich vielleicht noch auf einen kleinen Irrtum aufmerksam machen: Oberon ist kein Mond des Jupiter, sondern des Uranus. Weitere Monde sind beispielsweise Titania, Ariel, Miranda, Umbriel, Belinda, Portia, Sycorax etc -- alles Figuren aus der englischen Literatur, insbesondere natuerlich Shakespeare. Niklaus Wirth hat seine Programmiersprache Oberon getauft, als gerade Bilder des Uranus-Systems von Voyager II an die Erde gefunkt und veroeffentlicht wurden. Er wollte mit diesem Namen an ein anderes erfolgreiches Projekt anknuepfen. Wesentlich ist bei Voyager ebenfalls der Minimalismus, weil dies eine Grundvoraussetzung fuer stabile und zuverlaessig funktionierende Systeme ist.

- afb


42.)

Sat Apr 30 14:21:36 2005
Betreff: Lautstärke in den Übungen
Ich finde die Lautstärke in den Übungen war die letzten 2 mal eine Zumutung! Sowohl für den Norbert, als auch für Leute die eigentlich aufpassen wollten!!
Wer sich langweilt soll doch bitte daheim bleiben! Ich könnte mir Donnerstag von 16-18h was schöneres Vorstellen als Info (nix für ungut Norbert ;-))...

Danke!

Etwas schöneres als Info-Übungen? So etwas gibt's? Kann ich gar nicht glauben... ;-)

Aber es stimmt schon: In den Übungen ist es mitunter viel zu unruhig. Wenn's selbst einigen von Euch zu laut ist, dann sprecht die Störenfriede ruhig unmittelbar an. Ich helfe dabei gerne...

- nh


41.)

Fri Apr 29 17:58:43 2005
Moin,
also ich hätte da mal eine Frage, bzw. Bitte an Dr. Borchert, welcher ja für unseren Oberon Compiler verantwortlich ist.

Mich interessiert, wieso man für eine "und"-Verknüpfung ein & und für eine "oder"-Verknüpfung OR schreiben muss. Wäre es nicht sinnvoller auch ein AND zuzulassen, bzw. ein | denn so wie ich das sehe werden diese eh nicht genutzt, also könnte man es doch mit einbauen. Würde das ganze etwas logischer machen.

Der Ulmer Oberon-Compiler haelt sich ziemlich genau an die Sprachdefinition fuer Oberon von Niklaus Wirth [1]. Historisch gesehen gab es zunaechst die Operatoren NOT, AND und OR in Pascal und in Modula-2. Beginnend mit PIM3 [2] kam in Modula-2 als Alternative zu AND noch & hinzu und statt NOT konnte seitdem auch ~ notiert werden. In den Sprachdefinitionen von Oberon hatte Niklaus Wirth dann NOT und AND herausgeworfen, so dass nur noch ~, & und OR uebrigblieben.

Es bleibt die Frage, warum Wirth nie | fuer OR eingesetzt hat. Das haette er wohl getan, wenn das nicht zu einem grammatikalischen Konflikt gefuehrt haette, da | im Rahmen von CASE-Anweisungen verwendet wird, um einzelne Faelle voneinander abzutrennen. Es hilft, einen genaueren Blick auf die EBNF-Grammatik von Oberon zu werfen [3]:

   <CaseStatement> --> CASE <Expression> OF <Case> {``|'' <Case>} [ELSE <StatementSequence>] END
<Case> --> [<CaseLabelList> ``:'' <StatementSequence>]
<CaseLabelList> --> <CaseLabels> {``,'' <CaseLabels>}
<CaseLabels> --> <ConstExpression> [".." <ConstExpression>]


Aus der Produktion von <CaseStatement> koennen wir folgenden Teil herausgreifen:

   <Case> ``|'' <Case>


Das laesst sich ableiten zu

   <CaseLabelList> ``:'' <StatementSequence> ``|'' <Case>


Da
   <StatementSequence> --> <Statement> {``;'' <Statement>}
geht es weiter mit

   <CaseLabelList> ``:'' <Statement> {``;'' <Statement>} ``|'' <Case>


Daraus laesst sich wieder ein Teil-String herausgreifen:

   <Statement> ``|'' <Case>

Wegen <Statement> --> <Assignment>, ist folgende Ableitung moeglich:

   <Assignment> ``|'' <Case>

Wegen <Assignment> --> <Designator> ":=" <Expression> erreichen wir
dann:

   <Designator> ":=" <Expression> ``|'' <Case>

Wie sich daraus ersehen laesst, kann ein <Expression> direkt mit
dem ``|''-Trenner der CASE-Anweisung in Beruehrung kommen. Schauen
wir uns eine korrekte CASE-Anweisung in Oberon beispielhaft an:

   (* VAR b: BOOLEAN *)
   CASE b OF
   | FALSE: b := FALSE OR TRUE
   | TRUE:  b := FALSE
   END;

Hier stoesst ``FALSE OR TRUE'' als <Expression> unmittelbar auf
``|''. Wenn nun OR durch ``|'' ersetzt werden duerfte, wuerde das
so aussehen:

   (* VAR b: BOOLEAN *)
   CASE b OF
   | FALSE: b := FALSE | TRUE
   | TRUE:  b := FALSE
   END;

Aber dann ist dem Compiler bei einer Vorausschau von einem Symbol
nicht mehr klar, wo genau der naechste CASE-Fall beginnt, denn
das ``|'' das als OR interpretiert werden soll, koennte auch als
Fall-Trenner interpretiert werden:

   (* VAR b: BOOLEAN *)
   CASE b OF
   | FALSE:        b := FALSE
   | TRUE | TRUE:  b := FALSE
   END;

So, wenn zuvor ~b gilt, welchen Wert hat b danach?

[1] http://www.mathematik.uni-ulm.de/oberon/reports/report-1992.html
http://www.mathematik.uni-ulm.de/oberon/reports/ulmdiff-1994.html
[2] Abkuerzung fuer ``Programming in Modula-2'' von Niklaus Wirth, 3rd Edition, Springer-Verlag
[3] http://www.mathematik.uni-ulm.de/sai/ws04/prog/slides/grammars-13.html und folgende Seiten

-afb


40.)

Fri Apr 29 17:15:19 2005
hallo,

ich hab mal eine frage zur aktuellen übungsaufgabe, wie ist das z.B. wenn i ch
5, 2 und 7 addieren möchte, schreib ich dann:
5 2 7 +
oder 5 2 + 7 +
Also ich meine können auf meinem Stack auch mehr als 2 Zahlen sein?

Das sind zwei Fragen, die miteinander nur auf den ersten Blick zu tun haben:

Fangen wir mit der letzten Frage an: Ja, auf dem Stack können mehr als 2 Zahlen sein. Allerdings kümmern sich die Operatoren nur um die obersten beiden (oder gar nur um die oberste Zahl, wenn's ein unitärer Operator ist). Nach der angegebenen Grammatik ist es übrigens auch erlaubt (und es funktionert auch!), daß erst alle Zahlen und dann die Operatoren angegeben werden.

Etwas anderes ist aber die Verwendung der Zahlen auf dem Stack (also Frage Nr. eins). Der Operator "+" ist ein binärer Operator und nimmt sich daher genau zwei Zahlen (Operanden) vom Stack, addiert sie und legt das Ergebnis zurück auf den Stack. Von allen anderen eventuell noch auf dem Stack vorhandenen Zahlen bekommt der Operator gar nichts mit. Und das selbe gilt natürlich für alle anderen Operatoren, insbesondere auch die unitären.

Wenn man also 5 + 2 + 7 berechnen möchte, so muß die Eingabe entweder

5 2 + 7 +

oder

7 2 5 + +

lauten.

(Letzteres war eine völlig berechtigte Frage gestern in den Übungen. Diese Schreibweise ist auch okay, aber zum Verständnis empfiehlt sich eher die erstere, die ja auch auf dem Übungsblatt zu finden ist.)

- nh


39.)

Fri Apr 29 14:42:46 2005
Sehe ich richtig, dass es keinen Arcsin und Arccos in Oberon gibt? Ich kann ja einen Taschenrechner bauen, aber der hat den Namen ohne Arcussinus und Arcuscosinus nun eigentlich nicht verdient, oder?

Wann kommt endlich mal Objektorientierte Programmierung? Damit könnte man diese Sache mit den Operatoren viel sauberer lösen :(

Okay, gut: die Arcus-Funktionen sind im Math-Modul nun nicht vorhanden, aber Ziel der Aufgabe sollte es auch nicht sein, Maple nachzuprogrammieren. Daher dürfte es wohl entbehrlich sein, wenn der Taschenrechner keine Berechnungen von Arcsin und Arccos durchführen kann.

Die erste Vorstufe zur Objektorientierung in Oberon ("Modularisierung") kommt schon in Kürze, und ob wir in diesem Semester noch "so richtig" objektorientiert werden hängt ein wenig von der Zeit ab, die uns so bleibt.

- nh


38.)

Fri Apr 29 13:58:34 2005
Hallo!
Jetzt nutze ich mal die Gelegenheit unserem Dozenten und Übungsleiter ein RIESEN Lob auszusprechen!!!
Fuer die ( zusaetzliche ) Seminare am Freitag auch ein Dankeschoen!! Sich soviel Mühe zu geben, ist meiner Ansicht nach (wenn's so weiter geht... :-) ) richtig bemerkenswert!!!
Weiter so!
:-)

Hey, wir werden ja noch ganz rot bei so viel Lob... Vielen Dank!

Ansonsten: siehe Antwort zu Feedback 37! Wenn es gut ankommt und etwas bringt, k önnen wir gerne mit den Nachhilfetutorien weitermachen!


- nh


37.)

Fri Apr 29 12:58:33 2005
wollte unbedingt noch was zur heutigen wiederholung sagen: danke!
endlich mal ein laufendes oberon-programm und das sogar fast alleine programmiert. wirklich ne gute sache diese freitags-kurse

:)

War auch mein Eindruck, daß es heute bei (fast) allen schon vieeeel besser lief als vor 14 Tagen (letzte Woche konnte ich ja nicht dabei sein). Und das motiviert natürlich alle Beteiligten - auch Herrn Borchert und mich! Uns macht's jedenfalls Spaß!

Deshalb können wir auch gerne an diesen Freitagstutorien erstmal festhalten (wie gesagt: nächste Woche zwar nicht, aber in 14 Tagen - wenn Herr Borchert nicht da ist - könnte ich es übernehmen.)

- nh


36.)

Fri Apr 29 11:13:18 2005
Hätte eine Frage zum Zeiger:
Ist z.B. die Suchmaschine Google auch ein Zeiger, da man durch Google auf den Speicherplatz im ganzen Web weitergeleitet wird?

Es zeigt mir doch Informationen über ein Begriff den ich eingebe,wie im Beispiel in der Übung, wo ich den Namen und die Nummer des Kunden erfahren kann den ich Suche.

Naja, also, äh, dieser Vergleich erscheint mir etwas weit hergeholt.

Wenn ich die Frage richtig verstehe, dann fragen Sie, ob Hyperlinks dasselbe sind wie Zeiger. Und diese Frage kann ich eigentlich nur mit einem klaren NEIN beantworten.

Vage erinnert die Sache mit den Hyperlinks vielleicht an die lineare Liste, die ich gestern in den Übungen erläutert habe, denn man wird von einem Speicherort (HTML-Seite) zu einem anderen geführt und bekommt so eine Kette von zusammenhängenden Seiten.

Was aber einen Zeiger in unserem Sinne hier ausmacht ist, daß er auf einen Bereich im Hauptspeicher des jeweilgen Rechners zeigt und niemals über Rechnergrenzen hinweg. Und halt nur auf einen Bereich im Hauptspeicher, nicht aber HTML-Seiten oder so...!

Und außerdem ist es nicht das wesentliche Merkmal eines Zeigers, eine lineare Liste oder eine ähnliche Datenstruktur zu bilden, sondern da ist er nur Mittel zum Zweck. Wofür man Zeiger noch so alles brauchen kann, wird spätestens klar, wenn im dritten oder vierten Semester mit der Programmiersprache C gearbeitet wird.

- nh


35.)

Fri Apr 29 07:19:02 2005
Hallo,

um nicht immer online auf die Übungsblätter zugreifen zu müssen, speichere ich sie mir lokal ab.
Dabei ist mir aufgefallen, daß sämtliche Bilder als Textdateien verlinkt sind - das ist zwar innovativ und funktioniert auch ganz gut. Nur die armen User mit Internet Explorer haben keine Chance, die integrierten Bilder anzusehen. Und der hat immerhin noch 85% Marktanteil! ;)
Ich weiß, ich weiß, alles standardisiert und wenn sich MS nicht dran hält, sind sie selbst schuld etc...
Trotzdem, wäre es der Benutzerfreundlichkeit willens unkompliziert, bei der
Generierung der Bilder auf PNG zu schalten?

Wenn ich ehrlich bin, habe ich das jetzt nicht ganz verstanden!
Zunächst mal: Die Bilder (im aktuellen Übungsblatt 3 ist es konkret die Grammatik) liegen doch als PNG-Datei vor. Als "ALT"-Tag steht dann dort der LaTeX-Code, der wahrscheinlich das ist, was hier als "Textdatei" bezeichnet wird. Und in der Regel wird der nur dann angezeigt, wenn das Bild nicht gefunden wurde. Daher die Frage: Wurden denn außer der HTML-Seite auch die Bilder mit abgespeichert?

Dann habe ich mir die Seite gerade mal auf dem Internet Explorer angesehen, aber keinerlei Schwierigkeiten gehabt. Es wurde alles astrein angezeigt.

Und noch einen Tip: Ghostview und Ghostscript für Windows herunterladen, installieren und dann die Übungsblätter im PS-Format verwenden. Das spart Papier, die Bilder gibt es sogleich dazu, und vom Layout her ist das nicht zu überbieten!

- nh


34.)

Thu Apr 28 17:40:04 2005
Re: Kommentar 33.

Wenn wir schon beim Thema sind, ich als Tutor möchte auch noch einmal daran erinnern, die Betreuung durch Eure Tutoren geht bei weitem Weiter als die meisten von Euch sie nutzen.
Es beißt Euch niemand den Kopf ab, wenn Ihr mal nicht weiterkommt, nur wenn Ihr wirklich an einer Stelle hängt, dann FRAGT, schickt ne Mail, nutzt ICQ oder wie auch immer, Eure Tutoren sind für Euch da! Nur ohne Ansatzpunkte können wir auch schlecht helfen.
Gruß,

Lorenz

Dem kann ich nur zustimmen: Fragen kostet nichts, auch nicht bei den Tutoren! Wenn Unklarheiten oder Probleme beim Programmieren auftauchen, dann sind die Tutoren allesamt per E-Mail erreichbar und helfen gerne weiter! Dieses Angebot solltet Ihr nicht ungenutzt lassen - und auch nicht warten, bis die Lücken zu groß geworden sind, um sie noch schließen zu können!

Wir haben in diesem Semester glücklicherweise sehr viele und vor allem auch wieder sehr gute und engagierte Tutoren zur Verfügung. Und erstmals verteilen sich unsere Tutoren auch quer durch alle im "Publikum" vertretenen Studienfächer, so daß alle Probleme, die man in den einzelnen Studiengängen im 2. Semester so haben kann, bei mindestens einer/einem auf Verständnis stoßen. Also: nutzt dieses Angebot!

- nh


33.)

Wed Apr 27 19:36:36 2005
hi,
also, ich wollte auch mal ein lob für die ganze betreuung (d.h. übunge n, vorlesung, tutorien, !verfügbarkeit von hilfsmaterialien auf der homepage!, sympathische dozenten :D etc.) der studenten im fach allgemeine informatik 2 aussprechen. das ist echt top (schön wäre es wenn das in allen anderen fächern genauso wäre..), auch wenn die übungsaufgaben nicht immer ganz einfach zu lösen sind, aber was will man bei unseren studiengängen auch anderes erwarten :(.....

gruss floar

Na, das Lob nehmen wir doch gerne an. Wir haben ja auch schon lange keins mehr bekommen ;-). Vielen Dank!

- nh


32.)

Wed Apr 27 13:29:20 2005
Hi,
was macht man den, wenn der Tutuor nicht da ist, wenn man die Lösungen vorstellen soll???

Hab ich das jetzt umsonst programiert??? :-((

Wäre schade drum...

Haben Sie denn keine E-Mail vom Tutor erhalten, in der er Ihnen schreibt, daß er nicht kommen kann und ggf. einen Ausweichtermin oder einen Ausweichtutor für das Tutorium nennt?

Wenn nicht, dann können Sie auch gerne bei mir vorbeikommen (HeHo 18, Zimmer E23), dann werde ich mal für ein paar Minuten zum Tier, äh... Tutor!

- nh


31.)

Mon Apr 25 19:50:26 2005
hi

ich habe auch cygwin installiert und dasselbe problem mit den farben wie schon einer vor mir...
also gebe ich man xterm ein und es erscheint eine völlig nichtssagende manualseite. ich weiss ja nicht ob sies vorher angeschaut haben nobbi oder ob es bei ihnen anders aussieht, aber ich würde trotzdem gern wissen wie ich mein fenster farbig anpassen kann - va dauerhaft farbig anpassen. ich bin mir dessen bewusst dass das bei linux alles immer umständlich und gut versteckt ist aber vielleicht können sie mir da ein bisschen unter die arme greifen..
thx

Der einfachste Weg, (vernünftige) Farben in den Xterm zu bringen, ist die Angabe entsprechender Parameter auf der Kommandozeile:

xterm -bg blue -fg yellow &

ruft zum Beispiel ein Xterm mit blauem Hintergrund (bg) und gelber Schrift (fg = Foreground) auf. (Okay, das sieht zwar furchtbar aus, ist aber auch nur ein Beispiel).

Eine Übersicht über alle verfügbaren Farbnamen gibt es in der Datei rgb.txt im Unterverzeichnis "lib" des X-Verzeichnisses. Wo genau dies unter CygWin ist, kann ich gerade nicht genau sagen. Auf der Theseus ist diese Datei jedoch unter

/usr/X/lib

zu finden.

Um diese Einstellung dauerhaft zu bekommen, kann man den obigen Aufruf mit dem VI in eine Datei namens "MyXterm" schreiben, diese ausführbar machen (chmod +x MyXterm) und von nun an immer MyXterm aufrufen.

Sicher geht es auch irgendwie anders, aber das ist nun erstmal der schnellste Weg!

- nh


30.)

Mon Apr 25 16:18:18 2005
Hab gerade Aufgabe 1 von Blatt 2 Programmiert und die Aufgabe 2 schon des oefteren durchgelesen!
Ich habe irgend wie keine Ahnung was das mit der 1 zu tun haben koennte! So wie das in der Uebung gesagt wurde!
Wenn ich ganz ehrlich bin weiss ich auch nicht was Aufg. 2 mit Rekursionen zu tun haben soll!
Gibts vielleicht nen kleinen Tipp?

Die erste Aufgabe von Blatt 2 (McCarthy) hat mit der zweiten Aufgabe (Restaurant -Aufgabe) absolut nix zu tun! Ich habe in den Übungen aber bestimmt auch nichts Gegenteiliges behauptet. Bei dem Lärmpegel zu Beginn der Übung kann ich mir aber sehr gut vorstellen, daß etwas anderes angekommen ist!

Aber natürlich steht Aufgabe 2 in Zusammenhang mit Rekursionen. Wie? Nun, ein kleiner Tip: Wenn es sechs Speisen gibt und wir eine davon "festhalten", dann ist die sich nun ergebene Fragestellung dieselbe, nur mit dem Unterschied, daß wir sie für fünf Speisen stellen. Von diesen fünf halten wir nun wieder eine fest und erhalten dasselbe Problem, nur für vier Speisen. Na, klingelt etwas?

- nh


29.)

Mon Apr 25 12:11:08 2005
Hallöchen,ich hab da ein kleines Problem:

Wie bring ich C++ unter Cygwin zu laufen?

Es heißt, dass ich einfach nur n makefile runterladen muss, aber irgendwie geht das nicht.

Bin für jede Hilfe dankbar

Was hat denn diese Frage mit der Vorlesung AI 2 zu tun? Und inwieweit handelt es sich hierbei um ein Feedback zu dieser Veranstaltung?

Dennoch: es gibt für CygWin jede Menge gcc-Pakete, die "von Hause" aus nicht installiert sind, aber nachinstalliert werden können (mit dem Setup-Programm). Der C++-Compiler steckt zum Beispiel im Paket "gcc-g++".

- nh


28.)

Mon Apr 25 08:58:25 2005
Hallo,

ich bin ein Erstsemster Wima und versuch verzweifelt eine Mail von der mathematik adresse zu schreiben und eine Datei bzw. ein programm anzuhängen.leider klappts bei mir überhaupt nicht kann mir jemand helfen?

Mit diesen Informationen sieht es für Hilfestellungen eher schlecht aus (Welches Mailtool wird verwendet? Wie und wo wird überhaupt gearbeitet? Was heißt "es klappt überhaupt nicht"?)

Der einfachste Weg, Hilfe zu bekommen, ist, in den Rechner-Pools in O27 einfach mal jemanden anzusprechen und um eine kleine Vorführung zu bitten (höheres Semester, Tutor, etc.).

- nh


27.)

Fri Apr 22 14:02:46 2005
Hallo!
Ich habe eine kleine Frage zum Übungsblatt:
In der Übung wurde doch als Tipp für die Aufgabe 2 die Verwendung eines Records empfohlen. Als ich mir das Blatt genauer angeschaut hab, war mir nicht mehr ganz klar, wie und wo das nützlich sein könnte...

Die Empfehlung in den Übungen war eher, sich Gedanken darüber zu machen, mit welcher Datenstruktur man den Sachverhalt aus der Aufgabe abbilden kann. Das müssen nicht zwangsläufig Records sein, aber zumindest die Beispiellösung basiert auf ihnen, z.B. um die Ziehung aus der Urne (also die Auswahl einer möglichen Aufteilung der aktuellen Bestellung) zu realisieren.

Aber es gibt hier nicht "die eine" Lösung, und daher muß natürlich auf kein Record verwendet werden.

- nh


26.)

Wed Apr 20 18:55:57 2005
Ok!
Jetzt hat es funktioniert!
Ich hab ssh -x anstatt ssh -X eingegeben! Aber die Verbindung wurde trotzdem aufgebaut!

Ja, aufgebaut wurde die Verbindung schon, aber nicht grafisch. Denn das große X macht es hier aus!

Auszug aus "man ssh":

-X Enables X11 forwarding. [...]
-x Disables X11 forwarding. [...]

Kleiner, aber feiner Unterschied ;-)

- nh


25.)

Wed Apr 20 18:29:02 2005
Was macht man eigentlich mit Arg.AllArgs?
Sorry hab ich vergessen!
MFG

Ein Blick in die Dokumentation kann in solchen Fällen ungemein weiter helfen. Ehrlich! Gleich mal ausprobieren!

(Dabei sollte aber noch darauf hingewiesen werden, daß "Args" hier nur eine Abkürzung zu "UnixArguments" ist, siehe IMPORT-Anweisungen)

- nh


24.)

Wed Apr 20 18:13:24 2005
Hallo,
ich würde gerne wissen warum bei mir das mit der Graphik nicht klappt?

Habe auf meinem Rechner Suse Linux 9.2 und wenn ich mich von dort aus auf der theseus einloge passiert folgendes:

theseus$ Trees 3
Trees: fatal: missing display specification

:-(

Die erste Frage, die ich hier immer stellen muß ist: Wurde auch wirklich mit "ssh -X theseus....." die Verbindung zur Theseus hergestellt?

Wenn ja: Was liefert denn die Ausgabe von "echo $DISPLAY" (in der Shell eingeben, von der aus das grafische Programm gestartet werden soll)?

- nh


23.)

Mon Apr 18 18:10:08 2005
Also,
Nochmal ein dickes Lob für das Übungsblatt.
Auch wenn sich "erfahrenere Prgrammierer" vielleicht gelangweilt haben mögen...
...für das "Fußvolk" :) wie mich war es durchaus motivierend das Verstandene gleich mal umsetzen zu können und nicht an größeren Programmierhindernissen zu scheitern.
So machen Info-Übungsblätter fast ein bisschen Spaß (schreib ich das grad wirklich :) ?)

Dieses Blatt war ja nun auch wirklich sehr einfach!

Wir wollten allen die Chance geben, auf diese Weise das Konzept der Rekursionen mal auf eher "spielerische" Weise kennenzulernen. Das Thema Rekursionen sollte man nämlich unbedingt gut verstanden haben!

- nh


22.)

Sun Apr 17 11:55:07 2005
Hallo.

Ich hab mir auch heute Cygwin runtergeladen, es installiert (X11 und OpenSSH, wie Sie es gesagt haben), aber es will einfach nicht!

Ich starte CygWin und gebe den Befehl "startx" ein. Kein Problem. Dann log ich mich im Xterm Fenster mit "ssh -X theseus.mathematik.uni-ulm.de -llogin" auf die Theseus ein. Klappt auch noch. Aber wenn ich versuche ein makefile mit "mmo -c makefile +l plot +l x11" zu erstellen (wie auf dem Übungsblatt erklärt), bricht er mit der Fehlermeldung "mmo: module not found: TurtleGraphics" und "mmo: module not found: Xplotters" ab.

Das Beispielprogramm "Trees" kann ich aber ohne Probleme ausführen. Wo ist also der Haken?

Ach und noch was: gibt es irgendeine Möglichkeit, diese schrecklichen Farben im Xterm Fenster zu ändern?! Schwarzer Hintergrund, gelbe und (manchmal) grüne oder rote oder blaue Schrift und gelber Curser, wenn ich das noch länger ertragen muss, bin ich bis zum Semesterende blind! Und kann man die Schrift irgendwie größer machen? Ich hab meinen WinDesk auf 1280x1024 laufen und die CygWin Fenster sind kaum zu lesen, v.a. bei DEN Farben. Und ich hab wirklich keinen Bock jedesmal nur wegen CygWin meine Desktop-Auflösung zu ändern.

Danke.

Zu den Übersetzungsproblemen:

Das ist auf keinen Fall ein Problem von Cygwin, denn die Theseus können Sie ja erreichen, und alle Fehlermeldungen, die dann kommen, werden von der Theseus produziert, der es egal ist, ob Sie via Putty, CygWin oder sonstwie "zu Besuch" gekommen sind.

Ich tippe mal darauf, daß die Fehlermeldungen ihre Ursache in simplen Tippfehlern haben (Hey, tolles Wortspiel :-)). Einen heißen Verdacht hätte ich (nach Ihrem Feedback) bereits: Das Modul heißt "XPlotters", nicht "Xplotters" (großes / kleines "P")! Bei den TurtleGraphics habe ich im Feedback zwar keinen Fehler gefunden, aber vielleicht haben Sie sich da auch vertippt? Das passt dann auch zu der Beobachtung, daß sich das Beispielprogramm problemlos übersezen lässt.

Was die Farben im XTerm angeht, so lassen sich diese auch ändern. Dazu empfehle ich mal die Lektüre von "man xterm". Das Ändern der Schriftgröße ist hingegen trivial: Halten Sie die "STRG"-Taste (bzw. CTRL-Taste) gedrückt und klicken Sie mit der rechten Maustaste irgendwo in das XTerm-Fenster. Sie können nun eine andere Schriftgröße wählen, wobei ich gleich mal "Huge" empfehlen kann!

- nh

Ein xterm laesst sich auch nach dem Start umkonfigurieren mit der Kombination der CTRL-Taste und je nach Wahl des gewuenschten Menues mit der linken, mittleren und rechten Maustaste:

- Bei CTRL / mittlere Maustaste ist der dritte Punkt relevant: ``Enable Reverse Video''. Damit werden Vorder- und Hintergrund- farbe getauscht.

- Bei CTRL / rechte Maustaste auf ``Huge'' gehen.

- afb


21.)

Sat Apr 16 23:19:47 2005
Zur Vervollständigung:
Putty unterstützt auch X-Forwarding. Dies muss aber bei den Optionen unter Connection->SSH->Tunnels eingeschaltet werden.
Natürlich muss lokal ein X-Server laufen (z. B. von cygwin).

Ja, das wäre auch eine Möglichkeit: Mit Putty arbeiten, und die Grafikausgabe durch den CygWin-X-Server erledigen lassen.

Ich habe vor, am Donnerstag in den Übungen mal vorzuführen, wie man mit CygWin "zur Uni kommt" (und das auch noch grafisch) und hoffe, damit alle offenen Probleme lösen zu helfen.

- nh


20.)

Sat Apr 16 22:12:24 2005
Hallo,
ich versuche gerade vergeblich das Beispielprogramm Trees von zu Hause aus ueber cygwin zu starten. Die Hinweise aus Feedback 16 habe ich befolgt.Beim Aufruf z.B. "Trees 2" erscheint folgende Fehlermeldung:"Trees: fatal: missing display specification".
Alternativ versuchte ich auch "Trees -o test 2". Das funktioniert, allerdings erhalte ich mit "cat test" keine schoene Anzeige des Baums, sondern ein Wirrwarr aus Zeichenketten.
Wie klappt das mit einer Anzeige direkt auf dem Bildschirm?

Zu Problem 1 ("missing display specification") weiß ich gerade auch nichts zu sagen. Sind denn wirklich alle Schritte aus Feedback #16 befolgt worden (also "ssh -X", Starten aus einem "xterm" heraus usw.)?

Daß die mit "Trees -o" erhaltene Datei im VI nur (vermeintlichen) Murks enthält, ist hingegen nicht weiter tragisch. Diese Datei entspricht dem sogenannten "Plot"-Format, d.h. sie kann/muß mit dem (Unix-/Linux-)Utility "Plot" in andere, gängige Grafikformate konvertiert werden, um sie dann letztlich anzuzeigen (siehe "man plot").

Es ist nicht so, daß eine mit "Trees -o" erstellte Datei den Baum in einer ASCII-Darstellung enthält. (Vielleicht wäre das ja eine nette Aufgabe für Übungsblatt #2? - Nein, war nur Spaß!)

- nh

``missing display specification'' bedeutet konkret, dass die Umgebungsvariable DISPLAY nicht gesetzt ist. Und dies bedeutet wiederum, dass

- entweder keine X-Umgebung unter Cygwin mit startx gestartet wurde,
- die ssh nicht von einem der xterms unter Cygwin aufgerufen wurde oder
- bei der ssh die Option ``-X'' fehlte.

Mit ``echo $DISPLAY'' laesst sich das sowohl zunaechst noch unter Cygwin als auch spaeter (nach dem ``ssh -X'') auf dem Server bei uns ueberpruefen.

Und noch ein Hinweis, wie eine ASCII-Grafik erzeugt werden kann:

Trees -o trees-2.plot 2
/usr/local/bin/plot -l -T pnm trees-2.plot |
pbmreduce -threshold -value 0.9 4 | pbmtoascii -2x4

(Wenn auf pbmreduce verzichtet wird, dann wird die ASCII-Grafik ziemlich gross; wenn die Option ``-2x4'' wegfaellt vergroessert sich die Grafik noch weiter).

Und so schaut das dann aus!

- afb


19.)

Sat Apr 16 14:12:03 2005
Das ist natürlich richtig, dass es Donnerstag abends nach 18 Uhr spät ist -aber wer sein Studium ernst nimmt, den sollte das nicht stören. Wenn es jemandvorzieht, sich lieber auf Uniparties vorzubereiten (kann ich schon verstehen),ist das jedem seine Sache und er schadet seinem Studium damit ja nur _selber_ -wenn jemand durch Überschneidungstermine dazu gezwungen wird, die eine oderandere Veranstaltung ausfallen zu lassen, ist das schon was anderes - deswegenfind ich einen Termin am Do. abend schon i.O. - da hat dann wirklich jeder dieFreiheit, zu entscheiden, ob er lieber was fürs Studium oder was für seinPrivatleben machen will...

Ein durchaus vernünftiges Argument für den Donnerstag. Wie gesagt: ich werde mich am Montag mit Andreas Borchert nochmals zu diesem Thema kurzschließen.

- nh


18.)

++++++++++++++ Sat Apr 16 09:38:22 2005 ++++++++++++++
Hallo,
ich habe mir mal die Mühe gemacht und die Stundenpläne derjenigen Studierenden verglichen, die -soweit ich weiß- Allg. Info II hören, um zu schauen, wie sinnvoll der Freitag- vormittags-Termin für die Zusatzveranstaltung ist. Hier meine Ergebnisse:

ET 2. Sem 8-10 HMII
ET 2. Sem 11-13 Physik II
ET 4. Sem 8-10 Schaltungen
ET 4. Sem 10-12 Physik III
Wirt.chemie 8-10 Physik
Wirt.chemie 11-13 HM Seminar
WiMa 8-10 LA
WiMa 10-12 Ana I
Physik/Wirt.physik frei


Natürlich sind hier jetzt keine Tutoriumstermine etc. berücksichtigt. Es gibt also keinen Termin, an dem alle Zeit haben - und ich fände es schon fair, wenn alle, die möchten, die Zusatzveranstaltung besuchen könnten...

Deswegen bitte ich darum, diese auf Do nach der regulären VL zu legen. Das ist zwar spät, aber zumindest kann jeder Student daran teilnehmen.

Vielen Dank für die Mühe, die Stundenpläne zusammenzutragen. Natürlich ist es bei einer Teilnehmeranzahl von rund 200 Leuten schwierig (wenn nicht so gar unmöglich), alle "unter einen Hut" zu bekommen.

Wenn wir den Termin auf "Donnerstag, nach den Übungen" verlagern, werden vielleicht einige sagen, sie seien schon seit 8 Uhr in der früh an der Uni und abends dann nicht mehr aufnahmefähig. Andere haben dann vielleicht Sport, und wieder andere müssen sich für die Uni-Parties präparieren (die ja auch immer donnerstags sind).

Grundsätzlich bin aber offen für den Termin am Donnerstag nach den Übungen. Ich werde das am Montag nochmal mit Andreas Borchert besprechen.

- nh

17.)

++++++++++++++ Fri Apr 15 17:41:03 2005 ++++++++++++++
gibt es zu den Auffrischungsaufgaben für geplagte Erstsemester auch noch Lösungen? *bitte*

Ja klar, die Lösungen gibt es auch noch. Ihr findet sie demnächst auf der Homepage (evtl. aber erst nach dem Wochenende!)

- nh


16.)

++++++++++++++ Fri Apr 15 17:37:37 2005 ++++++++++++++
Servus!
Nachdem ich mein Programm dieses Mal anscheinend nicht mit Putty testen kann hab ich mir Cygwin runtergeladen. Was muss ich jetzt tun??? Also ich sitze hier daheim an meinem Computer und sehe eine shell. Wenn ich ssh theseus.mathematik.uni-ulm.de eingebe bringt er "command not found". Muss ich was anderes eingeben oder bin ich komplett auf dem Holzweg? Ich habe keine Ahnung...

CygWin herunterzuladen ist / war nur die halbe Miete! Es muß auf jeden Falls das X11-Paket und das "openssh"-Paket installiert sein. Falls das bei der Installation noch nicht geschehen ist, dann kann man das aber auch bequem noch nachträglich machen (einfach nochmals das Setup-Programm starten und die beiden Pakete installieren lassen).

Dann muß man im Cygwin-Fenster "startx" eingeben (oder alternativ "Programme -- CygWin-X -- Xterm" starten, damit die Grafikausgabe aktiviert wird (Stichwort: X-Server).

Danach geht es via "ssh -X Login@theseus.mathematik...." los (also wichtig ist hier das "-X")!

- nh

15.)

++++++++++++++ Fri Apr 15 10:46:48 2005 ++++++++++++++
hallo zusammen.
ich wollte einfach mal fragen ob ihr das fuer das ganze semester so geplant habt, dass man nur das grundgeruest des programms aendern muss? waere echt cool da-

("such long programming sucks")

- man sich so viel zeit sparen koennte fuer lernintensievere faecher!!! eigentlich reicht es doch wenn man den rest verstanden hat und dem tutor erklaeren kann ohne dass sich dieser lange ins programm hineinversetzen muss.

gruss an alle

Zwischen "den Rest vestanden zu haben" und mal selber zu programmieren gibt es eine riesige Lücke! Von daher werden selbstverständlich auch mal wieder komplette Programme zu schreiben sein.

Da wir im aktuellen Übungsblatt aber das Verständnis für den Themenbereis Rekursion förden wollen, gab es das Programmgerüst diesmal "geschenkt", damit man sich auf den Kern, nämlich die Rekursionen, konzentrieren kann.

- nh

14.)

++++++++++++++ Thu Apr 14 20:13:59 2005 ++++++++++++++
ist ja jetzt wirklich alles ganz schön heir, aber dass der text nicht im rahmen bleibt stört schon ein bisschen beim lesen.

*mecker*

Ne ne, ist kein Meckern, der Einwand ist (war ;-)) völlig gerechtfertigt! Unter meinem Mozilla sah alles tadellos aus, aber auf anderen Browsern herrschte das Chaos.

Ich hoffe, daß es nun besser ist?

- nh


13.)

++++++++++++++ Thu Apr 14 18:39:40 2005 ++++++++++++++
Hallo Norbert,

ganz großes Lob für das neue Übungsblatt. Ich kann mich nicht daran erinnern, wann ich das letzte Mal ein solches Erfolgerlebnis bei der Progammierung hatte. Auch die Vorlesung, ich nach meiner Ansicht, deutlich besser strukturiert bzw. das Skript ist ausführlicher, so dass man die neuen Themen recht schnell begreift. Also, weiter so!

Wie - schon fertig? Dann war's wohl doch zu leicht ;-)
Wenn Ihr das Blatt schnell lösen konntet, dann nutzt die Euch nun bleibende Zeit, Euch trotzdem nochmals intensiv mit dem Thema "Rekursion" zu beschäftigen. Und vielleicht auch damit, den in der Vorlesung und dem Beispiel vorgegebenen Rahmen des Programms nachzuvollziehen.

Auf jeden Fall freut's mich, wenn Ihr ein Erfolgserlebnis hattet. Das war ja auch der Sinn der Blattes ;-)

- nh


12.)

++++++++++++++ Thu Apr 14 17:46:41 2005 ++++++++++++++
Hallo
Freu mich schon wieder auf ein neues Semester. Wollte nur fragen, ob hier auf diese Seite vielleicht eine Liste mit den ganzen Namen der aktuellen Tutoren veroeffentlicht werden koennte. Wuerde eine Kontaktaufnahme durch Mail vereinfachen, da wohl doch wieder die wenigsten den ganzen Namen geschweige denn die mail-Adresse seines Tutors kennt (zumindest ich natuerlich nicht). Danke schon mal im Vorraus.

Ja klar - so eine Liste ist gerade in Arbeit! Sie wird auch die Tutorientermine bzw. die Zeiten, in denen man noch ein freies Tutorium finden kann, auflisten. Ich denke, daß sie morgen oder spätestens am Wochenende online steht (wahrscheinlich unter der Rubrik "Tutorien" auf der Vorlesungshomepage)!

(P.S.: Andreas Borchert und ich freuen uns übrigens auch auf das neue Semester!)

- nh


11.)

++++++++++++++ Thu Apr 14 17:04:00 2005 ++++++++++++++
Muß schon lang mal gesagt werden: geiles Design. Die Seite dürfte eine der besten (sowohl codetechnisch als auch von der Übersicht) der ganzen Uni sein :D

Genau meine Meinung!

- nh


10.)

++++++++++++++ Wed Apr 13 21:58:01 2005 ++++++++++++++
Hallo,
die Idee mit dem Freitags-Wiederholtermin ist ja ganz nett, aber für E-Techniker ziemlich ungeeignet. Wir haben da nämlich HM. Ist es möglich, eine Lösung zu finden, damit auch ahnungslose E-Techniker erleuchtet werden können? Vielen Dank!

Tja, wie immer ist es weitgehend unmöglich, alle Terminwünsche unter ein Dach und dann auch noch einen freien Raum zu bekommen.

Aber mal ehrlich: Ahnungslose E-Techniker darf es eigentlich nicht geben, denn Sie haben doch eine Vordiplomsklausur geschrieben, oder? Und unsere Wiederholungen gehen nicht über den Stoff der Klausur hinaus. Von daher besteht für E-Techniker doch keine Notwendigkeit, an den Wiederholterminen teilzunehmen.

- nh


9.)

++++++++++++++ Wed Apr 13 12:45:55 2005 ++++++++++++++
Was ist am Freitag?? hab wohl was verpasst............

Ist ja vermutlich auch etwas viel verlangt,

a) in der ersten Semesterwoche in die Vorlesung zu gehen,
b) dort auch noch zuzuhören

oder

c) mal auf die Vorlesungshomepage zu schauen.

Nachdem Sie die Punkte a) und b) nun verpasst haben, empfehle ich nun noch dringend Punkt c) nachzuholen, dort wird Ihre Frage unter der Rubrik "Auffrischungen" beantwortet!

- nh


8.)

++++++++++++++ Wed Apr 13 12:33:15 2005 ++++++++++++++
Hallo,
kann es sein, dass die pdf-Version des Skripts fehlerhaft ist? Kann sie jedenfalls nicht oeffnen.

Nein, ich habe es gerade nochmal ausprobiert, aber mir ist nichts aufgefallen. Unter Windows XP mit Acrobat Reader 7.0 und Acrobat 6.0 funktioniert alles tadellos.

Haben Sie eventuell versehentlich die komprimierte Version versucht zu öffnen? (Die PDF-Fassung gibt es ja zweifach: einmal komprimiert, einmal nicht komprimiert.)

Ansonsten können Sie mir das Problem gerne mal per E-Mail schildern!

- nh


7.)

++++++++++++++ Tue Apr 12 18:14:20 2005 ++++++++++++++
Wollte nur mal Lob für den Freitags-Auffrisch-Termin loswerden! :-))

Erstmal den Freitag abwarten... ;-)

- nh


6.)

++++++++++++++ Tue Apr 12 15:45:06 2005 ++++++++++++++
Hallo!
Ich wollte mal fragen ob auf den Uni-Rechnern hier im SAI Icq installiert ist bzw. ob man das irgendwie installieren kann.

Installiert ist der ICQ meines Wissens auf den SAI-Rechnern nicht. Unter Ihrem User-Account können Sie sich ihn aber selbst installieren. (Nur bleibt hier bei eventuellen Problemen der Support seitens der SAI aus!)

Ansonsten gibt es meines Wissens einen ICQ-Klon unter KDE, und KDE wiederum ist auf den SUNs installiert.

-nh


5.)

++++++++++++++ Tue Apr 12 11:35:35 2005 ++++++++++++++
Oh mein Gott! Die Farben!

Um ehrlich zu sein, das alte Design war um einiges angenehmer zu lesen und auch übersichtlicher. Die Homepage an sich ist in Ordnung, aber das Feedback... meine Augen tun jetzt noch weh. Was war eigentlich der Grund für den Designwechsel? Die alte Homepage war doch in Ordnung.

Okay, überredet! Ich habe die Farben nun ein wenig unauffälliger gestaltet. Aber jetzt muß auch gut sein...!

Und was der Grund war? Nun, haben Sie sich nicht letztens auch neue Kleidung gekauft? Warum? Die alte war doch in Ordnung...!

-nh


4.)

++++++++++++++ Tue Apr 12 11:16:09 2005 ++++++++++++++
Hallo,
ich wollte nur mal das neue Design der Vorlesungshomepage loben - einfach spitze! ich liebe diese Farben! Hab mir gleich nen Screenshot von dem Ganzen als Desktophintergrund eingestellt.

so, zufrieden? ^^

nee, spaß. neues design ist schon ok :)

mfg

Na also, es geht doch. Freut mich, daß Ihr Beitrag so von Herzen kommt und so ehrlich gemeint ist ;-)

-nh


3.)

++++++++++++++ Sat Apr 9 09:28:00 2005 ++++++++++++++
"(Aber warum lobt keiner mal das neue Design unserer Vorlesungs-Homepage und der Feedback-Seite?)"
a) Weil die Vorlesungsseite nicht 100% w3c konform ist ;-) (es fehlt die <!DOCTYPE ...> deklaration

b) weil die Farben im neuen Feedback meiner Meinung nach zu grell sind und die links orientierte nummerierung im Abendland eher verwirrt als zur Übersicht beiträgt

zu a) Ja, das ist mir auch schon aufgefallen. Wird demnächst berichtigt!

zu b) Meckern, aber links und rechts nicht unterscheiden können... ;-)

-nh


2.)

++++++++++++++ Thu Apr 7 10:34:00 2005 ++++++++++++++
Yippiiiiiiieee, der zweite Eintrag!! ;-)
Auch von mir Kompliment für die Ferienaufgaben, schön, dass man jeweils nochmal ein konkretes Thema aufarbeiten konnte.

Na, da füllt sich das Feedback ja schon vor dem Vorlesungsbeginn... Recht so!

(Aber warum lobt keiner mal das neue Design unserer Vorlesungs-Homepage und der Feedback-Seite?)

-nh


1.)

++++++++++++++ Sat Apr 2 19:24:09 2005 ++++++++++++++
hallo,

ich muss hier mal ein lob für die ferienaufgaben aussprechen, die haben wirklich dazu beigetragen, den stoff nochmal ein bisschen aufzufrischen, zudem waren sie auch schön kurz und prägnant, so dass einem nicht gleich die lust vergangen ist.

Herzlichen Glückwunsch zum ersten Feedback des Sommersemesters!

Es freut uns, wenn die Ferienaufgaben ihren Sinn erfüllen und ein wenig zum Verständnis des Stoffes beitragen konnten. Schön, daß sich einige von Ihnen auch wirklich damit beschäftigt haben!

- nh