Informatik in der Schulle



  • Übrigens zur OOP, die hier ständig so hoch gelobt wird:

    Mir ist kein gutes und einfaches Beispiel bekannt, in dem in der Konsolen-Programmierung auf einfache Weise der Vorteil der OOP gegenüber der klassischen Programmierung auf Einsteigerniveau gezeigt wird, nach dem Motto: Hier ist das "schlechte" Programm in C und hier das "gute" in C++. Ich meine keinen Tausendzeiler, sondern einen - sagen wir - 50-Zeiler. Würde mich mal interessieren, ob jemand ein solches Beispiel posten kann oder das in der Schule gesehen hat. Alles andere sind nämlich "aufgesetzte Paradigmen", nicht mehr und nicht weniger, und damit kann man Einsteiger nicht überzeugen.



  • Original erstellt von HumeSikkins:
    **Die Schüler rennen danach glücklich und hoffnungsvoll ins Informatikstudium nur um dann feststzutellen, dass Informatik was völlig anderes ist.
    **

    Das tuen sowiso schon 80% der Informatik-Studenten 😃
    Da müsste es echt mal ne Aufklärungskampagne an den Schulen geben.



  • @HumeSikkins && etechniker:
    Da habt ihr allerdings Recht, das könnte Praktikern direkt Spass machen, wenn man das, was auf dem heimischen PC abläuft, wirklich versteht. Man sollte daher den Schülern genau erklären, welche Möglichkeiten und Inhalte es nach dem Schulabschluß gibt: Ausbildung, FH, TU.

    Gut, dann kombinieren wir meinen und euren Vorschlag:

    ..



  • Ach, was wichtiges habe ich noch vergessen: Hausaufgaben, damit die armen Schüler nicht ständig diese "verblödenden" Games machen müssen:
    http://www.rwth-aachen.de/i7/atfs/practice/selbsttestaufgaben.html

    (44 Aufgaben für Leute, die wissen wollen, was Informatik wirklich ist 😃 😃 )



  • Der Sinn ist da dass man erstmal laufen können muss bevor man fliegen kann!

    Ich kann nicht nachvollziehen, wie du diesen Vergleich auf das Prozdurale vs. Objekt Orientiere Programmieren übertragen willst.

    Aber Superking hat natürlich wieder die Weissheit gefressen,ich hab gesagt dass das meine Meinung ist und ich weiss nicht was es da zu lol'en gibt!?

    ich wusste nicht, dass du so empfindlich auf ein lol reagierst 🙄 Aber das du deswegen so reagierst ...

    übrigens habe ich genauso nur meine Meinung vertretten, wie ich es in jedem Posting mache 🙄

    Pascal ist eine hervorragende Sprache um sich mit Datentypen und Standardanweisungen wie if,while etc. auseinander zu setzen!

    ich denke nicht, dass ich das Gegenteil geschrieben habe oder diese Aussage angezweifelt habe

    Der Umstieg von C auf C++ ist meiner Meinung nach wegen der Ähnlichkeit der Sprachen problematisch.

    das denke ich auch, gerade deswegen würde ich niemandem empfehlen erst C zu lernen

    Nur weil es dann in C++ ist,ist es aber noch lange nicht objektorientiert.

    und Java ist die Weisheit der OOP?

    Aber wie gesagt,ausser Superrudi seiner Meinung zählt wie üblich nichts 😞

    tut mir leid, dass ich versucht habe meinen Standpunkt zu äußern, wofür Webforen geschaffen wurden. Wenn es dich natürlich persönlich verletzt, wenn jemand nicht deiner Meinung ist, dann kann ich dich nur bedauern. Du kannst gerne deine Meinung vertretten genauso habe ich aber auch das Recht Schwächen in deiner Argumentation aufzuzeigen.

    Und wieso sollte man direkt OOP lernen?

    weil, wie du bereits selber festgestellt hast, der Umstieg von Prozeduraler Programmierung zur Objekt Orientieren Programmierung sehr schwer ist.

    OOP ist nicht das Allheilmittel für alles,sondern eine Erleichterung für die meisten(aber nicht alle) Probleme.

    das hab ich nicht behauptet und eigentlich versteh ich nicht, wie das in den Kontext der Diskussion passt. Ist Prozedurales Programmiern das Heilmittel für alles?



  • Hier ist das "schlechte" Programm in C und hier das "gute" in C++.

    Falsche Herangehensweise. Gute C++-Programme sind selten rein OO.

    Gute Beispiele für Vereinfachung durch Abstraktion findest du z.B. in Stroustrups: Learning Standard C++ as a New Language
    oder im Buch "Accelerated C++" von Andrew Koenig und Barbara Moo.

    Die Vorteile von OOP lassen sich aber mit Sicherheit nicht in 50 Zeilen demonstrieren, da die Vorteile der OOP gerade nicht im Bereich 50 Zeilen-Programme liegen. Das ist wie mit den Design Patterns. Wenn die nötige Komplexität fehlt, ist ein DP kontraproduktiv und sorgt nur dafür, dass du zusätzliche Komplexität bekommst.

    1. Wie funktioniert ein Windows-Programm genau?

    Wozu plattformspezifisch werden?

    1. Was ist Informatik wirklich?

    Diese Frage kann ich nach 4 Jahren Studium nach wie vor nicht beantworten 🙂

    1. Automatentheorie:
      - Endliche Automaten
      - Reguläre Ausdrücke
      - Minimierung von Automaten
      - Sequentielle Übersetzer
      - Grammatiken und ihre Normalformen
      - Kontextfreie Sprachen
      - Kellerautomaten
      - Entscheidbarkeit und Unendscheidbarkeit von Äquivalenzproblemen

    Man muss auch nicht gleich übertreiben 😉

    [ Dieser Beitrag wurde am 25.05.2003 um 18:04 Uhr von HumeSikkins editiert. ]



  • @Erhard:
    Ein Programm das anstelle von Fallunterscheidungen die dynamische Bindung nutzt um z.B. Daten von unterschiedlichen Personengruppen(die unterschiedliche spezielle Attribute haben) auszugeben wäre überzeugend.
    Dem OOP Programm könnte man neue Personengruppen zufügen ohne den "Main" Code zu verändern,bei der prozeduralen Variante müsste man eine neue Fallunterscheidung hinzufügen.
    Hierbei würde man die Vorteile die Subtyping bringt(ein Subtyp kann an jeder Stelle stehen wo ein Supertyp erwartet wird) ausnutzen.
    OOP hat definitiv Vorteile,trotzdem vertrete ich die Meinung dass eine einfache Sprache wie Pascal für den Einstieg optimal ist.
    Womit soll man denn am Anfang mehr kämpfen,mit dem Konzept oder mit den Sprachkonstrukten???
    Ich denke halt jemand der sich noch nie mit Programmierung auseinander gesetzt hat,hat genug mit if,while und hastenichtgesehen zu tun als das man denjenigen noch mit this,private,protected und hastenichtgesehen verwirren sollte.

    MfG Spacelord 🙂



  • Also gut, den überzeugenden 50-Zeiler zeigt niemand, habe ich genauso erwartet. Komplizierte Antworten, kein überzeugendes einfaches Beispiel. Daher streichen wir OOP komplett aus dem Lehrplan! basta. 😃 😃
    Automatentheorie nicht übertreiben, auch in Ordnung, sehe ich ähnlich. 😉
    Student im 4. Semester weiß nicht, was Informatik eigentlich ist. Aha?! 😕
    Ich habe übrigens auch schon 5.Semester TU kennengelernt, die wussten weder über OOP noch über C++ Bescheid, haben nur irgendwas von Mathe und Physik gefaselt. Schauerlich so etwas!

    Merkt ihr eigentlich, was für ein Chaos im Informatikunterricht an den Schulen herrschen muss? So, dass die "echten" Freaks körperlich oder geistig das Feld verlassen und ihre Lehrer bemitleiden/verachten.

    Also: wer liefert den besten Lehrplan für den Informatikunterricht an einem Gymnasium? 😞



  • @kingruedi

    Und wieso sollte man direkt OOP lernen?
    weil, wie du bereits selber festgestellt hast, der Umstieg von Prozeduraler Programmierung zur Objekt Orientieren Programmierung sehr schwer ist.

    Aber ohne Grundkenntnisse ist der OOP Einstieg schwerer.Ich behaupte mal das man die Pascal "Grundsyntax" innerhalb von 2 Monaten drauf hat(als totaler Anfänger).Wenn man dann diese Standardanweisungen kennt kann man sich auch um erweiterte Konzepte bemühen.Beim prozeduralem Programmieren gibt es ja nun weiss Gott keine Hexerei.Jemand der sich 2 Monate oder vielleicht auch nen halbes Jahr mit Pascal beschäftigt hat,hat mit Sicherheit keine Probleme auf C++ oder ähnliches umzusteigen.

    und Java ist die Weisheit der OOP?

    Java ist auch nicht der OOP letzter Schluss.Aber in Java wird man doch eher gezwungen sich mit der OOP zu beschäftigen.
    Ganz einfaches Beispiel:cout könnte man ohne weiteres als Anweisung interpretieren,aber warum zum Teufel nennt sich das Java-Pendant System.out.print?(der Anfänger grübelt,der Anfänger informiert sich.....ahhaaaaaa,der Anfänger staunt 😉 )
    Oder noch besser cin,warum muss man da in Java erst nen Objekt erzeugen(der Anfänger grübelt,der Anfänger informiert sich.....ahhaaaaaa,der Anfänger staunt 😉 )

    Und überhaupt,warum muss man in Java für jeden Scheiss nen Objekt erzeugen?(der Anfänger grübelt,der Anfänger informiert sich.....ahhaaaaaa,der Anfänger staunt 😉 )
    😃

    Ich bin mir selber nicht so ganz sicher ob ich Java,mit dem Interfacescheiss, nun mag oder nicht aber auf manchen Gebieten ist die Sprache halt konsequenter als C++(z.B. erzwungene Exceptionbehandlung).Würde so manchem C++ Programm sehr gut tun :p

    MfG Spacelord 😉



  • Student im 4. Semester weiß nicht, was Informatik eigentlich ist. Aha?!

    Jaja. Das mit dem Lesen. Ich schrieb "4 Jahre". Das macht acht Semester. Nicht vier 😉 😃



  • @..



  • Frage: Gibt es eigentlich wirklich geeignete Schulbücher für Informatik im Gymnasium?

    Schwerpunkte sind zumeist praktische Benutzung von Betriebssystemen, Textverarbeitung, Tabellenkalkulation, Datenbanken, Grafikprogrammen und Internet.

    Das hat sicher zuwenig mit dem Informatikstudium zu schaffen. Daher droht hier eine echte Frustration, wenn der theoretische Unterbau geschaffen werden soll.

    [ Dieser Beitrag wurde am 25.05.2003 um 19:47 Uhr von Erhard Henkes editiert. ]



  • Stufe 12: Wir "lernen" auch Delphi.. Das "programmieren" besteht aber hauptsächlich aus dem Zusammenklicken von GUIs..

    Achja ich finde ehrlich gesagt C++ um einiges leichter zu erlernen als C. In C++ ist z.B. der Umgang mit Strings oder dynamische Speicherallozierung ein Kinderspiel im Vergleich zu C, und ich glaube gerade das macht die Sprache für Anfänger so schwer..



  • @Spacelord

    Ganz einfaches Beispiel:cout könnte man ohne weiteres als Anweisung interpretieren,aber warum zum Teufel nennt sich das Java-Pendant System.out.print?(der Anfänger grübelt,der Anfänger informiert sich.....ahhaaaaaa,der Anfänger staunt 😉 )

    ich denke oft liegt das miss Verständniss von C++ eh in schlechten Tutorials und Büchern. Das man durch System.out.print eher OOP lernt, glaub ich nicht.

    [quote]



  • Original erstellt von Spacelord:
    **
    Java ist auch nicht der OOP letzter Schluss.Aber in Java wird man doch eher gezwungen sich mit der OOP zu beschäftigen.
    Ganz einfaches Beispiel:cout könnte man ohne weiteres als Anweisung interpretieren,aber warum zum Teufel nennt sich das Java-Pendant System.out.print?(der Anfänger grübelt,der Anfänger informiert sich.....ahhaaaaaa,der Anfänger staunt 😉 )**

    std::cout ist ein Objekt
    System.out ist ein Objekt

    std::cout << "Foo\n"; ist eine Anweisung
    System.out.println("Foo"); ist eine Anweisung

    Was wolltest du doch gleich sagen? 🙂



  • aber ich versteh schon was Spacelord meint. Wie oft glauben Anfänger, dass cout << ein Befehl ist.

    Aber ich glaub nicht, dass man mit einer Sprache besser OOP lernen kann, nur weil diese kein operator Overloading hat (was ich stark vermissen würde ;))



  • Original erstellt von Erhard Henkes:
    Frage: Gibt es eigentlich wirklich geeignete Schulbücher für Informatik im Gymnasium?

    also ich hab im informatik-unterricht nie ein buch gesehen. nur ein paar miese kopien und overhead-folien.

    ansonsten: gebt doch eure träume auf 😉
    ich brauchte mir nur ansehen, wie sich alle abgemüht haben, mit pascal ein paar linien über den bildschirm hüpfen zu lassen, da ist nichts mehr zu retten 😉



  • Da hier größtenteils negative Erfahrungen gemacht wurden, muss ich jetzt auch mal etwas Positives von unserem Lehrer sagen: Wir lernen zwar auch Object Pascal/Delphi Language, aber da geht es um die Algorithmen, nicht um GUI. Außerdem behandeln wir auch Themen wie Suchalgorithmen, Turingmaschine (dazu auch eine Assemblersprache mit nur einer handvoll Befehlen), Netzwerktheorie, zelluläre Automaten (und vieles eng mit der Mathematik in Verbindung Stehendes). Zeiger und OOP können zwar im Unterricht aus Zeitgründen nicht behandelt werden, der Lehrer hat aber Ahnung davon und kann sogar Prolog und Lisp. 🕶
    EDIT: Logikschaltungen mit ICs machen wir auch.

    [ Dieser Beitrag wurde am 26.05.2003 um 15:00 Uhr von Norondion editiert. ]



  • Wir machen auf OP/Delphi machen aber fast nur GUI kombiniert mit Zahlenspielerein. Ausser Arrays und sets hat wir noch nix von OP. (proceduren und funktinoen natürlich, aber nicht eigene Klassen, Algorithmen oder so).



  • Original erstellt von Norondion:
    Prolog und Lisp. 🕶

    Kannst ihn ja mal fragen ob er ne praktisch anwendbare Sprache kann? 🙄


Anmelden zum Antworten