Informatik in der Schulle



  • 9 . - Word, basic
    10. - Turbo Pascal
    11. - Html, JS, Java, VB
    12. - PHP, CGI, Cpp mit dem Borland Builder (bin ich gerade)
    13. - WinAPI

    Das alles gibts am AJCB in Ratingen



  • 10.Kl. - TurboPascal *mitgrauendarandenkundsichfragwarumdienichtc++benutzen*

    Wir machen C. Totaler Blödsinn wie ich finde. Jemand der überhaupt noch nie programmiert hat, soll dass jetzt lernen, indem er sich mit dieser blöden Syntax rumschlägt? Nee, dass kanns auch nicht sein.



  • In der 11. Klasse hatten wir in Informatik nur Pascal programmiert (ja, kein Delphi, sondern echtes altes Pascal). Der Lehrer hatte weitaus weniger Ahnung von Pascal als ich. Gott sei Dank konnte ich zu dem Zeitpunkt schon Pascal, sonst hätte ich überhaupt nichts kapiert, denn dieser Lehrer konnte sowas von schlecht erklären.

    In der 12. und 13. Klasse hatte ich dann bei einem anderen Lehrer Informatik. Da haben wir so gut wie gar nichts programmiert. Im Prinzip haben wir nur theoretische und technische Informatik gemacht. Themen waren unter anderem: Komprimierung, Verschlüsslung (RSA und so Uraltdinger wie Vigenere), endliche Automaten, irgendwelche Schaltungen mit Flipflops und anderem Spielkram (lustige Schaltwerke wie "ein 4*3 Bit Speicher" oder "ein Zähler / Frequenzteiler"), Binärsystem ...



  • @DrGreenthumb:
    Gut, für jemanden, der noch nie programmiert hat ist C(++) nicht wirklich einfach, aber man könnte damit schon nach ca. einem halben Jahr Basic mit C anfangen.
    Und die deiner Meinung nach blöde Syntax finde ich super (vorallem die Code-Design-Freiheiten von C++) - aber das ist meine Meinung ...

    M.T.



  • Und die deiner Meinung nach blöde Syntax finde ich super

    Ich finde die Syntax nicht wirklich blöd. Aber versuch die mal jemanden zu vermitteln, der bis vor kurzem noch garnicht wusste, was es alles für verschiedene Klammer-Arten gibt.



  • Wenn man aber mit einem kleinen HelloWorld anfängt und sagt:

    void /*Kein Rückgabewert*/ main /*Hauptprogramm-Aufrufs-Funktion*/ () /*Keine Parameter*/
    { //Anfang der Funkion
       printf /*Ausgabe in der Konsole*/ ("Hello world" /*Text*/);
    } //Ende der Haupt-Funktion
    

    ... mit ein bisschen Erklärung kann man dann schon rangehen - ich denke, das ist zu verstehen, wenn man nicht gleich sagt:

    template <class type> class SomeClass
    {
       struct MY_DATA
       {
          type *pType;
       } *pData;
    
       void GiveValue(MY_DATA **ppData)
       {
          *ppData = /*Daten*/ + sizeof(type);
       };
    };
    

    😃 ... und das in der ersten Stunde - dann ist C++ schwer, ansonsten ist es in Ordnung.

    M.T.

    [ Dieser Beitrag wurde am 25.05.2003 um 17:24 Uhr von Manuel editiert. ]



  • ..



  • @kingruedi:
    Der Sinn ist da dass man erstmal laufen können muss bevor man fliegen kann!
    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!?
    Pascal ist eine hervorragende Sprache um sich mit Datentypen und Standardanweisungen wie if,while etc. auseinander zu setzen!
    Die Implementierungen der OO Klassenmethoden sind letztendlich auch nur prozedural und somit Grundlage!!
    Der Umstieg von C auf C++ ist meiner Meinung nach wegen der Ähnlichkeit der Sprachen problematisch.C++ erzwingt keine OOP und erschwert somit für einen C Programmierer den Einstieg in "echte" OOP weil man mit leichten Änderungen jedes C-Programm in C++ ans laufen bekommt.Nur weil es dann in C++ ist,ist es aber noch lange nicht objektorientiert.
    C++ != OOP (zumindest nicht zwangsläufig)
    Aber wie gesagt,ausser Superrudi seiner Meinung zählt wie üblich nichts 😞
    Und wieso sollte man direkt OOP lernen? OOP ist nicht das Allheilmittel für alles,sondern eine Erleichterung für die meisten(aber nicht alle) Probleme.

    MfG Spacelord



  • @Erhard Henkes
    Und das hat mit Informatik jetzt was genau zu tun?

    Mal abgesehen davon, dass ich diese Frage wohl mit "nicht viel" beantworten würde, schafft man damit IMO nur völlig falsche Erwartungen. Die Schüler rennen danach glücklich und hoffnungsvoll ins Informatikstudium nur um dann feststzutellen, dass Informatik was völlig anderes ist.

    Ne. Also dann doch lieber Automatentheorie, Berechenbarkeit usw.



  • Ü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 😉 😃



  • @..


Anmelden zum Antworten