Verzweifelt mit Programmieren (Datenstrukturen und Algorithmen). Was kann ich tun?

Fils506

Newbie
Registriert
Apr. 2020
Beiträge
5
Hallo, zuerst entschuldige ich mich für den langen Betrag, aber ich brauche dringend Hilfe und will meine Situation so gut wie möglich beschreiben.

Ich studiere Wirtschaftsinformatik an einer FH und bin momentan im 2. Semester. Ich habe mein Studium absolut ohne Vorkenntnisse im Programmieren angefangen, habe ich trodzdem meine Programmieren-Klausur im 1. Semester relativ gut gemacht. Jetzt studieren wir jedoch Datenstrukturen und Algorithmen mit JavaScript und ich finde dieses Fach total unmachbar.

Das Hauptproblem besteht darin, dass jedes Mal nach der Vorlesungen (die momentan online stattfinden), bekomen wir eine Aufgabe, die wir in nur 90 Minuten lösen müssen und abgeben. Man muss alle dieser Aufgaben außer 2 bestehen, um zur Klausur zugelassen zu werden. Das Problem ist aber, dass die Aufgaben echt schwer sind. Sie umfassen immer den neuen Lehrstoff, deswegen lerne ich im Voraus was wir machen werden (zumindest lädt der Dozent die neuen Folien 1 Tag vor der Vorlesung hoch). Wenn ich die Folien und auch in Bücher und im Internet lese, verstehe ich was wie funktioniert, aber wenn die Aufgabe kommt bin ich wieder völlig ahnungslos. Es ist immer etwas neues für mich, etwas das in gemeinsam mit dem neuen Lehrstoff hat, aber immer mehr erfordert, vielleicht mehr Kreativität oder weiß ich nicht was. Ich weiß niemals wie das, was ich machen muss, in der konkreten Aufgabe umzusetzen. Ja, wenn ich mehr Zeit hätte, wäre es wahrscheinlich besser, ist es aber für mich kaum vorstellbar, das in einem so begrenzten Zeitraum zu erledigen. Ich kann gar nicht damit anfangen. Diese Woche beispielsweiße habe ich totalen Quatsch geschrieben und abgegeben, der sicherlich falsch ist. Ich bin komplett verzweifelt.

Deswegen wende ich mich an euch und ich hoffe wirklich, das jemand mich beraten kann, wie ich in dieser Situation umgehen soll. Wie kann ich mich wirklich gut auf diese Aufgaben (bzw. auf die Klausur) vorbereiten? Auf jeden Fall muss ich mehr üben aber woher soll ich überhaupt anfangen? Ich würde jeden Hinweis sehr schätzen, da es wirklich wichtig für mich ist, mein Studium in Regelzeit zu schaffen. Vielen Dank für eure Zeit.
 
Zuletzt bearbeitet:
Ich kann dir da zwar leider (noch) kein Tipp geben, würde aber mal gerne die Aufgaben sehen um mich da mal selbst dran zu machen.
 
  • Gefällt mir
Reaktionen: marcOcram und Hexxxer76
Erster Schritt:
Bei Fragestellungen hier im Forum den Text ein wenig mit Absätzen versehen. Weil so lesen es sich hier die wenigsten durch :-)
Das gehört auch zur Struktur.
 
  • Gefällt mir
Reaktionen: Hayda Ministral
Bagbag schrieb:
Ich kann dir da zwar leider (noch) kein Tipp geben, würde aber mal gerne die Aufgaben sehen um mich da mal selbst dran zu machen.
Danke für deine Antwort, darf ich die Aufgaben hier veröffentlichen?
 
Ich wüsste da jetzt spontan keine Regel, die dagegen spricht, solange du keine Antworten erwartest (denn Hausaufgabenhilfe ist hier nicht gern gesehen, auch wenn ich nicht verstehe wieso).
 
1 Tag im Voraus den Stoff anschauen bringt halt sehr wenig, wenn es um grundsätzliches Fachwissen geht, das man vor allem VERSTEHEN muss und nicht nur auswendig lernen.

Datenstrukturen und Algorithmen sind Grundelemente, auf der Programmierung basiert, dementsprechend gibt es bereits 1Mio Bücher dazu, inklusive zig Übungsaufgaben.
 
Fils506 schrieb:
Deswegen wende ich mich an euch und ich hoffe wirklich, das jemand mich beraten kann, wie ich in dieser Situation umgehen soll. Wie kann ich mich wirklich gut auf diese Aufgaben (bzw. auf die Klausur) vorbereiten?
Die erste Anlaufstelle sollten hierbei meiner Meinung nach die Kommilitonen sein. Du wirst doch sicher auch in anderen Fächern Lerngruppen haben, selbst wenn sie nicht regelmäßig, sondern eher sporadisch zusammenkommen. Mit Videokonferenzen oder via Teamspeak, Mumble, Discord und Co kann man das auch gut von zu Hause aus machen.

Ein Forum kann sowas kaum ersetzen. Laut Forenregeln sind Lösungen für Schulaufgaben im weitesten Sinne auf computerbase nicht erlaubt - wenn nicht ein Mindestmaßan Eigenleistung erkennbar ist. Wir können also maximal Hinweise und Tips zu Aufgaben geben und ggfs bei deiner Lösung den einen oder anderen Fehler anmerken. Hinzu kommt aber, dass natürlich nicht jeder bei jedem Problem helfen kann und ob du dann innerhalb von 24h Hilfe bekommst, ist nicht sichergestellt.
 
  • Gefällt mir
Reaktionen: netzgestaltung, scrub13 und Hayda Ministral
mastaqz schrieb:
1 Tag im Voraus den Stoff anschauen bringt halt sehr wenig, wenn es um grundsätzliches Fachwissen geht, das man vor allem VERSTEHEN muss und nicht nur auswendig lernen.

Das liegt aber nicht am TE sondern eher am Vortragenden, welcher es nicht für nötig hält seine Folien bzw. Skriptum früher zugänglich zu machen.

Fils506 schrieb:
deswegen lerne ich im Voraus was wir machen werden (zumindest lädt der Dozent die neuen Folien 1 Tag vor der Vorlesung hoch)

Auf gut Glück ins Blaue hinein zu lernen halte ich auch nicht für unbedingt sinnvoll, da jeder Dozent für gewöhnlich wo anders seine Schwerpunkte setzt.

Aufgrund der aktuellen Lage, wo extrem viel via Fernstudium gelöst wird, halte ich 1 Tag Vorbereitungszeit für nicht sehr studentenfreundlich, vor allem da sich nicht jeder gleichermaßen leicht lernt. Ich finde es liegt definitiv in der Hand des Lehrenden etwas für Chancengleichheit zu sorgen.

Wenn sich jemand mehrere Tage für eine Zwischenüberprüfung vor bereitet und diese dann somit besteht, ist das meiner Meinung nach nicht weniger wert, als wenn jemand, weil ihm das Fach liegt, dafür nur kurz die Unterlagen über den Nachmittag verteilt überfliegt.

Fleiß sowie Talent gehören für mich beiderseits belohnt, denn nur die wenigsten kommen als Wunderwuzzi auf die Welt.

Mein Ratschlag wäre deshalb, deinen Jahrgangssprecher zu kontaktieren, welcher dann eurem Dozenten die Sachlage erklärt und diesen dann bittet seine unterlagen etwas früher zu veröffentlichen, damit auch ausreichend Zeit zur Vorbereitung zur Verfügung steht.
 
  • Gefällt mir
Reaktionen: netzgestaltung und Raijin
Bagbag schrieb:
Ich wüsste da jetzt spontan keine Regel, die dagegen spricht, solange du keine Antworten erwartest (denn Hausaufgabenhilfe ist hier nicht gern gesehen, auch wenn ich nicht verstehe wieso).
Okay, das waren usere Aufgaben.

Die erste Aufgabe:
Wir mussten ein Programm schreiben, das ein Array innerhalb einer Schleife mit fünf zufälligen Ganzzahlen zwischen (jeweils einschließlich) 1 und 10 füllt; wir mussten für die Generierung der Zahlen die Funktion getRandInt() nutzen.
Dann mussten wir das Array in der Konsole ausgeben.
Danach mussten wir zwei weitere Arrays erstellen, in die wir mit Hilfe einer Schleife und einer Verzweigung die Zahlen aus dem ersten Array kopieren: Eines der beiden neuen Arrays sollte nur die Zahlen 1 bis 5 aufnehmen, das andere nur die Zahlen 6 bis 10, dann wieder die Arrays in der Konsole ausgeben.

Die zweite Aufgabe:

Wir mussten für die Klasse LinkedList unten, die Methoden size(), die die Anzahl der Elemente der Liste zurückgibt und print(), die die Elemente der Liste nacheinander in einen String schreibt und diesen anschließend in der Konsole ausgibt, implementieren. Dann mussten wir eine Liste innerhalb einer Schleife mit fünf zufälligen Ganzzahlen zwischen (jeweils einschließlich) 1 und 10 füllen. Für die Generierung der Zahlen mussten wir wieder die Funktion getRandInt() nutzen. Dann mussten wir die Methoden testen.

Javascript:
class Node {
    constructor(element) {
        this.element = element;
        this.next = null;
    }
}

class LinkedList {
    constructor() {
        this.length = 0;
        this.head = null;
    }

    add(element) {
        let node = new Node(element);
        if (this.head === null)
            this.head = node;
        else {
            let current = this.head;
            while (current.next)
                current = current.next;
            current.next = node;
        }
        this.length++;
    }
}

Und die dritte Aufgabe:

Wir mussten für die Klasse unten die folgenden Methoden implementieren:

  • search(element), die true zurückgibt, wenn element mindestens einmal in der Liste vorhanden ist, bzw. false, wenn nicht;
  • removeIfFirst(element), die element aus der Liste entfernt, falls element das erste Element der Liste ist. Wenn das Element entfernt wurde, soll diese Methode true zurückgeben, ansonsten false;
  • removeIfLast(element), die element aus der Liste entfernt, falls element das letzte Element der Liste ist. Wenn das Element entfernt wurde, soll diese Methode true zurückgeben, ansonsten false.
Dann wieder die Methoden testen.

Javascript:
class Node {
    constructor(element) {
        this.element = element;
        this.next = null;
    }
}

class LinkedList {
    constructor() {
        this.length = 0;
        this.head = null;
    }

    add(element) {
        let node = new Node(element);
        if (this.head) {
            let current = this.head;
            while (current.next)
                current = current.next;
            current.next = node;
        } else this.head = node;
        this.length++;
    }

    size() {
        return this.length;
    }

    print() {
        let s = "LinkedList contains:";
        let current = this.head;
        while (current) {
            s += " " + current.element;
            current = current.next;
        }
        console.log(s);
    }
}

Ich weiß, vielleicht sehen diese Aufgaben ganz einfach aus, an sich sind sie eigentlich nicht so schwer, aber wenn du über nur wenige Vorkenntnisse im Programmieren und keine Vorkenntnisse im JavaScript verfügst, ist es für mich fast unmöglich, das in 90 Minuten zu schaffen.
mastaqz schrieb:
1 Tag im Voraus den Stoff anschauen bringt halt sehr wenig, wenn es um grundsätzliches Fachwissen geht, das man vor allem VERSTEHEN muss und nicht nur auswendig lernen.

Datenstrukturen und Algorithmen sind Grundelemente, auf der Programmierung basiert, dementsprechend gibt es bereits 1Mio Bücher dazu, inklusive zig Übungsaufgaben.
Natürlich muss man nicht einfach auswendig lernen, die Frage aber ist WIE kann ich verstehen und etwas in einer konkreten Aufgabe umzusetzen? Wenn ich das herausfinde, wäre es für mich auch ziemlich einfach die Aufgaben zu lösen, aber wie kann ich das erreichen? Wie gesagt, wenn ich irgendwo beispielsweise über eine Funktion lese, kann ich verstehen wie sie funktioniert. Die Aufgaben sehen jedoch immer anders aus und ich weiß nicht, wie man weiter gehen muss.

Raijin schrieb:
Die erste Anlaufstelle sollten hierbei meiner Meinung nach die Kommilitonen sein. Du wirst doch sicher auch in anderen Fächern Lerngruppen haben, selbst wenn sie nicht regelmäßig, sondern eher sporadisch zusammenkommen. Mit Videokonferenzen oder via Teamspeak, Mumble, Discord und Co kann man das auch gut von zu Hause aus machen.

Ein Forum kann sowas kaum ersetzen. Laut Forenregeln sind Lösungen für Schulaufgaben im weitesten Sinne auf computerbase nicht erlaubt - wenn nicht ein Mindestmaßan Eigenleistung erkennbar ist. Wir können also maximal Hinweise und Tips zu Aufgaben geben und ggfs bei deiner Lösung den einen oder anderen Fehler anmerken. Hinzu kommt aber, dass natürlich nicht jeder bei jedem Problem helfen kann und ob du dann innerhalb von 24h Hilfe bekommst, ist nicht sichergestellt.
Das stimmt, ich kommuniziere auch mit manchen Kommilitonen von mir, kann ich mich jedoch nicht immer auf meine Kommilitonen verlassen, ich muss und will etwas selber zu schaffen. Und nur wenn ich beispielsweise etwas konkretes nicht weiß, mich an die anderen zu wenden. Wenn es um das Forum geht, ich erwarte keine Lösungen hier, nur Hinweise wie ich in der Zukunft weiter gehen kann.

Timberwolf90 schrieb:
Mein Ratschlag wäre deshalb, deinen Jahrgangssprecher zu kontaktieren, welcher dann eurem Dozenten die Sachlage erklärt und diesen dann bittet seine unterlagen etwas früher zu veröffentlichen, damit auch ausreichend Zeit zur Vorbereitung zur Verfügung steht.
Das ist eine gute Idee, ich weiß nicht, ob das einen großen Unterschied für mich machen würde, aber auf jeden Fall besser als die Situation im Moment, also es lohnt sich zumindest zu versuchen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Bagbag
Wie wäre es denn, mal ein paar Aufgaben auf Portalen wie codewars zu lösen? Da kannst du dir Zeit nehmen und das sind genau solche Spielereien. Wenn du den Punkt erreicht hast, dass dir das Handwerk an sich keine Hürde mehr ist und du dich wirklich auf den Inhalt der Aufgabe konzentrieren kannst, geht dir das auch leichter von der Hand.
 
  • Gefällt mir
Reaktionen: netzgestaltung und bog
Ich schätze, dein Problem als Anfänger ist, dass du nicht weißt, wo und wie du anfangen sollst.
Du fängst wahrscheinlich schon an zu programmieren, ohne den Algorithums komplett im Kopf zu haben.
Hast du dich schon mal mit Pseudo-Code beschäftigt?
Damit schreibt man den Algorithmus in eigenen Worten, unabhängig von der Programmiersprache.
Wenn man den in Gedanken (oder mit Papier und Bleistift) durchgeht und er funktioniert, dann erst übersetzt man ihn in Code.
Beispiel die search-Methode oben.
gegeben eine Liste mit Elementen und ein gesuchtes Element
Pseudo-Code könnte so aussehen:
Code:
rückgabe = falsch
prüfe für jedes listenelement
      ist listenelement = element ?
            wenn ja
                 rückgabe = wahr
                 return rückgabe
            wenn nicht
                  nächtes listenelement
return rückgabe
Kann man natürlich noch optimieren. ;)
Wenn du dann die grundlegenden Strukturen deiner Sprache if/for/while usw. kennst, ist das einfach in Code zu übersetzen.
Wenn du ein wenig Übung hast, schüttelst du dir das aus den Fingern. Nur Mut.
Etwas nur lesen, bringt einen nicht viel weiter - Übung ist alles.

Probier doch mal removeIfFirst(element) als Pseudo-Code zu schreiben. :)
 
  • Gefällt mir
Reaktionen: Fils506
hongkongfui schrieb:
Ich schätze, dein Problem als Anfänger ist, dass du nicht weißt, wo und wie du anfangen sollst.
Du fängst wahrscheinlich schon an zu programmieren, ohne den Algorithums komplett im Kopf zu haben.
Das ist genau mein Problem! Ich weiß nicht wo und wie anzufangen. Ich freue mich, dass du bemerkt hast, was der Grund dafür sein könnte. Und ja, ich beginne sofort zu programmieren, beispielsweise wenn ich die search-Methode zu implementieren versuche, denke ich zuerst wie ich die Zeile mit der Suchoption zu schreiben und dann die anderen, statt alles zuerst im Kopf zu haben.
Wir haben uns ein bisschen mit Pseudo-Code beschäftigt und ich probiere auch die removeIfFirst(element) Methode wie du mir empfolen hast zu schreiben.

Ich lese momentan außerdem ein JavaScript Buch für Anfänger und mache alle Übungsaufgaben da sodass ich zumindest die Grundlagen der Sprache erlerne. Ich habe noch dieses Buch ausgelieht: https://www.amazon.de/Algorithmen-Datenstrukturen-Pearson-Studium/dp/3868941843 (beide Bücher wurden von unserem Dozenten empfohlen). Das zweite Buch jedoch, das genau das Thema Datenstrukturen und Algorithmen umfasst, benutzt Java als Programmiersprache. Denkst du das es in meiner Situation nützlich sein könnte? Das JavaScript Buch und die Übungen da schaffe ich bis Freitag, wann unsere nächste Vorlesung stattfindet, für das zweite aber gibt es keine Chance, da es fast 1 000 Seiten lang ist. Wie ist deine Meinung dazu?
 
Zuletzt bearbeitet:
Bücher werden dein Problem anfangs nicht lösen können. Darin wird vorwiegend nur die Syntax der Sprache und je nach Umfang des Buches auch das eine oder andere Design Pattern behandelt. So wie ich deine Aussagen einschätze beginnen deine Probleme aber bereits vorher: Der Denkweise.

Ein Programmierer kann prinzipiell in jeder Programmiersprache programmieren, weil sich weitestgehend nur die Schreibweise der Befehle unterscheidet. While-Schleifen, For-Schleifen, If-Bedingungen und dergleichen sind aber Basiskomponenten, für die man nicht wirklich ein Buch benötigt. Wenn man anfängt zu programmieren, muss man sich die Fähigkeit aneignen, eine Aufgabenstellung zunächst in ihre logischen Einzelteile zu zerlegen, die man dann in Pseudo-Code übersetzt und anschließend in der jeweiligen Programmiersprache ausarbeitet. Den Zwischenschritt über Pseudo-Code braucht man früher oder später dann nicht mehr.

Diese Denkweise ist der Kern des Programmiererdaseins, das logische Auseinanderdröseln eines Problems und die anschließende systematische Lösung im Quellcode.

Dazu als Beispiel mal den ersten Teil deiner ersten Aufgabe:

Fils506 schrieb:
Die erste Aufgabe:
Wir mussten ein Programm schreiben, das ein Array innerhalb einer Schleife mit fünf zufälligen Ganzzahlen zwischen (jeweils einschließlich) 1 und 10 füllt; wir mussten für die Generierung der Zahlen die Funktion getRandInt() nutzen.
Folgendes kann man als Info extrahieren:

  • Schleife für Array mit 5 Elementen
  • Zufällige Werte im Bereich 1-10
  • Ausgabe des Arrays

Nu überlegst du dir wie du jeden Punkt in Code umsetzen kannst.

- Schleife für Array mit 5 Elemente
--> for-Schleife mit i=0 bis i=4

- Zufällige Werte im Bereich 1-10
--> je nach Art der Random-Funktion zB min/max übergeben oder ggfs Zufallswert 0-1 auf 1-10 hochskalieren

Das baust du nu zusammen und bekommst dann sowas (Pseudo-Code)

Code:
wiederhole mit index von 0 bis 4
   array[index] = Zufallszahl mit min 1 und max 10
ende wiederholen


So gehst du jetzt Stück für Stück die ganze Aufgabe durch und versuchst den Aufgabentext letztendlich in gültigen Code zu übersetzen.
 
  • Gefällt mir
Reaktionen: Drexel
Bücher haben mir eigentlich nie groß weitergeholfen. Gut, jetzt gibt's natürlich online-Seiten, die nichts anderes sind. Ich würde mir eine Art "Grundkurs javascript" online suchen und das durcharbeiten (mit Aufgaben).
Dazu brauchst du eine Referenz, wo du leicht nachschlagen kannst ("Wie sieht nochmal die FOR-Schleife aus?").
Mir hilft schon bei mehrerern Sprachen https://www.w3schools.com/jsref/default.asp .
Das Tutorial finde ich auch ganz gut.
Dort findest du z.Bsp. sehr übersichtlich, welche Methoden die üblichen Klassen schon eingebaut haben.
Auch auf youtube gibt es ganz tolle Kanäle, die einem in kleinen Häppchen leicht verdaulich die Grundzüge einer Sprache beibringen. Musst nur das passende für dich finden - es ist mit Sicherheit da!
Verschwende nicht deine Zeit mit einem 1000-Seiten Wälzer.
 
Zuletzt bearbeitet:
Als einer, der mehrere Programmiersprachen beherrscht und das Universitätsbusiness von "beiden Seiten" kennt, rate ich dir dass ihr (du + Kommilitonnen) mal ein konstruktives Gespräch mit dem Dozenten aufsucht. Ich finde es nämlich bei weitem zu überfordernd, unmittelbar nach einer Vorlesung eine Aufgabe unter Zeitdruck zum gerade erst unmittelbar behandelten Stoff zu stellen. Eine Vorlesung soll doch den Stoff präsentieren, während dann erst das Studium des Stoffes in Eigenverantwortung zu einer entsprechenden Verfestigung führt. Aufgaben unter Zeitdruck, wie von dir beschrieben, entsprechen ja ein bißchen einem Mini-Test, und da sollte dann schon ein gewisser zeitlicher Abstand zur Vorlesung bewahrt werden (sagen wir ein paar Tage Minimum) um den Studenten die Zeit zum vertiefenden Studium einzuräumen.
Wichtig für so ein Gespräch ist eine gute Wortwahl und Präsentation der Argumente. Einerseits muss das Problem der Studierenden in klarer Form und mit objektiv nachvollziehbaren Argumenten erläutert werden (ein Problem lässt sich leicher lösen, wenn sich alle Beteiligten einmal der Natur des Problems bewusst sind), andererseits muss auch Respekt bewahrt werden und natürlich die Eigenverantwortung zum Lernen auch seinen entsprechenden Stellenplatz haben (Argumente, die direkt oder um die Ecke darauf hinauslaufen dass die Studierenden weniger arbeiten/lernen wollen, kommen bei Dozenten ev. nicht so gut an).

Falls das nicht fruchtet wird man sich durchbeißen müssen, wie auch immer das dann gehen soll. Am besten so viel wie möglich im Eigenstudium erarbeiten um mit soviel Vorwissen wie möglich schon die Vorlesung anzugehen (ist nicht lustig und nicht Sinn der Sache, aber nicht immer ist die Welt rosa & fair).

Generell rate ich dir, dass du dich unabhängig vom Studienplan eigenständig mit Programmieren beschäftigst - sowohl Theorie wie auch aktive Programmierabeit (können eigene Mini-projekte sein, oder auch Üben des Übens halber). Praxis hilft enorm! Hilfreich ist hierbei auch wenn du zwei relativ unterschiedliche Sprachen erlernst, z.b. eine eher maschinen-nahe low-Level Sprache und eine eher high-level Sprache (etwa C++ und Python, um Beispiele zu nennen). Es vertieft das Verständnis und programmiertechnische Denken nämlich merklich.

PS: Ich finde die gestellten Aufgaben nicht schwierig, aber natürlich gegeben dass man auch die Zeit hatte um den Vorlesungsstoff einziehen zu lassen und näher studieren konnte.
 
  • Gefällt mir
Reaktionen: Fils506 und Scientist
Raijin schrieb:
Ein Programmierer kann prinzipiell in jeder Programmiersprache programmieren, weil sich weitestgehend nur die Schreibweise der Befehle unterscheidet. While-Schleifen, For-Schleifen, If-Bedingungen und dergleichen sind aber Basiskomponenten, für die man nicht wirklich ein Buch benötigt. Wenn man anfängt zu programmieren, muss man sich die Fähigkeit aneignen, eine Aufgabenstellung zunächst in ihre logischen Einzelteile zu zerlegen, die man dann in Pseudo-Code übersetzt und anschließend in der jeweiligen Programmiersprache ausarbeitet. Den Zwischenschritt über Pseudo-Code braucht man früher oder später dann nicht mehr.

Diese Denkweise ist der Kern des Programmiererdaseins, das logische Auseinanderdröseln eines Problems und die anschließende systematische Lösung im Quellcode.
Okay, ich versuche mal jede neue Aufgabe am Anfang immer in logischen Teilen zu zerlegen und dann werde ich mit den anderen Schritten weitergehen.

hongkongfui schrieb:
Bücher haben mir eigentlich nie groß weitergeholfen. Gut, jetzt gibt's natürlich online-Seiten, die nichts anderes sind. Ich würde mir eine Art "Grundkurs javascript" online suchen und das durcharbeiten (mit Aufgaben).
Dazu brauchst du eine Referenz, wo du leicht nachschlagen kannst ("Wie sieht nochmal die FOR-Schleife aus?").
Mir hilft schon bei mehrerern Sprachen https://www.w3schools.com/jsref/default.asp .
Das Tutorial finde ich auch ganz gut.
Dort findest du z.Bsp. sehr übersichtlich, welche Methoden die üblichen Klassen schon eingebaut haben.
Auch auf youtube gibt es ganz tolle Kanäle, die einem in kleinen Häppchen leicht verdaulich die Grundzüge einer Sprache beibringen. Musst nur das passende für dich finden - es ist mit Sicherheit da!
Verschwende nicht deine Zeit mit einem 1000-Seiten Wälzer.
Alles klar, die Website kenne ich eigentlich schon, ich werde da weiter lesen sowie die Übungsaufgaben machen. Ja, du hast recht, dieses großes Buch wird mir nicht viel helfen, zumindest nicht im Moment, danke :)

firespot schrieb:
Als einer, der mehrere Programmiersprachen beherrscht und das Universitätsbusiness von "beiden Seiten" kennt, rate ich dir dass ihr (du + Kommilitonnen) mal ein konstruktives Gespräch mit dem Dozenten aufsucht. Ich finde es nämlich bei weitem zu überfordernd, unmittelbar nach einer Vorlesung eine Aufgabe unter Zeitdruck zum gerade erst unmittelbar behandelten Stoff zu stellen. Eine Vorlesung soll doch den Stoff präsentieren, während dann erst das Studium des Stoffes in Eigenverantwortung zu einer entsprechenden Verfestigung führt. Aufgaben unter Zeitdruck, wie von dir beschrieben, entsprechen ja ein bißchen einem Mini-Test, und da sollte dann schon ein gewisser zeitlicher Abstand zur Vorlesung bewahrt werden (sagen wir ein paar Tage Minimum) um den Studenten die Zeit zum vertiefenden Studium einzuräumen.
Wichtig für so ein Gespräch ist eine gute Wortwahl und Präsentation der Argumente. Einerseits muss das Problem der Studierenden in klarer Form und mit objektiv nachvollziehbaren Argumenten erläutert werden (ein Problem lässt sich leicher lösen, wenn sich alle Beteiligten einmal der Natur des Problems bewusst sind), andererseits muss auch Respekt bewahrt werden und natürlich die Eigenverantwortung zum Lernen auch seinen entsprechenden Stellenplatz haben (Argumente, die direkt oder um die Ecke darauf hinauslaufen dass die Studierenden weniger arbeiten/lernen wollen, kommen bei Dozenten ev. nicht so gut an).

Falls das nicht fruchtet wird man sich durchbeißen müssen, wie auch immer das dann gehen soll. Am besten so viel wie möglich im Eigenstudium erarbeiten um mit soviel Vorwissen wie möglich schon die Vorlesung anzugehen (ist nicht lustig und nicht Sinn der Sache, aber nicht immer ist die Welt rosa & fair).

Generell rate ich dir, dass du dich unabhängig vom Studienplan eigenständig mit Programmieren beschäftigst - sowohl Theorie wie auch aktive Programmierabeit (können eigene Mini-projekte sein, oder auch Üben des Übens halber). Praxis hilft enorm! Hilfreich ist hierbei auch wenn du zwei relativ unterschiedliche Sprachen erlernst, z.b. eine eher maschinen-nahe low-Level Sprache und eine eher high-level Sprache (etwa C++ und Python, um Beispiele zu nennen). Es vertieft das Verständnis und programmiertechnische Denken nämlich merklich.

PS: Ich finde die gestellten Aufgaben nicht schwierig, aber natürlich gegeben dass man auch die Zeit hatte um den Vorlesungsstoff einziehen zu lassen und näher studieren konnte.

Ich muss mit meinen Kommilitonen darüber sprechen und ein bisschen überlegen, was wir unserem Dozenten sagen könnten, sodass er die Argumente akzeptiert. Ich kann nicht einschätzen wie groß die Chancen, dass er etwas in diesem System ändert sind, aber wie du schon gesagt hast, muss ich so gut wie möglich im Voraus vorbereiten wenn es nicht klappt. Unter solchen Umständen sehe ich eigentlich die Vorlesungen nicht mehr als Hauptinstrument zur Lösung die Aufgaben, sondern nur als Orientierungsmittel. Weil auf diese Weise gestellte Aufgaben nur mit sehr guter Vorbereitung (sowohl theoretisch als auch praktisch) lösbar sind. Vielen Dank für die Hinweise!
 
Hallo Fils506,
du hast jetzt hier schon viele Tipps bekommen und Meinungen. Ich möchte dir sagen, dass ich selbst man in so einer Situation war wie du. Ich habe auch ohne Vorkenntnisse angefangen und habe dennoch mein Studium in Informatik an der Uni erfolgreich abgeschlossen. Ich kann dir nur mitgeben, dass du etwas Geduld benötigst. Es sind ganz andere Gedankengänge die gefordert sind. Strukturierte Abläufe .... Jedenfalls versuche alles mitzunehmen was geht:
-Kommilitonen fragen
-Dozenten fragen
-Algorithmen verstehen
-Bücher lesen
-und auch mal Algorithmen auswendig lernen (so blöd wie es klingt, aber es hilft: dein Gehirn versteht es dann irgendwann)
-videos auf youtube anschauen
Bleib dran und sei geduldig - es wird dann schon :)

Viele Grüße
 
Zurück
Oben