Kritik an Java Einfürung

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Kritik an Java Einfürung

Beitrag von Wambolo »

Hallo, an dieser Stelle möchte ich nur erwähnen, dass mir die Art und Weise der Java-einfürung nicht gefallen hat. Zu den Gründen:

1. Warum wurden vor den Codeeispielen für Klassen und Objekterschaffung nicht die Grundelemente eingeführt. Es war ohne Vorwissen nicht leicht, der Vorlesung zu folgen.(zumindest für mich)

2. Die Übung verlangt Kenntnisse, die zum Teil erst heute in der Vorlesung behandelt wurden. Für einen Java-Neuling wie mich war das ein ganz schönes Gefummel, bis ich mir alles Sprachelemente zusammengesucht hatte. Wieso werden z.B. Datentypen nicht vor Themen wie Vererbung und abstrakten Klassen eingeführt obwohl man für die Übung ein gewisses Wissen darüber braucht.

3. Zudem fand ich die Kapitel etwas unübersichtlich: Hier mal ein Hinweis wie ein Java-Programm aufgebaut ist, dann erstmal ein Interpreter-Abschnitt, dann gehts weiter mit dem Aufbau usw.


Ist natürlich nur subjektiv. Mich würde daher auch eure Meinung dazu interessieren.

Achja, das hätte ich fast vergessen, großes Lob gibts natürlich für TVremote-Unterstützung.

ChRiZz88
Mausschubser
Mausschubser
Beiträge: 87
Registriert: 7. Nov 2007 18:09
Kontaktdaten:

Beitrag von ChRiZz88 »

Hmm.. Irgendwie hat Wambolo recht... Mich verwirrt die Übung irgendwie mehr, als dass sie nützt. Dies liegt zum einen auch an der Art der Präsentation in den Vorlesungen und zum anderen finde ich die Übung extrem mäßig formuliert. Scheint alles nicht besonders schwierig zu sein, aber trotzdem weiß ich nicht, was genau getan werden soll.

n-finity
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 101
Registriert: 22. Dez 2006 15:38
Kontaktdaten:

Beitrag von n-finity »

Hmm, ja, naja. Mag schon sein, dass nicht alles so treffend formuliert ist - aber manchmal muss man sich eben durchbeißen.

Und falls Probleme auftreten, gibt es 2 mal täglich, jeden Tag in der Woche, Sprechstunden. Darüber hinaus gibt es das TVRemote-System und zu guter letzt: einige sehr gute Literatur-Tipps, die man sich als völliger Java-Neuling ggf. mal zu Gemüte führen könnte. Man muss sie ja nicht komplett lesen, um Gottes Willen, aber bestimmte Sachen kann man da gut nachschlagen.

MfG,
n-finity

Benutzeravatar
C--
Mausschubser
Mausschubser
Beiträge: 96
Registriert: 2. Okt 2006 15:08
Wohnort: Gelnhausen

Beitrag von C-- »

Ich würde sogar soweit gehen zu behaupten, dass es einem Java neuling mehr bringt die Bücher im Selbststudium zu lesen, als die Vorlesung zu Besuchen und sich von ihr verwirren zu lassen...
Die Vorlesung bis jetzt richtig sich recht klar an Leute die bereits Erfahrung mit OOP haben, ich habe keine Ahnung wie jemand der nur Scheme kennt da mitnkommen soll, auch wenn er massiv zuhause nacharbeitet (die Zeit eines Studenten ist nunmal endlich). Viele Programmierneulinge kommen in Scheme gut mit (oft besser als die, die schon vorher eine Sprache kannten), und bei Java fahren die dann voll gegen die Wand (habe ich im letzten Semester bei einigen erlebt).
Die Java Programmierer langweilen sich, weil es so langsam vorangeht, und die Java neulinge sind überfordert - ist wer glücklich? :twisted:
Die Vorlesung an sich ist didaktisch nicht schlecht - dank TVRemote werden auftretende Fragen schnell beantwortet. Ich glaub es fehlt nur etwas die klare Definition der Zielgruppe. Es heißt ja, man könne auch ohne Programmiervorkenntnisse auf der Uni studieren, und dann gibt es bei einem Javabeispiel zur illustration ein Stück C++ Code...
Team?
Toll Ein Anderer Machts

Benutzeravatar
taufrisch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 107
Registriert: 30. Sep 2007 02:42
Wohnort: 127.0.0.1

Beitrag von taufrisch »

Im Gegensatz zum wirklich hervorragend aufgearbeiteten Schemeteil bin ich jetzt richtig enttäuscht.

Wir haben eine wirklich interessante Programmiertechniken kennengelernt, darauf wird aber nicht aufgebaut, sondern wir können alles in die Tonne kloppen.

Funktionen höherer Ordnung? Geht in Java irgendwie. Später mal. Viel später...

Verträge für Funktionen? Och nee, jetzt nicht so wichtig.

Programme die funktionieren? Naja, Polynome mit Grad 4 reichen ja für den Alltagsgebrauch, dann hackt man sich die Annahmen halt so zusammen das es gerade noch funktioniert.

*Hust*. Wofür haben wir das alles eigentlich gemacht? Mit dem Wissen der bisherigen Vorlesung kann ich die Übungsaufgabe jedenfalls nicht lösen, mit meine unstrukturierten Hackerkenntnissen aus Vorunizeiten dagegen problemlos.

Und das TVRemote-Gimmick finde ich auch eher störend. 14 Seiten vorher gehört eine vier hin, keine fünf. Toll, habe ich auch gemerkt, na und? Krieg ich ein Eis? Bisher fand ich die Fragen die über das Technikspielzeug gestellt wurden eher nervig, die Fragen in der Pause dagegen waren interessant - aber das haben nur die gehört die vorne an der Bühne standen.

Ich würde mir wünschen das die Vorlesung wieder zu ihrer ursprüglichen Form zurückfindet....
Premature optimization is the root of all evil.

Don't anthropomorphize computers: They hate that.

Benutzeravatar
Dominik
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 4. Okt 2007 09:40
Wohnort: Wiesbaden

Beitrag von Dominik »

Ja, das stimmt schon, dieser Nonsense interessiert keinen. Aber für alle diejenigen, die jetzt über Java stöhnen und sagen, man kann an der Uni ohne Vorkenntnisse studieren: Es gab noch vor der Orientierungswoche einen Vorkurs programmieren in Java. Ich glaub, wenn man die Folien dazu sich mal anschaut, kann man sicher nichts falsch machen ;)

http://www.d120.de/fachschaft/aktivitae ... alien.html

Grüße
Dominik

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Kritik an Java Einfürung

Beitrag von guido »

Ich will mich dazu auch mal äußern :)
Wambolo hat geschrieben:1. Warum wurden vor den Codeeispielen für Klassen und Objekterschaffung nicht die Grundelemente eingeführt. Es war ohne Vorwissen nicht leicht, der Vorlesung zu folgen.(zumindest für mich)
Weil die Vorgabe der Vorlesung war, "wir machen erst die Konzepte" - das heißt: Objektorientierung -, dann die "syntaktischen Details". Das wird schon seit einigen Jahren so gemacht und bietet - analog zu Scheme auch durchaus Vorteile. So ist die Versuchung, erst einmal "irgendwie imperativ" zu arbeiten und Klassen nicht gerade gut zu wählen, auf die Art deutlich geringer. Dass es dabei zu Problemen kommt, ist mir leider klar - eben genau dort, wo syntaktische Vorgriffe auf T15 passieren.

Die Alternative -- "reine Objektorientierung", also komplett von Java losgelöst und damit ohne ein einziges Codebeispiel -- haben leider ebenfalls Nachteile, was dann die spätere Umsetzung bzw. das "Umlernen" auf Java betrifft. Einen Königsweg kenne ich hier leider auch nicht.

Nebenbei bemerkt ist eine Randbedingung der Vorlesung, dass sie "kompatibel" zu den Vorjahren sein sollte, d.h. auch Strukturen, die vielleicht im letzten Semester nicht so gut geklappt haben, bleiben tendenziell eher erhalten. Dafür müssen Wiederholer (die es immer gab, gibt und geben wird) weniger "umdenken", was bei ihnen den Frustpegel deutlich senkt -- und die Veranstalter der Folgejahre wissen eher, was sie voraussetzen können und was nicht.
Wambolo hat geschrieben:2. Die Übung verlangt Kenntnisse, die zum Teil erst heute in der Vorlesung behandelt wurden. Für einen Java-Neuling wie mich war das ein ganz schönes Gefummel, bis ich mir alles Sprachelemente zusammengesucht hatte. Wieso werden z.B. Datentypen nicht vor Themen wie Vererbung und abstrakten Klassen eingeführt obwohl man für die Übung ein gewisses Wissen darüber braucht.
Siehe oben...
Wambolo hat geschrieben: 3. Zudem fand ich die Kapitel etwas unübersichtlich: Hier mal ein Hinweis wie ein Java-Programm aufgebaut ist, dann erstmal ein Interpreter-Abschnitt, dann gehts weiter mit dem Aufbau usw.
Das ließe sich sicherlich noch optimieren; für konkrete Vorschläge bin ich immer offen (wobei man nicht alles umsetzen kann, was sich Studierende wünschen). Da ich die Arbeit für GdI 1 und ICS 1 aber alleine mache (also alle Folien beider Vorlesungen selbst überarbeite etc.), ist mein Spielraum für größere Strukturänderungen etwas begrenzt.
Wambolo hat geschrieben:Achja, das hätte ich fast vergessen, großes Lob gibts natürlich für TVremote-Unterstützung.
Danke :)

Guido

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Beitrag von guido »

n-finity hat geschrieben:Hmm, ja, naja. Mag schon sein, dass nicht alles so treffend formuliert ist - aber manchmal muss man sich eben durchbeißen.

Und falls Probleme auftreten, gibt es 2 mal täglich, jeden Tag in der Woche, Sprechstunden. Darüber hinaus gibt es das TVRemote-System und zu guter letzt: einige sehr gute Literatur-Tipps, die man sich als völliger Java-Neuling ggf. mal zu Gemüte führen könnte. Man muss sie ja nicht komplett lesen, um Gottes Willen, aber bestimmte Sachen kann man da gut nachschlagen.
Ja, die Übung 7 war nicht so präzise verfasst, wie sie wohl hätte sein sollen. Leider wird man ab einem gewissen Punkt "betriebsblind"; es ist keinem rechtzeitig vorher aufgefallen...

Danke für den Hinweis auf die Sprechstunden. Meine Sprechstunde (Donnerstag 14-15 Uhr) hat übrigens noch niemand besucht...

Guido

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Beitrag von guido »

C-- hat geschrieben:Die Vorlesung bis jetzt richtig sich recht klar an Leute die bereits Erfahrung mit OOP haben, ich habe keine Ahnung wie jemand der nur Scheme kennt da mitnkommen soll, auch wenn er massiv zuhause nacharbeitet (die Zeit eines Studenten ist nunmal endlich). Viele Programmierneulinge kommen in Scheme gut mit (oft besser als die, die schon vorher eine Sprache kannten), und bei Java fahren die dann voll gegen die Wand (habe ich im letzten Semester bei einigen erlebt).
Die Java Programmierer langweilen sich, weil es so langsam vorangeht, und die Java neulinge sind überfordert - ist wer glücklich? :twisted:
Keine Ahnung; ich kenne allerdings auch den Fall, dass einige nicht so traurig sind, wenn Scheme "vorbei ist". Leider kann man nicht allen Studierenden gerecht werden, wie Du schon geschrieben hast. Die Alternativen, die ich sehe, sind folgende:

1. Wir machen das ganze Semester nur Scheme, kein Java (auch nicht im Praktikum). Vorteil: Alle fangen in etwa auf dem gleichen (Unkenntnis-)Level an. Nachteil: für GdI 2 muss sich jeder (!) Student selbst Java beibringen, da das zur ersten Folie schon vorausgesetzt wird. Und selbst wenn GdI 2 auch in Scheme wäre, würde sich das Problem nur auf GdI 3, die Kanoniken, ... verschieben.

2. Wir machen es "wie gehabt" und bieten auch Infos für Studis ohne Java-Kenntnis. Vorteil: jeder erhält brauchbare Materialien. Nachteil: "Experten" langweilen sich, "Novizen" sind überfordert und müssen stark nacharbeiten.

3. Wir machen das erste Semester nur Java (ohne Scheme). "Experten" können dann z.B. erst in der 5. Woche einsteigen, wenn die "Basics" vorbei sind. Vorteil: wir können uns mehr Zeit für Anfänger und später Experten nehmen. Nachteil: die Vorlesung muss komplett umstrukturiert werden und wird "inkompatibel" zu vorher; "Experten" kriegen evtl. nicht mit, wann sie wieder kommen sollten.

4. Wir verzichten auf die einführenden Foliensätze zu Java und setzen voraus, dass sich alle Studis bis zum Anfang von Java das "nebenher" angeeignet haben. Wir machen also ein wenig OO + Stepwise Refinement, aber entweder konzeptuell oder direkt mit Java-Code ohne Erklärungen dazu. Vorteil: etwas weniger langweilig für "Experten" und weniger Vorgriffe auf "spätere Foliensätze". Nachteil: eventuell ein hartes Brot für "Novizen".

5. Statt Java nehmen wir eine andere, nicht so bekannte Programmiersprache (C#? Python? ...?). Vorteil: alle Hörer sind wieder etwa auf einem Niveau, da kaum einer die Sprache kennt. Nachteil: eine weitere Sprache, und Java braucht ihr später trotzdem...

Was hättet ihr lieber? Ihr könnt ja auch mal eine Umfrage starten, wenn ihr wollt :)
C-- hat geschrieben:Die Vorlesung an sich ist didaktisch nicht schlecht - dank TVRemote werden auftretende Fragen schnell beantwortet. Ich glaub es fehlt nur etwas die klare Definition der Zielgruppe. Es heißt ja, man könne auch ohne Programmiervorkenntnisse auf der Uni studieren, und dann gibt es bei einem Javabeispiel zur illustration ein Stück C++ Code...
Danke erst einmal für das indirekte Lob. Die Zielgruppe ist aber in der Tat ein Problem. Als ich gefragte hatte, wer schon Java programmiert hat, haben sich etwa 40-60% der Hörer im Audimax gemeldet (zählen kann man bei der Zahl ja nicht mehr). Und da liegt eben das Problem...

Das C/C++-Beispiel musste man nicht wirklich verstehen; es ging mehr um die Abbildung darunter, die die Unterschiede visuell darstellte.

Guido

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Beitrag von guido »

taufrisch hat geschrieben:Im Gegensatz zum wirklich hervorragend aufgearbeiteten Schemeteil bin ich jetzt richtig enttäuscht.
Das finde ich bedauerlich.
taufrisch hat geschrieben:Wir haben eine wirklich interessante Programmiertechniken kennengelernt, darauf wird aber nicht aufgebaut, sondern wir können alles in die Tonne kloppen.

Funktionen höherer Ordnung? Geht in Java irgendwie. Später mal. Viel später...

Verträge für Funktionen? Och nee, jetzt nicht so wichtig.
Wäre es euch wirklich lieber, wenn wir gleich alles, was man in der Richtung in Java machen kann (ich erwähne für "Experten" neben Javadoc hier etwa assert, Exceptions, JUnit direkt von Anfang an einbeziehen würden? Ich fürchte, dass dann vor lauter Sprachelementen kaum noch jemand ohne entsprechende Vorkenntnis in der Lage wäre, eine "sinnvolle" Methode - geschweige denn eine Klasse zu schreiben. Das sähe in etwa wie folgt aus:

Code: Alles auswählen

/**
 * Returns the faculty function value for parameter n
 *
 * @param n the value for which n! is to be calculated. Note: must be at least 0.
 * @return the value of n! if n is positive
 * @throws IllegalArgumentException if the value passed in is negative
 */
public int faculty(int n) {
  assert(n >= 0); // return AssertionError if n is not positive
  // must also throw an exception, because assertions can be turned off...
  if (n < 0)
    throw new IllegalArgumentException("negative value for faculty param: " +n);
  if (n == 0)
    return 1;
  return faculty(n-1) * n;
}
Und wie erkläre ich all das einem Erstsemester ohne Java-Kenntnisse, so dass er oder sie das selbst umsetzen kann? (Und man kann sicher noch mehr im Code machen als schon da steht...)
taufrisch hat geschrieben:Programme die funktionieren? Naja, Polynome mit Grad 4 reichen ja für den Alltagsgebrauch, dann hackt man sich die Annahmen halt so zusammen das es gerade noch funktioniert.
Die Aufgabe hatte einige Schwachstellen, die wir nicht rechtzeitig gemerkt haben. Bitte denkt aber auch daran, dass wir zum Zeitpunkt der Übung noch keine Arrays hatten (geschweige denn Listen etc.), so dass es eben nur über Attribute "geregelt" werden konnte. Und viele sinnvolle Elemente - wie Exceptions - waren eben noch nicht "dran" und können daher auch nicht genutzt oder vorausgesetzt werden.
taufrisch hat geschrieben:Und das TVRemote-Gimmick finde ich auch eher störend. 14 Seiten vorher gehört eine vier hin, keine fünf. Toll, habe ich auch gemerkt, na und? Krieg ich ein Eis? Bisher fand ich die Fragen die über das Technikspielzeug gestellt wurden eher nervig, die Fragen in der Pause dagegen waren interessant - aber das haben nur die gehört die vorne an der Bühne standen.

Ich würde mir wünschen das die Vorlesung wieder zu ihrer ursprüglichen Form zurückfindet....
Was die Fragen betrifft: ich versuche, möglichst direkt zu antworten, was sicher mal besser und mal weniger gut klappt. Ich kann alternativ auch immer erst in der Pause auf Fragen eingehen und sie solange ignorieren; für das Verständnis ist aber oft ein schnelles Feedback wichtiger oder hilfreicher.

Für die Qualität der Fragen kann ich natürlich nichts :)

Was meinst Du mit "ursprünglicher Form" -- die Inhalte? Die Art der Darstellung? Den Dozent? ...?

Guido

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Beitrag von guido »

Dominik hat geschrieben:Ja, das stimmt schon, dieser Nonsense interessiert keinen. Aber für alle diejenigen, die jetzt über Java stöhnen und sagen, man kann an der Uni ohne Vorkenntnisse studieren: Es gab noch vor der Orientierungswoche einen Vorkurs programmieren in Java. Ich glaub, wenn man die Folien dazu sich mal anschaut, kann man sicher nichts falsch machen ;)

http://www.d120.de/fachschaft/aktivitae ... alien.html
Richtig; wobei man auch sagen könnte, dass es hier einige Überschneidungen gibt - und die Frage ist, ob es didaktisch so sinnvoll ist, wenn das Semester so abläuft:

1. Vorkurs Java (mit Elementen von T12-T15)
2. "Jetzt machen wir Scheme"
3. Nach etwa 6 Wochen: Java "von Anfang an", also redundant zum Vorkurs.

Auf die Inhalte des Vorkurses haben wir allerdings wenig bis keinen Einfluss - ich habe die Folien eben das erste Mal gesehen bzw. überflogen...

Guido

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Beitrag von Osterlaus »

Ich denke mal, was die Java-Grundlagen betrifft, könnte man von Dozentenseite mehr auf die Fachschaft zugehen, die hat ja einen Vorkurs in Java veranstaltet - Anfang Oktober -, und wenn man sich da mehr zusammentut (ggf. noch mehr als bislang, ich will da ja nicht unterstellen, dass es keine Absprachen gibt) und diesen Kurs auch mehr von "offizieller" Seite unterstützt, indem man ihn mehr bewirbt als schon gesehen. So könnte eine gescheite Einarbeitung in Java gegeben werden, auch ohne dass man dort mit Programmiergrundlagen hingeht.

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 380
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Beitrag von guido »

Osterlaus hat geschrieben:Ich denke mal, was die Java-Grundlagen betrifft, könnte man von Dozentenseite mehr auf die Fachschaft zugehen, die hat ja einen Vorkurs in Java veranstaltet - Anfang Oktober -, und wenn man sich da mehr zusammentut (ggf. noch mehr als bislang, ich will da ja nicht unterstellen, dass es keine Absprachen gibt) und diesen Kurs auch mehr von "offizieller" Seite unterstützt, indem man ihn mehr bewirbt als schon gesehen. So könnte eine gescheite Einarbeitung in Java gegeben werden, auch ohne dass man dort mit Programmiergrundlagen hingeht.
Bis vor zwei Jahren habe ich den (englischen) Vorkurs noch selbst gemacht, so dass die Abstimmung unkritisch war. Dann wollten die Veranstalter keinen Vorkurs mehr, um die Studierenden "vor Scheme nicht mit Java zu verwirren" (das ist kein wörtliches Zitat). Nun gibt es ihn wieder, aber es gab in der Tat leider keine Abstimmung im Vorfeld, was dort behandelt wird. Die Inhalte kenne ich erst, wenn ich gleich zum Drucker gehe.

Allerdings hat der Vorkurs eine Reihe von prinzipbedingten Problemen, die nicht am Veranstalter (weder der Vorlesung noch denen des Vorkurses) liegen:

1. Er richtet sich nur an Studierende der Informatik; Hörer der Wirtschaftsinformatik etc. bleiben außen vor. Nicht weil sie unerwünscht wären, sondern weil der Vorkurs in die O-Phase etc. des FB 20 integriert ist und Studis anderer FBs davon in der Regel nichts mitbekommen.

2. Der Vorkurs hilft nur den Studis, die auch wirklich teilnehmen (können). Wer etwa bis Semesteranfang noch arbeitet o.ä., hat eben "Pech gehabt" bzw. kann nur noch die Folien lesen...

Guido

Osterlaus
BSc Spammer
BSc Spammer
Beiträge: 1263
Registriert: 23. Aug 2007 12:46
Wohnort: DA

Beitrag von Osterlaus »

Gegen den ersten Punkt spricht, dass der Vorkurs in der Woche vor der OPhase stattfand. Und gegen die Arbeit kann man nix machen, aber ich selbst habe die Prioritäten in eben jener Woche klar gesetzt.

RaZzel
Erstie
Erstie
Beiträge: 15
Registriert: 1. Okt 2007 12:13

Beitrag von RaZzel »

Also ich persönlich kann hier nur sagen, dass mich die Vorlesung mehr verwirrt, als aufklärt. ich war auch beim Vorkurs dabei und habe wirklich beim Stand 0 angefangen (mit Programmiersprachen allgemein) und trotzdem dem größten Teil folgen können. (Großes Lob an die Fachschaft ;) )

Vom Aufbau der Vorlesung hätte ich mir doch gewünscht dass es ähnlich abgelaufen wäre, da ich im Moment nicht überblicke was ich in der Hausübung eigentlich machen soll...

Naja, aber da müssen wir uns wohl durchbeißen...

Antworten

Zurück zu „Archiv“