Welche Progammiersprache wird denn heutzutage in der Schule im Fach Informatik verwendet?



  • Fedaykin schrieb:

    Und nun programmiere mir ein Programm was möglichst wenig Speicher verbraucht in Java.

    Wo wir wieder bei den Anforderungen wären: Es ist für stinknormale Schüler, die müssen keine Programme mit möglichst wenig Speicherverbrauch schreiben.



  • Fedaykin schrieb:

    Und nun programmiere mir ein Programm was möglichst wenig Speicher verbraucht in Java. Du hast in Java keinen direkten zugriff auf Ponter, Speicherreservierungen etc. , das stimmt.

    warum sollte ein Schüler das wissen müssen?

    Von den Schülern des Informatik-Unterrichts an allgemeinbildenden Schulen wird ein geringer Prozentsatz beruflich programmieren, und von denen wird wiederum nur ein gewisser Prozentsatz System- oder Anwendungsprogrammierer und muß dann Speichermanagement und Pointer kennen. Das wird er dann aber sowieso lernen.

    Und deshalb sollen die restlichen 90+x% Schüler mit solchen Details belastet werden ... ?



  • Ein Schüler muss auch nicht Integrieren oder Differentieren können. Aber er sollte die Grundrechenarten können wenn er das Später mal lernen will.



  • Genau hier sollte man nun differenzieren, was Schulinformatik bieten sollte. Soll es Grundlagen liefern. Dann reicht zu wenn man Betriebssystembedienung lernt. Ein Bissl Word, Excel, Was sind Bits Bytes, wie funktioniert grundlegendes in einen PC. Das sollte reichen. Oder soll man Programmieren lernen im Informatik unterricht, dazu gehören nunmal die Dinge die ich Angesprochen habe.



  • Fedaykin schrieb:

    Ein Schüler muss auch nicht Integrieren oder Differentieren können. Aber er sollte die Grundrechenarten können wenn er das Später mal lernen will.

    Welch ein Vergleich. Ich kann nicht mal erkennen, ob du nun Integrieren oder doch die Grundrechenarten mit Pointern vergleichst.

    Fedaykin schrieb:

    Oder soll man Programmieren lernen im Informatik unterricht, dazu gehören nunmal die Dinge die ich Angesprochen habe.

    Tun sie eben nicht. Man kann wunderbar Programme schreiben, ohne jemals etwas von Pointern gehört zu haben (inkl. Pointerarithmetik etc.).



  • Bei den Pointern gebe ich dir recht, muss man in Programmiersprachen die keinen direkten Pointerzugriff haben nicht unbedingt kennen. Aber es wäre dennoch Sinnvoll.

    Für einen Schnupperkurs, ob Informatik was für mich ist, reichen auch solche sachen. Aber meiner Meinung nach ist das wie Informatik heutzutage vielmals gelehert wird, nichts halbes und nichts ganzes.

    Für Grundlagen fehlen geht es schon zu tief in die Konkrete Programmierung.
    Für Konkrete Programmierung fehlen zu viele Grundlagen (der Programmierung).

    Daher finde ich es nicht unbedingt so toll das man den leuten irgendeine Programmiersprache beibringt (ohne Basics), dann doch lieber nur Grundlagen.



  • Naja, Schulinformatik ist sowieso oft eine reine Frickelei.
    Unser erster Programm in Pseudo-C++ sah in etwa so aus (nein, wir haben nicht mit Hello World begonnen):

    #include <iostream.h>
    
    void main()
    {
        int z1,z2 /*,...,...*/ ;
        cout<<"Zahl 1 eingeben: ";
        cin>>z1;
    
        //...
    }
    

    Dazu muss ich wohl nicht viel sagen. Funktioniert hats, mehr aber auch nicht.

    Welche Sprache man lernt, kommt auf die jeweilige Vertiefung an würd ich sagen. Manche legen mehr Wert drauf, manche weniger. Im Prinzip finde ich Programmierung in allgemeinen Schulen sowieso umsonst.



  • @Fedaykin Was hat das denn mit Schul-IT zu tun? Schule soll weder Spreu vom Weizen trennen noch fertig ausgebildete Softwareentwickler hervorbringen.



  • Was soll deiner Meinung nach die Schule tun?

    Meine Meinung ist dazu, dass die Schule Grundlagen schaffen soll. Für eine mögliche Berufswahl bzw spätere Ausbildung.

    Entweder behandelt sie wirklich Grundlagen der Programmierung. Oder eben nicht. Wenn schon im Unterricht Programmiersprachen beigebracht werden, dann richtig. Und soviel gehört nun auch nicht dazu zu wissen was Referenz,Pointer etc ist. Es geht ja nicht da drum das sie jegliche Pointerarithmetik verstehen. Es geht darum das den Schülern meist was beigebracht wird, ohne zu wissen was es für Konsequenzen hat.

    Point p1 = new Point(1,0);
    MyRectangle myRectangle = new MyRectangle(pl,10,10);
    pl.Y = 5;
    

    Der Code ist nicht wirklich kompliziert. Kann aber unterschiedliche folgen haben, je nach implementation von MyRectangle.
    myRectangle könnte urplötzlich auf einer anderen Position stehen. Und der "neuling" der nichts von Referenzen weiss sucht sich nen wolf warum das denn so ist.
    Daher würde ich Programmierung entweder aus den Lehrplan herausnehmen und lieber Grundlagen der Informatik schaffen. Und Pogrammierung als eine art Wahlfach lehren, für die leute die sich dafür interessieren. Aber dann müssen sie damit rechnen das es dort nicht nur darum geht "Hammergeile Games" zu proggen. Informatik ist nun manchmal trocken.



  • zum Beispiel schrieb:

    Fedaykin schrieb:

    Und nun programmiere mir ein Programm was möglichst wenig Speicher verbraucht in Java. Du hast in Java keinen direkten zugriff auf Ponter, Speicherreservierungen etc. , das stimmt.

    warum sollte ein Schüler das wissen müssen?

    Von den Schülern des Informatik-Unterrichts an allgemeinbildenden Schulen wird ein geringer Prozentsatz beruflich programmieren, und von denen wird wiederum nur ein gewisser Prozentsatz System- oder Anwendungsprogrammierer und muß dann Speichermanagement und Pointer kennen. Das wird er dann aber sowieso lernen.

    Und deshalb sollen die restlichen 90+x% Schüler mit solchen Details belastet werden ... ?

    Genau! Und gerade deswegen ist es viel wichtiger, dass die Schüler lernen, wie ein Computer funktioniert, anstatt eine praktisch in der Wirtschaft häufig verwendete Programmiersprache zu lernen. Mit Computern muss sich der Schüler nämlich sein Leben lang auseinandersetzen und ein grundlegendes technisches Verständnis könnte ihm da sehr gut weiterhelfen.

    Je nach der Ausstattung der Labore würde ich erstmal möglichst anschaulich erklären, was überhaupt Bits und Bytes sind, wie man Zahlen im binären System darstellt und mit ihnen rechnet und ganz grob das Prinzip eines Prozessors. Und zwar nicht von einer mathematischen Sichtweise wie sie oft im Informatikstudium gelehrt wird, sondern von einer technischen Sichtweise. Das heißt man setzt praktisch auf den Digitaltechnik-Unterricht in Physik auf. Um den Schülern weiter zu lehren, wie ein Computerprogramm funktioniert, ist jetzt, meiner Meinung nach, zwingend eine prozedurale Vorgehensweise zu erklären. Denn das ist das Prinzip, dem ein Computer folgt: Es führt nacheinander eine Liste von Befehlen durch. Pointer und Speicherverwaltung gehören für mich dazu, man sollte es aber auch nicht übertreiben, da die Themen sehr trocken, langweilig und auch schwerer zu verstehen sind. Zumindest würden mir da keine Möglichkeiten einfallen, an denen man diese Konzepte effizient und interessant lehren könnte.

    Ich finde Pascal einfacher zu lernen als C oder C++ und es ist in den meisten Bundesländern sogar als Prüfungsfach anerkannt. Daher bietet sich Pascal auch an. Soll es weiter in die Programmierung von echten, brauchbaren Anwendungen gehen, springt man eben auf Delphi/FreePascal um. Soll es tatsächlich nur ums Programmieren gehen, dann kann man auch mit Java um sich werfen. Das ist, glaube ich, auch häufig anerkannt.



  • @Fedaykin
    Tuh mir doch mal hier den gefallen und erkläre das was Langi da gemacht hat.
    Ich kopier beides einer Freundin ins ICQ und werd mal gucken ob sies versteht.
    Würd mich echt mal interessieren ob einer bei sowas simplem schon das hantuch werfen muss, weils eben doch nicht so einfach ist.

    Also wirklich erklären wofür die << sind und wieso da cout steht und wieso man damit auch ints ausgeben kann. warum es << ist und nicht <;
    warum man bei cin >> diese richtung braucht... Sollte ja nicht all zu lange dauern bei den 3 zeilen code da 😉



  • Fedaykin schrieb:

    Meine Meinung ist dazu, dass die Schule Grundlagen schaffen soll. Für eine mögliche Berufswahl bzw spätere Ausbildung.

    Das ist auch meine Meinung, aber Pointer und Speichermanagement sind m.M.n. keine Grundlagen für Anfänger mehr, sondern spezielle Themen für Fortgeschrittene, wie C++ eigentlich überhaupt. Bedenke, daß ein Schüler nicht einmal wissen muß, was eine CPU ist, geschweige was indirekte Adressierung ist.

    Fedaykin schrieb:

    Point p1 = new Point(1,0);
    MyRectangle myRectangle = new MyRectangle(pl,10,10);
    pl.Y = 5;
    

    Der Code ist nicht wirklich kompliziert.

    Aber auch nicht wirklich einfach.

    Ich würde mir als Schüler so etwas wünschen:

    myPoint := 1 @ 0.
    myRectangle := Rectangle origin: myPoint extent: 10 @ 10.
    

    oder noch einfacher so etwas wie

    myPoint := 1 @ 0.
    myRectangle := myPoint extent: 10 @ 10.
    

    - für jeden auf Anhieb verständlich.



  • zum beispiel schrieb:

    Ich würde mir als Schüler so etwas wünschen:

    myPoint := 1 @ 0.
    myRectangle := Rectangle origin: myPoint extent: 10 @ 10.
    

    oder noch einfacher so etwas wie

    myPoint := 1 @ 0.
    myRectangle := myPoint extent: 10 @ 10.
    

    - für jeden auf Anhieb verständlich.

    Würdest du mir bitte erklären was das bedeutet?



  • wie "erklären" ? - was verstehst du denn nicht ?



  • verständlich und logisch ist nur eins...

    new point(x,y)
    new rect(x,y,w,h)
    

    :hoppschwiiz: 1 spanien 0

    @edit: wenn man schon sowas anfängt dann auch richtig

    new rect(new point(x,y),new dimension/*size*/(w,h))
    


  • zum beispiel schrieb:

    Fedaykin schrieb:

    Meine Meinung ist dazu, dass die Schule Grundlagen schaffen soll. Für eine mögliche Berufswahl bzw spätere Ausbildung.

    Das ist auch meine Meinung, aber Pointer und Speichermanagement sind m.M.n. keine Grundlagen für Anfänger mehr, sondern spezielle Themen für Fortgeschrittene, wie C++ eigentlich überhaupt. Bedenke, daß ein Schüler nicht einmal wissen muß, was eine CPU ist, geschweige was indirekte Adressierung ist.

    Fedaykin schrieb:

    Point p1 = new Point(1,0);
    MyRectangle myRectangle = new MyRectangle(pl,10,10);
    pl.Y = 5;
    

    Der Code ist nicht wirklich kompliziert.

    Aber auch nicht wirklich einfach.

    Ich würde mir als Schüler so etwas wünschen:

    myPoint := 1 @ 0.
    myRectangle := Rectangle origin: myPoint extent: 10 @ 10.
    

    oder noch einfacher so etwas wie

    myPoint := 1 @ 0.
    myRectangle := myPoint extent: 10 @ 10.
    

    - für jeden auf Anhieb verständlich.

    Supi. 🤡

    set myPoint = new Point(x=1,y=0)
    set myRectangle = new Rectangle(topLeft=myPoint,width=10,heighth=10)
    


  • volkard schrieb:

    set myPoint = new Point(x=1,y=0)
    set myRectangle = new Rectangle(topLeft=myPoint,width=10,heighth=10)
    

    das gefällt 😋



  • volkard schrieb:

    set myPoint = new Point(x=1,y=0)
    set myRectangle = new Rectangle(topLeft=myPoint,width=10,heighth=10)
    

    Praktisch quadratisch Gut - 😋

    C# bietet fast so eine Syntax.

    var myPoint = new Point() { X = 1, Y = 0 };
    var myRectangle = new Rectangle() { TopLeft = myPoint, Width=10, Heighth=10 };
    


  • ich würde sagen das volk hat entschieden 😃



  • Fein.
    Aber ist es noch gut, wenn ich verrate, daß es Basic und nicht Smalltalk ist? hihi.


Anmelden zum Antworten