Laden...

Meinung zur Aufgabe: Eigene Implementierung eine List of List

Erstellt von Borbes vor 6 Jahren Letzter Beitrag vor 6 Jahren 2.501 Views
B
Borbes Themenstarter:in
21 Beiträge seit 2018
vor 6 Jahren
Meinung zur Aufgabe: Eigene Implementierung eine List of List

Guten Tag zusammen,

ich habe vor kurzen die Aufgabe erhalten eine eigene Implementierung einer List of List zu schreiben. ( List[][] )
Kurz gesagt, gehe ich bei dieser Aufgabe einigermmaßen untergegangen. Ich verstehe zwar grundsätzlich das Prinzip und wie es funktioniert, trotzdem fällt es mir schwer, dass Prinzip in Codezeilen zu transformieren.
Ich muss dazu sagen, dass ich seit 5 Monaten programmiere. Ich kann sagen, dass ich einen persönlichen Lehrer habe, was dass Programmieren anbelangt. Er macht seinen Job auch sehr gut.
Er hats aber auch nicht immer leicht mit mir. 😃 In den 5 Monaten, habe ich bereits viel gelernt und habe bereits selbst Spiele programmiert wie z.b. ein Kniffel Abklatsch und Mastermind.
Das Klassenkonzept wurde kam zwar bisher auch hier und da vor, aber nicht in dem Ausmaß wie bei dieser Aufgabe nun.
Es ist nur so, dass wenn ich so klanglos untergehe wie bei dieser Aufgabe untergehe, ich wieder von Selbstzweifel zerfressen werde und ich mich frage, ob ich überhaupt als Programmierer geeignet bin und ich die geistigen Voraussetzungen mitbringe.
Vor allen macht mir das Problem zu schaffen, dass ich grundsätzlich bis jetzt alles verstanden habe und trotzdem Probleme habe, Konzepte als Code wiederzugeben.

Was haltet ihr von der Aufgabe? Es ist mir bewusst, dass ihr mich nicht kennt, oder wie mein Wissensstand ist, noch - wie schnell ich lerne ect.
Aber haltet ihr so eine Aufgabe eher für Fortgeschritten, oder gehört sie noch zu den Basics. Die wir nebenbei gerade abgeschlossen haben.

Danke im Vorfeld für die Antworten

16.807 Beiträge seit 2008
vor 6 Jahren

List[][] ist keine List of List, das ist - sofern Du es zB als string[][] schreibst ein sogenanntes Jagged Array; jedenfalls würde ich das in .NET nicht als List of List bezeichnen.

List of List wäre eher List<List<T>>

Wie ist denn die originale Aufgabenstellung?
Vielleicht verstehst Du ja einfach was falsch.

Aber ja: jeder hat klein angefangen.
Absolut keine Tragik 😉

B
Borbes Themenstarter:in
21 Beiträge seit 2018
vor 6 Jahren

Danke für die schnelle Antwort.

Die Aufgabenstellung lautete folgendermaßen:


Schreibe eine generische Klasse "DynamicArray" für eine Datenstruktur, die sich wie
ein 2D-Array verhält. Der Zugriff auf die darin abgespeicherten Daten soll über die
Indexer [x] sowie [x,y] möglich sein. Anders als bei einem 2D-Array, welches eine
statische Datenstruktur darstellt, soll es sich hierbei um eine dynamische Struktur
handeln (Liste of Liste). Zum Abspeichern und Strukturieren der Daten verwende die
Lösung der vorangegangenen Aufgabe 3 (die Klassen "Liste" und "Node").

Das Hinzufügen neuer sowie das Löschen bestehender Datensätze (Index [x]) soll über
die objektgebundenen Methoden "Add()" und "Del(int x)" möglich sein.

Das Hinzufügen neuer sowie das Löschen bestehender Einträge (Index [x,y]) soll über die entsprechenden, ebenfalls objektgebundenen Überladungen "Add(int x, string eintrag)" und "Del(int x, int y)" möglich sein.

Ich meine, ich habe denke ich habe mir schon viel Wissen über das Programmieren angeeignet. Aber man ließt ja immer so viel, von wegen dass man gewisse Denkstrukturen braucht. Ich habe halt selbst den Anspruch an mich nicht nur irgendwie zu programmieren, sondern gut zu programmieren.
Und wenn ich dann eine Aufgabe habe, die ich augenscheinlich verstanden habe, aber dann nix zu Stande bekomme, frisst mich das auf.

2.298 Beiträge seit 2010
vor 6 Jahren

Wie sieht die List-Klasse aus? Ist diese ebenfalls generisch oder die Node-Klasse? Davon hängt meines Erachtens nach ab, wie die konkrete Implementierung aussehen kann.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

49.485 Beiträge seit 2005
vor 6 Jahren

Hallo Borbes,

wie hast du denn die vorangegangene Aufgabe 3 gemeistert? Die ist ja zu der aktuellen Aufgabe nicht besonderes unähnlich. Wenn du die geschafft hast, dann solltest die aktuelle Aufgabe nach dem gleichen Prinzip angehen können. Oder was ist aus deiner Sicht bei der neuen Aufgabe so grundsätzlich anders?

herbivore

B
Borbes Themenstarter:in
21 Beiträge seit 2018
vor 6 Jahren

Bei der vorangegangenen Aufgabe habe/hatte ich auch meine Probleme. Wie gesagt. Es ist nicht das Verständnis wie die Dinge funktionieren, sondern eher, das Wissen dann nach Code umzuwandeln.
Vielleicht bin ich wirklich nicht geeignet dazu. Das schlimme ist, dass ich gar nicht genau sagen kann, wo das Problem liegt.

2.298 Beiträge seit 2010
vor 6 Jahren

Naja, damit wir dir aber hilfreiche Anstöße geben können, wäre dennoch wichtig wie du die vorherigen Aufgaben gelöst hast und wie das Ergebnis aussieht.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

49.485 Beiträge seit 2005
vor 6 Jahren

Hallo Borbes,

naja, in der Aufgabe ist z.B. davon die Rede, bestimmte Methoden zu implementieren. Das ist doch ein konkreter Ansatz. Und dass du in der Implementierung der Methode die Klassen List und Node verwenden sollst, steht auch schon fest. Klar muss man sich überlegen, wie man diese verwendet. Aber das kann man eben auch Anhand einer konkreten Methode machen, die gerade zu implementieren ist. Wenn dir das große Ganze zu unübersichtlich ist, dann fang vielleicht mit einer einzelnen Methode an.

Ich würde an deiner Stelle nicht gleich die Flinte ins Korn werfen, nur weil hier eine Hürde auftaucht. Das wird noch öfter passieren. Das erleben alle Programmierer immer wieder. Das ist ganz normal. Da muss man durch.

Auf der anderen Seite bin ich in 30 Jahren zwei Personen begegnet, die tatsächlich nicht fürs Programmieren geeignet waren und es dann auch beide aufgehört haben. Kommt also nicht oft vor, aber kann passieren. Das solltest du aber nicht alleine entscheiden, sondern auf jeden Fall mit deinem Lehrer, Mitschülern und ggf. noch anderen geeigneten Personen konkret besprechen.

herbivore

P
1.090 Beiträge seit 2011
vor 6 Jahren

Was haltet ihr von der Aufgabe? Es ist mir bewusst, dass ihr mich nicht kennt, oder wie mein Wissensstand ist, noch - wie schnell ich lerne ect.
Aber haltet ihr so eine Aufgabe eher für Fortgeschritten, oder gehört sie noch zu den Basics. Die wir nebenbei gerade abgeschlossen haben.

Hallo Borbes,

das ist grob eine Aufgabe, wie ich sie vor 20 Jahren im Studium hatte und danach nie mehr gebraucht habe. Zur Ausbildung als Fachinformatiker, gehört so was nicht dazu. Also als Programmierer braucht man es nicht wirklich, es ist vielleicht aus theoretischen Aspekt interessant, so was mal Programmiert zu haben.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

B
Borbes Themenstarter:in
21 Beiträge seit 2018
vor 6 Jahren

Ihr habt recht.

Es ging mir jetzt weniger um Hilfe für deine Aufgabe, eher dass ihr meine Tränen wegwischt 😄

Offenbar ist der Prozess der zum Thema "Zusammenspiel der Klassen untereinander" noch nicht wirklich in meinem Kopf gereift. Aber ich werde auf jedenfall weiter machen.

Ich danke euch für die Antworten und wünsche euch noch einen schönen Tag.

16.807 Beiträge seit 2008
vor 6 Jahren

das ist grob eine Aufgabe, wie ich sie vor 20 Jahren im Studium hatte und danach nie mehr gebraucht habe. Zur Ausbildung als Fachinformatiker, gehört so was nicht dazu

Etwas gewagt ein Studium von vor 20 Jahren mit der aktuellen Ausbildung eines FIAE zu vergleichen.
Zudem kann ich sagen, dass sowas durchaus im aktuellen Stoff enthalten und zu erwarten ist.

W
955 Beiträge seit 2010
vor 6 Jahren

das ist grob eine Aufgabe, wie ich sie vor 20 Jahren im Studium hatte und danach nie mehr gebraucht habe. Zur Ausbildung als Fachinformatiker, gehört so was nicht dazu Warte ab, vllt kommt in Aufgabe 5 die Implementierung via Dictionary.

C
2.121 Beiträge seit 2010
vor 6 Jahren

Um das mal von der praktischen Seite her zu sehen. Wenn ich eine dynamische 2D Speicherklasse ohne weitere Vorgaben bauen sollte, wäre das wahrscheinlich keine List<List<T>>. Sondern etwas anderes, das ohne Unterobjekte auskommt und beliebige Indizes belegen kann, ohne alle vorigen Speicherstellen belegen zu müssen.
"List of List" könnte auch nur als Vergleich gedacht sein, wie sich das gaze verhalten soll. Egal wie es tatsächlich realisiert ist.

Wenn die spezielle Lösung an Aufgabe 3 angelehnt sein soll, ist tatsächlich entscheidend was diese Aufgabe war und wie die Lösung aussieht.

D
152 Beiträge seit 2013
vor 6 Jahren

Für mich schaut das eher wie eine Art Matrix aus


\* * *
\* *
\* * * * *
\*

Und die Klasse, welche diese dargestellt hat zwei Indexer und die entsprechenden Methoden.


public T[] this[int x]
void Add()
void Del(int x)

public T this[int x, int y]
void Add(int x, T eintrag)
void Del(int x, int y)

Wobei T ggf. vom Typ string ist, wenn die Implemntierung der Klasse nicht generisch sein soll.