TS: Strukturierte Programmierung

Hallo und guten Tag,

ich brauch mal eure Meinungen:

Für die Umschulung zum "IT-Fachmann" wird "strukturierte Programmierung" gefordert.

Ich habe das seinerzeit (1991) noch mit Turbo-Pascal auf DOS 5.0 ff beigebogen bekommen und war damit recht glücklich. In der Folge kamen dann Assembler C, C++ Grundlagen (ohne spezielle IDE).

Welche Sprache würdet Ihr heute wählen, wenn nur 4 Wochen für die Einführung bereit stehen und warum?

Leider weiß ich übrhaupt nicht, wo die Teilnehmer fachlich abgeholt werden können und ob sie vorher Bäcker oder Lehrer waren.

Grüße
TS

--
es wachse der Freifunk
http://freifunk-oberharz.de
  1. Tach!

    Für die Umschulung zum "IT-Fachmann" wird "strukturierte Programmierung" gefordert.

    Welche Sprache würdet Ihr heute wählen, wenn nur 4 Wochen für die Einführung bereit stehen und warum?

    Es sollte eine sein, die man auch im Beruf anwenden kann, also fällt exotisches Zeug eher aus.

    Javascript. Editor + Browser = schneller Erfolg. Nachteil: HTML drumherumbauen, wenigstens als Grundgerüst.

    PHP an der Kommandozeile. Braucht einen Editor und PHP, aber keinen Webserver.

    C#. Kostenlose Entwicklungsumgebung(en), in denen man sich aber auch verlieren kann. Trifft auf Java ebenso zu.

    dedlfix.

    1. Hallo Dedlfix,

      Für die Umschulung zum "IT-Fachmann" wird "strukturierte Programmierung" gefordert.

      Welche Sprache würdet Ihr heute wählen, wenn nur 4 Wochen für die Einführung bereit stehen und warum?

      Es sollte eine sein, die man auch im Beruf anwenden kann, also fällt exotisches Zeug eher aus.

      Javascript. Editor + Browser = schneller Erfolg. Nachteil: HTML drumherumbauen, wenigstens als Grundgerüst.

      Hat mMn auch schon zu viele OOP-Anteile. Und Funktionen, wie "settimeout()" & Geschwister werden dann vollständig zur Verwirrung führen.

      PHP an der Kommandozeile. Braucht einen Editor und PHP, aber keinen Webserver.

      Auch, wenn Viele drüber meckern, aber strukturierte Programmierung kann man damit mMn zeigen.

      C#. Kostenlose Entwicklungsumgebung(en), in denen man sich aber auch verlieren kann. Trifft auf Java ebenso zu.

      Auch eine riesige Entwicklungsumgebung, die viel zu viel kann, um eigene Strukturierung zu lernen.

      dedlfix.

      bleibt noch C. Ist aber mMn schon zu kryptisch und hat auch schon zu viele Ausnahmen/Sonserrecgeln. Die hat PHP nur bedingt übernommen...

      Grüße
      TS

      --
      es wachse der Freifunk
      http://freifunk-oberharz.de
    2. Wenn nur 4 Wochen zur Verfügung stehen, würde ich auf die Einführung verzichten. Auf diese Weise produziert man keine IT-Fachleute, sondern eine Gruppe verwirrter Menschen, die vielleicht etwas Tuten können, aber noch lange keinen Marsch blasen.

      Zu meiner Ausbildungszeit 1986 stand ebenfalls "Strukturierte Programmierung" auf dem Lehrplan. Wir wurden in dem Zusammenhang mit COBOL konfrontiert und lernten Strukturierte Programmierung nach Michael Jackson (nein, nicht der aus Neverland). Nach 6 Wochen, in denen wir nichts anderes gemacht haben, konnten einige von uns (die, die Programmiervorkenntnisse hatten) halbwegs melodiös tuten, einige (unbelastet von Vorkenntnissen jeder Art) produzierten aber immer noch nur schrilles Gequietsche bzw. fragten, wie man die IF-Schleife richtig schreibt...

      Wenn jemand GANZ NEU einsteigt, sind unglaublich viele Hürden zu überwinden. Die verwendete Programmiersprache ist dabei nur ein winzigkleiner Teil. Für deren Auswahl wäre es wichtig zu wissen was die so "ausgebildeten" Leute später tun sollen.

      • Verstehen eines Computers über den Aufruf von Solitär und Browser hinaus, sprich: Was sind Ordner, Dateien, Executables. Für viele ist das komplett fremd.
      • Bedienen einer IDE
      • Lernen der Syntax einer Programmiersprache und Verstehen von Konzepten wie "Literal", "Variable", "Ausdruck", "Scope", "Parameter vs Argument", "Callstack", und vieles mehr
      • Verstehen von Konzepten wie "Datei", "Dateiformat", ggf. Datenbank und Abfragesprache
      • Lernen von Konzepten wie "Sequenz, Iteration, Selektion" - sprich: Strukturierte Programmierung - und das Verstehen, wie man fachliche Anforderungen damit abbildet
      • Verstehen, was da eigentlich abgeht wenn man RUN drückt und grundsätzliches Begreifen, was man mit einem Debugger anfangen kann
      • Verstehen des Umfeldes, in dem das zu schreibende Programm läuft, und wie man damit kommuniziert (sprich: Script auf der Befehlszeile, GUI-Programm, Classic-Web, Web 2.0, RIA, Service, oder oder oder).
      • An Themen wie OOP und die daraus resultierenden Katastrophen (SOLID, Clean Code, IoC) oder Funktionale Programmierung will ich ja gar nicht erst denken.

      Es gibt so etwas wie eine Kompetenz-Skala. Beginnt mit unbewusster Inkompetenz - das sind die, die nicht mal wissen wovon sie keine Ahnung haben und darum gar nicht verstehen können, wie weit ihnen der Experte voraus ist. Dann die bewusste Inkompetenz, die haben immerhin etwas verstanden und die Klippen der Lernkurve erkannt. Dann die bewusste Kompetenz, da hast Du eine Menge gelernt, weißt, dass Du viel weißt und was Du alles noch nicht weißt. Und schließlich die unbewusste Kompetenz, da weißt Du gar nicht mehr, wie viel Du eigentlich weißt und kannst überhaupt nicht mehr einschätzen, wie weit der Weg bis dahin eigentlich war. Viele der Antwortenden hier gehören zur letzten Gruppe.

      Und wenn dann einer sagt "mach mal 4 Wochen Einführungskurs ins Strukturierte Programmieren, für Leute mit Null Voraussetzungen" - sorry, dem fehlt dann jedes Verständnis für die Länge und Schwierigkeit des zurückzulegenden Weges. In 4 Wochen kann man ein paar Grundkonzepte vermitteln, aber kaum jemanden so weit bringen, dass er sinnvoll eigenständig programmieren kann. Wenn's nur um ein paar Spielereien geht, dann sind IDEs wie Eclipse oder NetBeans mit JAVA oder Visual Studio Express (C#) gar nicht schlecht, dann beschränkt man sich auf Kommandozeilenprogramme und unterrichtet die grundlegenden Konzepte. Aber den Leuten muss klar sein, dass das nur ein Schnupperkurs ist.

      Aber vielleicht bilde ich mir das ja auch nur ein, um mir einzureden wie toll ich bin ;-)

      Rolf

      1. Hallo und guten Tag Rolf,

        Ey, Du sprichst mir sooo aus der Seele!

        Wenn nur 4 Wochen zur Verfügung stehen, würde ich auf die Einführung verzichten. Auf diese Weise produziert man keine IT-Fachleute, sondern eine Gruppe verwirrter Menschen, die vielleicht etwas Tuten können, aber noch lange keinen Marsch blasen.

        Zu meiner Ausbildungszeit 1986 stand ebenfalls "Strukturierte Programmierung" auf dem Lehrplan. Wir wurden in dem Zusammenhang mit COBOL konfrontiert und lernten Strukturierte Programmierung nach Michael Jackson (nein, nicht der aus Neverland). Nach 6 Wochen, in denen wir nichts anderes gemacht haben, konnten einige von uns (die, die Programmiervorkenntnisse hatten) halbwegs melodiös tuten, einige (unbelastet von Vorkenntnissen jeder Art) produzierten aber immer noch nur schrilles Gequietsche bzw. fragten, wie man die IF-Schleife richtig schreibt...

        Wenn jemand GANZ NEU einsteigt, sind unglaublich viele Hürden zu überwinden. Die verwendete Programmiersprache ist dabei nur ein winzigkleiner Teil. Für deren Auswahl wäre es wichtig zu wissen was die so "ausgebildeten" Leute später tun sollen.

        • Verstehen eines Computers über den Aufruf von Solitär und Browser hinaus, sprich: Was sind Ordner, Dateien, Executables. Für viele ist das komplett fremd.
        • Bedienen einer IDE
        • Lernen der Syntax einer Programmiersprache und Verstehen von Konzepten wie "Literal", "Variable", "Ausdruck", "Scope", "Parameter vs Argument", "Callstack", und vieles mehr
        • Verstehen von Konzepten wie "Datei", "Dateiformat", ggf. Datenbank und Abfragesprache
        • Lernen von Konzepten wie "Sequenz, Iteration, Selektion" - sprich: Strukturierte Programmierung - und das Verstehen, wie man fachliche Anforderungen damit abbildet
        • Verstehen, was da eigentlich abgeht wenn man RUN drückt und grundsätzliches Begreifen, was man mit einem Debugger anfangen kann
        • Verstehen des Umfeldes, in dem das zu schreibende Programm läuft, und wie man damit kommuniziert (sprich: Script auf der Befehlszeile, GUI-Programm, Classic-Web, Web 2.0, RIA, Service, oder oder oder).
        • An Themen wie OOP und die daraus resultierenden Katastrophen (SOLID, Clean Code, IoC) oder Funktionale Programmierung will ich ja gar nicht erst denken.

        Es gibt so etwas wie eine Kompetenz-Skala. Beginnt mit unbewusster Inkompetenz - das sind die, die nicht mal wissen wovon sie keine Ahnung haben und darum gar nicht verstehen können, wie weit ihnen der Experte voraus ist. Dann die bewusste Inkompetenz, die haben immerhin etwas verstanden und die Klippen der Lernkurve erkannt. Dann die bewusste Kompetenz, da hast Du eine Menge gelernt, weißt, dass Du viel weißt und was Du alles noch nicht weißt. Und schließlich die unbewusste Kompetenz, da weißt Du gar nicht mehr, wie viel Du eigentlich weißt und kannst überhaupt nicht mehr einschätzen, wie weit der Weg bis dahin eigentlich war. Viele der Antwortenden hier gehören zur letzten Gruppe.

        Und wenn dann einer sagt "mach mal 4 Wochen Einführungskurs ins Strukturierte Programmieren, für Leute mit Null Voraussetzungen" - sorry, dem fehlt dann jedes Verständnis für die Länge und Schwierigkeit des zurückzulegenden Weges. In 4 Wochen kann man ein paar Grundkonzepte vermitteln, aber kaum jemanden so weit bringen, dass er sinnvoll eigenständig programmieren kann. Wenn's nur um ein paar Spielereien geht, dann sind IDEs wie Eclipse oder NetBeans mit JAVA oder Visual Studio Express (C#) gar nicht schlecht, dann beschränkt man sich auf Kommandozeilenprogramme und unterrichtet die grundlegenden Konzepte. Aber den Leuten muss klar sein, dass das nur ein Schnupperkurs ist.

        Aber vielleicht bilde ich mir das ja auch nur ein, um mir einzureden wie toll ich bin ;-)

        Ich weiß eogentlich gar nicht, ob und wo ich hier widersprechen sollte. Ich habe inzwischen eine erste Idee vom Seminaranbieter erhalten:

        Prozedurale Programmierung
        **prozedurale Programmierung**
        1. Seminar
          1. Programmiermethoden
          2. Programmiertechniken
          3. Skriptsprachen
          4. Softwareentwicklungsumgebungen
          5. Software-Entwicklungswerkzeuge aufgabenbezogen anwenden
          6. Installieren und Konfigurieren
          7. Datenschutz und Urheberrecht
        2. Klausur
        
        

        Was ich davon halten kann, soll ich morgen vormittag in einem Telefonat erfahren.

        In unseren bitworks-Seminaren war dieser Themenblock ca. 12 Wochen lang und begann bei Zahlensystemen. Am Ende wusste jeder Teilnehmer zumindest, was da wohl so ungefähr in der Steuerung seiner Waschmaschine vorgehen könnte und hätte die Programme vermutlich auch schreiben können.

        Grüße
        TS

        --
        es wachse der Freifunk
        http://freifunk-oberharz.de
        1. Prozedurale Programmierung
          **prozedurale Programmierung**
          1. Seminar
            1. Programmiermethoden
            2. Programmiertechniken
            3. Skriptsprachen
            4. Softwareentwicklungsumgebungen
            5. Software-Entwicklungswerkzeuge aufgabenbezogen anwenden
            6. Installieren und Konfigurieren
            7. Datenschutz und Urheberrecht
          2. Klausur
          
          

          Was ich davon halten kann, soll ich morgen vormittag in einem Telefonat erfahren.

          Mich würde ja das Ergebnis des Telefonats interessieren.

          1. Hallo,

            Prozedurale Programmierung
            **prozedurale Programmierung**
            1. Seminar
              1. Programmiermethoden
              2. Programmiertechniken
              3. Skriptsprachen
              4. Softwareentwicklungsumgebungen
              5. Software-Entwicklungswerkzeuge aufgabenbezogen anwenden
              6. Installieren und Konfigurieren
              7. Datenschutz und Urheberrecht
            2. Klausur
            
            

            Was ich davon halten kann, soll ich morgen vormittag in einem Telefonat erfahren.

            Mich würde ja das Ergebnis des Telefonats interessieren.

            und mich, was das mit „Strukturierte Programmierung“ zu tun hat und in welchem Teil (außer 2.) programmiert wird.

            Gruß
            Jürgen

            1. Hallo Jürgen,

              Prozedurale Programmierung
              **prozedurale Programmierung**
              1. Seminar
                1. Programmiermethoden
                2. Programmiertechniken
                3. Skriptsprachen
                4. Softwareentwicklungsumgebungen
                5. Software-Entwicklungswerkzeuge aufgabenbezogen anwenden
                6. Installieren und Konfigurieren
                7. Datenschutz und Urheberrecht
              2. Klausur
              
              

              Was ich davon halten kann, soll ich morgen vormittag in einem Telefonat erfahren.

              Mich würde ja das Ergebnis des Telefonats interessieren.

              und mich, was das mit „Strukturierte Programmierung“ zu tun hat und in welchem Teil (außer 2.) programmiert wird.

              Das wage ich gar nicht mehr näher zu hinterfragen. Ich baue hier jetzt gerade mein eigenes Kursusscript "Einführung in die Programmierung am Beispiel von Turbo-Pascal" um auf "Einführung in die Programmierung am Beispiel von PHP".

              Da passt eigenwilligerweise so einiges. Ergänzt mit den wichtigsten Punkten aus php-quake.net sollte es zumindest ein Stückchen weiterhelfen. Ich habe nur sorge, dass ich irgendwo einen klitzekleinen Schritt zu weit gehe (oder entsprechende Fragen kommen), dann bricht die Kettenreaktion los.

              Die Leute sollen ja nicht PHP lernen, sondern die Grundzüge der strukturierten Programmierung und die fängt bekanntlich bei der Planung an.

              Grüße
              TS

              --
              es wachse der Freifunk
              http://freifunk-oberharz.de
          2. Hallo und guten Tag,

            Prozedurale Programmierung
            **prozedurale Programmierung**
            1. Seminar
              1. Programmiermethoden
              2. Programmiertechniken
              3. Skriptsprachen
              4. Softwareentwicklungsumgebungen
              5. Software-Entwicklungswerkzeuge aufgabenbezogen anwenden
              6. Installieren und Konfigurieren
              7. Datenschutz und Urheberrecht
            2. Klausur
            
            

            Was ich davon halten kann, soll ich morgen vormittag in einem Telefonat erfahren.

            Mich würde ja das Ergebnis des Telefonats interessieren.

            a. Es sind nur drei Wochen, danach kommen dann drei Wochen OOP-Einführung
            b. Es soll wahrscheinlich mit PHP gemacht werden...
            c. die Teilnehmer kommen aus allen Berufen und Kulturen

            Das Gespräch mit dem Fachvorgänger steht noch aus.

            Grüße
            TS

            --
            es wachse der Freifunk
            http://freifunk-oberharz.de
      2. Tach!

        Wenn nur 4 Wochen zur Verfügung stehen, würde ich auf die Einführung verzichten. Auf diese Weise produziert man keine IT-Fachleute, sondern eine Gruppe verwirrter Menschen, die vielleicht etwas Tuten können, aber noch lange keinen Marsch blasen.

        Wichtig ist doch nur, dass das Arbeitsamt für 4 Wochen ein paar Leute aus der Statistik bekommt.

        Und außerdem gibt es auch Bücher, die das Programmieren in 21 Tagen beibringen. 4 Wochen sind 20 Tage, also passt das. Das letzte Kapitel ist sicher nicht so wichtig.

        dedlfix.

  2. Hi,

    PHP oder Perl und einen Editor der's gleich ausführen kann ohne auf die Kommandozeile wechseln zu müssen. Im TextPad kannste bspw. einen reg. Ausdruck definieren: ^.+at (.+) line ([0-9]+)[.,]

    Der dazu dient, mit einem Doppelklick auf der fehlerhaften Zeile zu landen, falls ein Fehler war. Ggf. macht TextPad auch externe Moduldateien auf, falls der Fehler dort zu finden ist. Eine IDE würde ich nicht zum Thema einer 4-Wochen-Schulung machen.

    MfG

  3. Man sagt zurecht, die erste Sprache ist die schwerste. Aber es gibt schon Überlegungen die ich mir gönnen würde. Entgegen manchen Antworten halte ich Perl, PHP und Javascript überhaupt nicht geeignet um jemanden an das Programmieren heran zu führen. Für mich sind das Katastrophen. Perl ist eher eine Geheimschrift als eine Sprache. Damit lernt keiner den Einstieg.
    Alle drei sind nicht typsicher, was vielleicht als Vorteil angesehen wird, aber willst du wirklich erklären "jetzt steht zwar ein String drin, aber der wird auch ab und zu zu einer Zahl - und ihr werdet so schnell nicht verstehen wann und wann nicht"?

    Etwas mit GUI ist natürlich schon durch die GUI viel komplexer. Aber wenn du das alles außen vor lässt, den Leuten die GUI aufmachst und erklärst wo das aktuelle Projekt zum ausprobieren liegt, hast du aus meiner Sicht mehr davon. Dann kannst du nämlich wirklich schön den Unterschied zwischen Zahl und String erklären, was eine Variable ist und warum man die deklarieren muss, die ganzen grundlegenden Dinge eben mit denen man versteht was da passiert.
    OO, GUI und komplexere Dinge brauchst du nicht thematisieren wenn keine Zeit ist.
    Die versauten Sprachen bei denen man nicht weiß welchen Typ man gerade vor sich hat, die sich ihre Variablen selbst ausdenken statt einen Fehler zu bringen wenn man sich verschreibt etc, würde ich außen vor lassen.

    Leider weiß ich übrhaupt nicht, wo die Teilnehmer fachlich abgeholt werden können und ob sie vorher Bäcker oder Lehrer waren.

    Das macht es natürlich noch härter als die 4 Wochen an sich schon sind, aber da hilft dir keine Sprache.

    1. [...]

      Da sieht man morgens die dyn. aktualisierte Forenansicht, die beteiligten Poster, freut sich und stellt den Kaffee bereit... dann wurden hier wohl einige Posts gelöscht :-( Muss gut gewesen sein!

      Das kränkt meiner Neugier sehr!

      1. Hallo und guten Morgen,

        [...]

        Da sieht man morgens die dyn. aktualisierte Forenansicht, die beteiligten Poster, freut sich und stellt den Kaffee bereit... dann wurden hier wohl einige Posts gelöscht :-( Muss gut gewesen sein!

        Das kränkt meiner Neugier sehr!

        Ich kläre dich auf, auch wenn Matthias das dann vielleicht wieder löscht?

        Da ist etwas in den falschen Hals geraten:

        <cite> Wieso ist das ausländerfeindlich? Ich habe das ausländerfreundlich gemeint! Ich würde gerne Arabisch oder Chinesisch lernen. Leider fehlen Zeit und Gelegenheit dazu. Ich spreche deutsch (scheinbar manchmal nicht deutlich genug), Englisch, Französisch und ein wenig Italienisch ;-)

        Die Aussage richtete sich ausschließlich gegen die Vorstellung, dass man in vier Wochen eine vernünftige Einführung in die Programmierung geben könnte, wenn zudem nicht bekannt ist, ob die Teilnehmer vorher Bäcker, Lehrer oder Politiker waren und sie vielleicht auch noch gegen sprachliche Barrieren kämpfen müssen. </cite>

        Grüße
        TS

        --
        es wachse der Freifunk
        http://freifunk-oberharz.de
        1. Wo kommt denn dieses Zitat auf einmal her? Ich dachte mit "Sprache" wäre eine Programmiersprache gemeint, jetzt habt ihrs plötzlich von ausländerfreundlich und feindlich. Seit wann ging es darum?

          1. Offenbar ist ein Posting gelöscht worden. Hintergrund scheint mir die Anmerkung, dass es nicht nur eine technische, sondern je nach Herkunft der Teilnehmer auch eine menschliche Sprachbarriere in diesen Kurs geben könnte.

            Rolf

  4. Hallo TS,

    ich brauch mal eure Meinungen:

    die deckt sich im Wesentlichen mit der von RolfB

    Ich habe das seinerzeit (1991) noch mit Turbo-Pascal auf DOS 5.0 ff beigebogen bekommen

    Welche Sprache würdet Ihr heute wählen, wenn nur 4 Wochen für die Einführung bereit stehen und warum?

    Pascal (in der Ausführung von FreePascal). Sie ist als Sprache zum Lernen entwickelt worden.

    Bis demnächst
    Matthias

    --
    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
    1. Pascal kam zwar nicht von mir, würde ich aber auch unterstützen. Mein Sohn hat das in der Schule letztes Jahr auch noch gemacht, die haben Lazarus verwendet.

      Rolf

      1. Hallo,

        müsste Rust nicht deine Anforderungen erfüllen?

        Ich würde ja zu Java raten, aber speziell wegen des erzwungenen OOP kann das zu Anfang sicherlich verwirren.

        Freundliche Grüße
        Christian