You are not logged in.

Cpt. Iglu

Trainee

  • "Cpt. Iglu" is male
  • "Cpt. Iglu" started this thread

Posts: 83

Date of registration: Oct 9th 2003

1

Sunday, May 21st 2006, 12:31am

Betr. Java Übung 1 .. 6

Ich muss sagen, so langsam bin ich von den Java Übungen enttäuscht.
In einem Informatikstudium sollte soetwas doch etwas ernster genommen werden ... wenn ich dann sehe, dass nur statische Variablen und prozedurale Strukturen programmiert werden, dann hat da eindeutig wieder ein falscher Fachbereich seine Finger im Spiel!

Wann wird Proggen II endlich an den SE Fachbereich übergeben?
Schliesslich sollte guter Programmierstil im Vordergrund stehen ...

Quoted

Übung6/Aufgabe2: Schreiben Sie ein Programm, das eine Zeichenfolge von der Kommandozeile bekommt. Dieser String soll Zeichen für Zeichen durchlaufen werden (Stichwort: charAt). Mittels der Methode toLowerCase() der Klasse Character soll jedes Zeichen einzeln in einen Kleinbuchstaben umgewandelt werden, wenn es sich überhaupt um einen Buchstaben handelt (isLetter). Aus den Kleinbuchstaben soll dann ein StringBuilder-Objekt aufgebaut werden, das zum Schluss eben die Kleinbuchstaben des Eingabestrings enthält.

Liegt der akademische Sinn wirklich darin seinen Code mit überflüssigen Konstrukten zu überladen? Und wieso gerade Character? Eine Übung ohne wenigstens 2 ForEach Schleifen ist offenbar nicht hinnehmbar.

P.S.: Glücklicherweise hab ich den Schein hierfür schon, aber die neuen Semester werden spätestens beim SW Projekt ihr Glück nicht mehr fassen können. Zumal wir demnächst ja auch Geld für unsere Ausbildung bezahlen ... ich finde da sollte etwas mehr geboten werden ... z.B. richtiges OOP.
"Intuitive Software ist leicht zu lernen. Man muß nur lange genug mit ihr arbeiten."

Ponder Stibbons

ktm

Erfahrener Schreiberling

2

Sunday, May 21st 2006, 9:46am

Sowas in Übung Sechs? Ich würde sagen, in Ü2-3 oder so wär's okay gewesen, ab Ü4 wäre ich schon etwas skeptisch geworden, aber Ü6... wiskey tango foxtrot? Ich muß mich da Iglu's "PS" anschließen.

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

3

Sunday, May 21st 2006, 1:56pm

Ich kann mich da nicht so ganz anschließen ...

Ich finde das Skript an sich auch ziemlich mies, auch vom Aufbau her und didaktisch Müll, aber es gab anscheinend im Vergleich zu den Vorjahren Verbesserungen (hält man kaum für möglich, ne?):
Es wurden z.B. endlich auch in der Vorlesung Enums eingeführt, die sind extrem wertvoll und wurden, wie ich mir sagen ließ, vorher schlichtweg ignoriert. Leider wurden sie aber auch nicht weiter ausgeführt, und somit nur als Listenersatz benutzt .... :rolleyes: ... schade drum, aber immerhin was.

Außerdem gab es "schon" in der 4. Übung Objektorientierung ... halt noch nix Höheres wie Datenkapselung und so ...

Bezüglich des Zeitpunktes stimm ich euch zu, aber ich hege die Hoffnung, dass wir nach StringBuilder zu Stringbuffer und ähnlichen Wrappern kommen :rolleyes: ....

Mata ne
Warui
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

4

Sunday, May 21st 2006, 4:11pm

Quoted

Original von Cpt. Iglu
[...] ... wenn ich dann sehe, dass nur statische Variablen und prozedurale Strukturen programmiert werden, dann hat da eindeutig wieder ein falscher Fachbereich seine Finger im Spiel!

Und was, wenn ich dir sage, dass es eine Anfängervorlesung ist, und viele Leute erstmal überhaupt mit Java anfangen? Was machst du denn in einer Methode? Du schreibst nacheinander weg. Dass muss man erstmal hinbekommen, ohne nachzudenken (->Anfängervorlesung) bevor man an Objekte, Klassen, Pakete etc. rankommt.
Was hast du gegen statische Variablen? Wie soll man denn den Leuten das Prinzip von static erklären, wenn sie es nicht anwenden? Und was soll hier heißen "nur" statische Variablen? Das stimmt doch so gar nicht....

Quoted

Schliesslich sollte guter Programmierstil im Vordergrund stehen ...

Wo genau ist denn der Stil der Vorlesung schlecht? Und jetzt sag mir nicht, statische Variablen sind schlecht...

Quoted

Liegt der akademische Sinn wirklich darin seinen Code mit überflüssigen Konstrukten zu überladen? Und wieso gerade Character? Eine Übung ohne wenigstens 2 ForEach Schleifen ist offenbar nicht hinnehmbar.

Und wieder muss man hier sagen, es ist eine Anfängervorlesung. Und es geht darum, dass die Leute erstmal die Sachen lernen. Überladen? Sicherlich, für diese kleinen Aufgäbchen, die gestellt werden, braucht man so einiges nicht, was verlangt wird. Aber was soll man denn machen? Schwere Aufgaben stellen? Oder den Leuten die Werkzeuge die es gibt, nicht zeigen? Damit sie später alles allein herausfinden dürfen. Lerneffekt? Was ist denn an der Aufgabe alles überflüssig? Stringbuilder? Sicherlich besser als mit String zu arbeiten. Ach, und wenn du von gutem Programmierstil sprichst, frag ich mich, warum du zwei schleifen für die Aufgabe brauchst....

Quoted

[...] ... ich finde da sollte etwas mehr geboten werden ... z.B. richtiges OOP.

Klar, besonders wenn die Leute noch nicht mal wissen, was public und privat bedeutet. Tolle Idee, wirklich.


So, bitte seh meine Antwort nicht als persönlichen Angriff, aber ich bin das ständige nörgeln einfach leid. Sicherlich, ich streite nicht ab, dass es bei der Javavorlesung einiges zu bemängeln gibt. Vieles läuft nicht optimal und darüber rege ich mich auch auf (wie bei so einigen anderen Vorlesungen übrigens auch...)
Ich kann ja gerne mal eine Umfrage machen in meiner Blockzeit, wer von den Leuten lieber den "Anfängerteil" überspringen würde und gleich zu den "richtig wichtigen und interessanten" Teilen übergehen würde. Ich kann die das Ergebnis auch vorwegnehmen. Maximal vier der Leute können auf die Basics verzichten, weil sie sie schon können. Dem Rest habe ich letzten Freitag erklärt, was static bedeutet...
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

5

Sunday, May 21st 2006, 6:02pm

Quoted

Original von Warui
Es wurden z.B. endlich auch in der Vorlesung Enums eingeführt, die sind extrem wertvoll und wurden, wie ich mir sagen ließ, vorher schlichtweg ignoriert. Leider wurden sie aber auch nicht weiter ausgeführt, und somit nur als Listenersatz benutzt .... :rolleyes: ... schade drum, aber immerhin was.

Außerdem gab es "schon" in der 4. Übung Objektorientierung ... halt noch nix Höheres wie Datenkapselung und so ...
Ich sehe das Problem eher darin, daß die Studienordnung diese Lehrveranstaltung als Einführung in Java begreift und nicht als Einführung in die objektorientierte Programmierung. Dadurch wird die Sprache Java selber zum zentralen Thema, anstatt sie lediglich als Hilfsmittel zu betrachten. Das führt dann zu der meiner Meinung nach ziemlich absurden Situation, daß man nach dieser Lehrveranstaltung zwar beispielsweise weiß, wie JAR-Dateien auf der Kommandozeile erzeugt werden, Fähigkeiten in objektorientierter Modellierung und "guter Programmierstil" sind jedoch nicht zwingend vorhanden.

Aus diesem Grund mein Vorschlag: Streichung der aktuellen Java-Lehrveranstaltung aus der Studienordnung, dafür Neueinführung einer Lehrveranstaltung "Objektorientierte Programmierung", die dieses Thema eher abstrakt angeht und Java lediglich als Notation für Beispielcode verwendet. Zusätzlich sollte noch ein mit dieser Lehrveranstaltung eng verzahnter Praxiskurs eingeführt werden, in dem die in der Vorlesung vermittelten Konzepte anhand konkreter Programmieraufgaben angewendet werden.

Vorteile: Die Lehrveranstaltung "Objektorientierte Programmierung" kann aufgrund der hohen Theorieanteile problemlos als Klausur geprüft werden. Der Praxiskurs kann dann wie bisher in Form einer praktischen Abschlußprüfung oder (meiner Meinung nach besser) in Form mehrerer größerer über das gesamte Semester verteilter Programmieraufgaben geprüft werden.

Problem an der Sache: Es gibt anscheinend außer in den Fachgebieten SE und PSÜ kaum jemanden, der solche Veranstaltungen abhalten könnte. Das ist umso trauriger, da dies eine absolute Grundlagenveranstaltung wäre und daher von jedem Informatik-Professor veranstaltet werden können sollte. Den Fachgebieten SE und PSÜ läßt sich diese Last jedoch auch nicht aufhalsen, da dort bereits mehrere Pflichtveranstaltungen angesiedelt sind und die personellen Kapazitäten wohl weitgehend ausgeschöpft sind. Zum anderen sollten gerade die Pflichtveranstaltungen möglichst auf alle Fachgebiete gleichmäßig verteilt sein, da diese Grundlagen wie gesagt jeder Dozent sollte lehren können.

Eure Meinungen dazu?
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

6

Sunday, May 21st 2006, 6:09pm

Den Vorschlag könnte ich in dieser Form grundsätzlich befürworten, wobei sich dabei für mich allerdings immer noch das Problem stellt, wie der begleitende Praxiskurs aussehen sollte? Mit Java? Und was ist mit den Leuten, die noch kein Java kennen? Die müssten zunächst wieder in die Grundlagen eingeführt werde.
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

7

Sunday, May 21st 2006, 6:12pm

Quoted

Original von Markus
Den Vorschlag könnte ich in dieser Form grundsätzlich befürworten, wobei sich dabei für mich allerdings immer noch das Problem stellt, wie der begleitende Praxiskurs aussehen sollte? Mit Java? Und was ist mit den Leuten, die noch kein Java kennen? Die müssten zunächst wieder in die Grundlagen eingeführt werde.
Der Praxiskurs könnte zunächst eine ganz allgemeine Einführung in Java geben (also wie ist der Zusammenhang zwischen Klassen und Dateien, was sind Pakete, wie macht man aus einer Ansammlung von Klassen ein Programm (main-Methode), was ist eine VM, wie kompiliert man ein Programm, was ist ein Interpreter, ...) und dann die in der Theorie-Lehrveranstaltung erlernten Konzepte in Java anwenden. Also wie setze ich Klassendiagramme in Code um, wie sieht Vererbung in Java aus, ...
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Cpt. Iglu

Trainee

  • "Cpt. Iglu" is male
  • "Cpt. Iglu" started this thread

Posts: 83

Date of registration: Oct 9th 2003

8

Sunday, May 21st 2006, 6:27pm

@Joachim: Ich finde die Idee hervorragend.

@Markus:

Quoted

Und was, wenn ich dir sage, dass es eine Anfängervorlesung ist, und viele Leute erstmal überhaupt mit Java anfangen?
Gerade weil es eine Anfängerveranstaltung ist, habe ich gepostet!

Quoted

Wo genau ist denn der Stil der Vorlesung schlecht? Und jetzt sag mir nicht, statische Variablen sind schlecht...
Nicht die Vorlesung, dazu kann ich nichts sagen ... aber die Übungen sind schlecht!

Quoted

Ach, und wenn du von gutem Programmierstil sprichst, frag ich mich, warum du zwei schleifen für die Aufgabe brauchst....
Warum ich zwei Schleifen bräuchte? Wegen der Aufgabenstellung (natürlich) ... schliesslich ist args ein (String) Array. Für's Umwandeln in Kleinbuchstaben ist eine for() genug. Aber ich hätte halt gerne den ganzen String, inkl. Leerzeichen.

Quoted

Klar, besonders wenn die Leute noch nicht mal wissen, was public und privat bedeutet. Tolle Idee, wirklich.
Wann soll den das dran kommen? Übung10? *kleinerScherz

Quoted

So, bitte seh meine Antwort nicht als persönlichen Angriff, aber ich bin das ständige nörgeln einfach leid. Sicherlich, ich streite nicht ab, dass es bei der Javavorlesung einiges zu bemängeln gibt. Vieles läuft nicht optimal und darüber rege ich mich auch auf (wie bei so einigen anderen Vorlesungen übrigens auch...)
Ich kann ja gerne mal eine Umfrage machen in meiner Blockzeit, wer von den Leuten lieber den "Anfängerteil" überspringen würde und gleich zu den "richtig wichtigen und interessanten" Teilen übergehen würde. Ich kann die das Ergebnis auch vorwegnehmen. Maximal vier der Leute können auf die Basics verzichten, weil sie sie schon können. Dem Rest habe ich letzten Freitag erklärt, was static bedeutet...

Ich rege mich nicht wegen der Javavorlesung auf ... es geht um die Übung.
Die haben nur eine Woche Zeit ihre Aufgaben zu machen und Du erzählst mir, dass sie zu wenig Vorkenntnisse haben.
Dann haben wir schon den gemeinsamen Nenner gefunden ...
"Intuitive Software ist leicht zu lernen. Man muß nur lange genug mit ihr arbeiten."

Ponder Stibbons

Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

9

Sunday, May 21st 2006, 7:24pm

Quoted

Original von Cpt. Iglu

Quoted

Wo genau ist denn der Stil der Vorlesung schlecht? Und jetzt sag mir nicht, statische Variablen sind schlecht...
Nicht die Vorlesung, dazu kann ich nichts sagen ... aber die Übungen sind schlecht!

Oh, sorry, da hab ich mich blöd ausgedrückt, ich meinte natürlich die Übungen (:
Einfach um es besser machen zu können: Was KONKRET stört dich am Programmierstil der Übungen?

Quoted

Warum ich zwei Schleifen bräuchte? Wegen der Aufgabenstellung (natürlich) ... schliesslich ist args ein (String) Array. [...]

von welchem du nur das erste Argument brauchst.... ;) Aber lassen wir das, dir geht es sicherlich nicht um diese Aufgabe, sondern um die Aufgaben im Allgemeinen. Du hast sicherlich Recht, Schleifen dürfte jetzt jeder können :D . Hm, Aufgaben ohne zwei Schleifen... geht sicherlich, aber was spricht eigentlich gegen Schleifen? Kommen in der Praxis doch dauernd vor - und der Schwerpunkt der Übungen liegt ja auch nicht mehr auf den Schleifen. Nur den ersten Buchstaben des Eingabestrings in einen kleinen Buchstaben umzuwandeln wäre halt irgendwie langweilig ^^


Quoted

Quoted

Klar, besonders wenn die Leute noch nicht mal wissen, was public und privat bedeutet. Tolle Idee, wirklich.
Wann soll den das dran kommen? Übung10? *kleinerScherz

Nein, das dürfte (lt. Skript) spätestens im Zusammenhang mit den packages dran gekommen sein. Aber zu deiner eigentlichen Forderung:

Quoted

ich finde da sollte etwas mehr geboten werden ... z.B. richtiges OOP.
Ja, genau hier sind wir an dem Problem, was Joachim beschrieben hat. Lehren wir Java, oder OOP. OOP ohne Java (o.ä.) ist schwer (nicht?) möglich. Also lehren wir zunächst Java. Beides zusammen in einem Semster im Rahmen einer Vorlesung TU2 ist IMHO kaum (gar nicht) vertretbar. Hier kann (sollte?) man sicher über andere Formen nachdenken (s.o.).

Quoted

Ich rege mich nicht wegen der Javavorlesung auf ... es geht um die Übung.
Die haben nur eine Woche Zeit ihre Aufgaben zu machen und Du erzählst mir, dass sie zu wenig Vorkenntnisse haben.
Dann haben wir schon den gemeinsamen Nenner gefunden ...

?( Da versteh ich leider nicht so ganz, was du damit sagen willst? Welchen gemeinsamen Nenner haben wir hier?
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Dot

Senior Schreiberling

Posts: 618

Date of registration: Feb 3rd 2003

Location: Ex-Europameisterland

Occupation: 4TheScience

10

Sunday, May 21st 2006, 8:06pm

Zu einfach? Ich glaubs auch.
Einfach vielleicht für Leute,die JAVA schön können,aber nicht für Neulinge!
Und wenn jemand die Aufgaben zu einfach findet, oder meint,es kommen unwichtige Sachen dran, sollte er zum Prof gehen und sich beschweren,dass wir das falsche Script haben, denn die Aufgaben sind gemessen an dem Script und der Vorlesung alles andere als einfach.
Und falls doch jemand die Aufgaben zu schnell fertig bekommt und ihm langweilig ist, ich habe da genug Ideen im Kopf,dann kann er für mich was programmieren,aber das ist nicht einfach :P
C:\reality.sys has errors - Reboot the universe? (Y/N)

Real programmers don't comment their code.
It was hard to write, it should be hard to understand

Cpt. Iglu

Trainee

  • "Cpt. Iglu" is male
  • "Cpt. Iglu" started this thread

Posts: 83

Date of registration: Oct 9th 2003

11

Sunday, May 21st 2006, 8:16pm

Quoted

Was KONKRET stört dich am Programmierstil der Übungen?
Das vorgegebene Grundgerüst, also quasi die aufgezwungenen Konstrukte ... im oben angesprochenen Beispiel "Character", "StringBuilder" und die Methoden ... also als Hinweis fände ich das ja ganz knorke, aber als Vorgabe hat es doch ehr' was von einem aufgezwungenen Korsett. Ähnlich das Beispiel mit enum.

Bei der Stringformatierung (allgemein, nicht nur diese Aufgabe) will ich darauf hinaus, dass man auch mit StringBuffer oder java.util.* schöne Resultate erzielen kann.

Quoted

Da versteh ich leider nicht so ganz, was du damit sagen willst? Welchen gemeinsamen Nenner haben wir hier?
Wenn es sich um eine Veranstaltung für Anfänger handelt, dann lasst ihnen doch genug Freiraum und Zeit(!), um ihre Aufgaben kreativ lösen zu können.

Diese ganzen Vorgaben sichern noch lange keinen Lernerfolg, mich würde das ehr' verwirren (z.B. warum darf ich keinen StringBuffer verwenden) ... hat doch auch nichts damit zu tun, dass die Vorkenntnisse nicht da sind.

Zweitens stört mich, dass bei den Übungen nicht die weiterführenden Veranstaltungen beachtet werden ... SW Projekt, SWT/SWQ/SWAuE, J2EE und diverse andere Veranstaltungen (siehe auch GDV) bauen hier auf.
Klar, ihr könnt nicht alle Themen anreissen ... aber wieso werden keine Pattern besprochen?

Drittens stört mich, dass die Übungen dann auch noch aufeinander aufbauen ... muss das frustrierend sein. Gegen längere Aufgaben ist ja so noch nichts einzuwenden, aber dann jede Woche? Wäre es da nicht besser, dann die Leute 3 Wochen mit der Aufgabe allein zu lassen und in den Vorlesungen entsprechend Hilfestellung zu geben?
Andere Institute machen das auch so und es funktioniert gut!
Dann gilt auch nicht die Ausrede, dass die "Anfänger" überfordert werden, so geschieht das IMHO sowieso!
"Intuitive Software ist leicht zu lernen. Man muß nur lange genug mit ihr arbeiten."

Ponder Stibbons

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

12

Sunday, May 21st 2006, 9:12pm

Hmmm, mich erinnern die Aufgaben bisher eher an einen C-Kurs... Sicherlich ist es cool, wenn man mit do while, verschiedenen Bitshiftoperatoren und ?: sicher arbeiten kann, aber ich hätte auch ein paar mehr Objekte erwartet.
Mag den Programmierstil der Übungen auch nicht, die Benennungskonventionen sind n bisschen schludrig und ich weiß auch nicht, ob man als Anfänger viel davon hat, wenn man "erstmal" lernt, wie man mit quasi-C-struct-Klassen und einer großen Logikfunktion ein Problem erschlagen kann. Selbst als Nicht-Anfänger fühlt man sich irgendwie schuldig für den Code, der dabei rauskommt, wenn man z.B. simuliere(Fruehling, int) oder Semi-OO-zaehlHoch()-Klassen schreiben muss.

Also, [x] für mehr Design!

Edit: Es wurde ja ein paar Mal gesagt, dass die komplette Philosophie der OO nicht mehr in die Vorlesung passen würde. Das erwarte ich auch nicht, aber zB bei der Frühlingssimulation hätte doch von Anfang an mehr Logik auf die einzelnen Klassen verteilt werden können. Wie Methoden funktionieren musste man zum Bestehen der Aufgaben eh wissen, an mangelnden Sprachmitteln lag es also nicht.

This post has been edited 1 times, last edit by "julianr" (May 21st 2006, 9:19pm)