anfängerprogramme c++

cwriter

Erfahrenes Mitglied
Heisst: Die Schüler haben vielleicht max. 2-3 Jahre lang dieses Fach, und in 2-3 Jahren wollen die C (bzw. C++) lernen?
C sollte in einem Jahr gut lernbar sein (bzw. die Basics wie if/else, while, for, switch, Stack, Heap und Pointer und structs. Mehr ist aber auch nicht dabei. Die ganz exotischen Regeln muss man ja nicht auswendig können.
C++ hingegen ist tatsächlich riesig. Aber auch da kann man einzelne Gebiete rausnehmen. Ich würde so weit gehen, zu sagen, dass vielleicht gerade man das Committee wirklich den ganzen Standard kennt. Aber das macht ja auch nichts - kennst du das gesamte VBA-Regelwerk auswendig?

mMn würde es mehr Sinn machen, den Schülern z.B. VBA (z.B. in Office) beizubringen, weil sie das tatsächlich später im Leben brauchen können.
Als realitätsfremder Student: Ich habe nie auch nur eine Zeile VBA geschrieben. C(++), Java, Python und HTML/JS war immer mal wieder verlangt, teilweise auch ein kleines bisschen Assembly und Haskell.
Ist Office so verwurzelt, dass VBA tatsächlich so oft gebraucht wird?


Zumal die Sprache vom Umfang her auch deutlich einfacher ist (Garbage-Collector, Memory-Management usw.).
Naja, viele Fahrschüler lernen auch noch auf manuell geschalteten Fahrzeugen, obwohl die Automatikgetriebe doch angenehmer sind. Nicht immer lernt man etwas, weil man es direkt braucht, sondern weil es das Konzept vermittelt und allgemeiner ist. Oder, wie meine Professoren zu sagen pflegten: "Man muss keine Programmiersprache auswendig können. Gute Programmierer lernen eine neue Sprache noch vor dem Frühstück, da die Grundzüge immer gleich sind".
Da C einer der Urahnen vieler modernen Sprachen ist, bietet sich das Facelift C++ an. Wie gesagt es kommt auf die Organisation des Stoffes an.


Und jetzt mal ehrlich: Von 20 Schülern in so einer Klasse, wieviele werden C/C++ tatsächlich nach dem Schulabschluss brauchen? Vielleicht 2-3 Schüler.
Wie es auch mit Integralen, Ableitungen und Polynomen ist. Oder Fremdsprachen, die man verlernen kann. Oder Bibelkunde. Oder...
Es geht - wie gesagt - nicht um die Sache selbst, sondern die Idee dahinter.


Für mich ist das ungefähr so, als ob in einer Berufsschule für KFZ-Mechaniker die Schüler die Komponenten für einen Formel-1-Boliden lernen müssen.
Tönt jetzt nicht unbedingt nach einer schlechten Idee - ist das nicht gerade die Horizonterweiterung, die immer gewünscht ist? Natürlich darf das wichtige Tagesgeschäft davon nicht überschattet werden.

cwriter
 

Zvoni

Erfahrenes Mitglied
C sollte in einem Jahr gut lernbar sein (bzw. die Basics wie if/else, while, for, switch, Stack, Heap und Pointer und structs. Mehr ist aber auch nicht dabei. Die ganz exotischen Regeln muss man ja nicht auswendig können.
C++ hingegen ist tatsächlich riesig. Aber auch da kann man einzelne Gebiete rausnehmen. Ich würde so weit gehen, zu sagen, dass vielleicht gerade man das Committee wirklich den ganzen Standard kennt. Aber das macht ja auch nichts - kennst du das gesamte VBA-Regelwerk auswendig?
Nein, ich kenne auch nicht VBA zu 100%, aber ich behaupte mal dass ich so bei ca. 80% liege.
Zugegeben: mit jetzt bald 20 Jahren Erfahrung in VB5/6/VBA ist das auch nicht wirklich zu vergleichen.


Als realitätsfremder Student: Ich habe nie auch nur eine Zeile VBA geschrieben. C(++), Java, Python und HTML/JS war immer mal wieder verlangt, teilweise auch ein kleines bisschen Assembly und Haskell.
Ist Office so verwurzelt, dass VBA tatsächlich so oft gebraucht wird?
Student ist für mich etwas anderes als Berufsschule!
Student wählst du selbst, was du studierst, in einer Berufsschule hast du dich für einen Beruf entschieden, und du bekommst vorgesetzt, was du zu lernen hast!
Ausserdem @Office: Sieh dir die ganzen Job-Angebote an. Ausser bei den reinen Handwerker-Jobs wird z.Zt. in 95% der Fälle gute Office-Kenntnisse vorausgesetzt. Da Office eigentlich zu 100% mit VBA verheiratet ist, macht es meiner Meinung nach durchaus Sinn, VBA zu lernen. Und da spreche ich wirklich aus eigener Erfahrung. In der Firma wo ich arbeite, bekommen die ganzen "Grosskupferten" immer das Kotzen, wenn sie an einer Formel in Excel mehrere Tage verzweifeln, und ich denen sage "Gib mal her, in VBA mach ich das in 2 Minuten"
.... und Office ist ja auch nur ein Client für VBA. Ich denke da an so Sachen wie AutoCad u.ä.



Naja, viele Fahrschüler lernen auch noch auf manuell geschalteten Fahrzeugen, obwohl die Automatikgetriebe doch angenehmer sind. Nicht immer lernt man etwas, weil man es direkt braucht, sondern weil es das Konzept vermittelt und allgemeiner ist. Oder, wie meine Professoren zu sagen pflegten: "Man muss keine Programmiersprache auswendig können. Gute Programmierer lernen eine neue Sprache noch vor dem Frühstück, da die Grundzüge immer gleich sind".
Da C einer der Urahnen vieler modernen Sprachen ist, bietet sich das Facelift C++ an. Wie gesagt es kommt auf die Organisation des Stoffes an.
Stimme ich zu. Ein Algoritmus bleibt ein Algoritmus, unabhängig, welche Sprache verwendet wird.
Nichstdestotrotz bin ich der Meinung: Wenn ich schon was lernen muss, dann bitte etwas, was eine hohe Wahrscheinlichkeit hat, dass ich es auch nutzen kann.

Wie es auch mit Integralen, Ableitungen und Polynomen ist. Oder Fremdsprachen, die man verlernen kann. Oder Bibelkunde. Oder...
Es geht - wie gesagt - nicht um die Sache selbst, sondern die Idee dahinter.
Ist mir schon klar! In deiner Antwort geht es auch eher um die Allgemein-Bildung bzw. einen breiteren Horizont zu vermitteln, nach welchem man sich entscheiden kann, was ich denn in einem fortführenden Studium lernen will, weil es mich interessiert.
Und wie er bereits bestätigt hat: Es ist Berufsschule! Also kein Studium.
Zeige mir den Beruf, welcher per Bildungsweg "Berufsschule" erlernt werden kann, welcher C++-Kenntnisse fordert!
 

vfl_freak

Premium-User
Moin,
Naja, viele Fahrschüler lernen auch noch auf manuell geschalteten Fahrzeugen, obwohl die Automatikgetriebe doch angenehmer sind. Nicht immer lernt man etwas, weil man es direkt braucht, sondern weil es das Konzept vermittelt und allgemeiner ist.
IMHO hinkt der Vergleich aber ziemlich ...
Zu meiner Zeit waren in der Fahrschule sechs Fahrstunden auf Schaltwagen vorgeschrieben, der Rest freigestellt. Diese sechs Pflichtstunden machten auch Sinn, da es eben auch deutlich mehr Schalt- als Autiomatikwagen gab !!
Ist heute aber scheinbar anders, da zwischen Automatik- und Schaltführerschein unterschieden wird!
VG Klaus
 

cwriter

Erfahrenes Mitglied
Zeige mir den Beruf, welcher per Bildungsweg "Berufsschule" erlernt werden kann, welcher C++-Kenntnisse fordert!
https://www.talenthero.de/ausbildung/ausbildungsart/klassische-duale-ausbildung/
"Informatik" und "Elektronik" gibt einige Resultate. Ob da jetzt direkt C++ verlangt wird, weiss ich aber auch nicht.

Im Übrigen: (zu
In deiner Antwort geht es auch eher um die Allgemein-Bildung bzw. einen breiteren Horizont zu vermitteln, nach welchem man sich entscheiden kann, was ich denn in einem fortführenden Studium lernen will, weil es mich interessiert.
)

https://de.wikipedia.org/wiki/Duale_Ausbildung#Deutschland
Generelle Aufgabenschwerpunkte der Berufsschulen sind:
[...]
  • die Vertiefung der Allgemeinbildung

Student wählst du selbst, was du studierst, in einer Berufsschule hast du dich für einen Beruf entschieden, und du bekommst vorgesetzt, was du zu lernen hast!
An meiner Uni kann ich auch nicht ganz so frei wählen. Z.B. ist das erste von 3 BSc-Jahren direkt fix festgelegt. Auch Programmiersprachen nicht. Schon mal was von "Eiffel" gehört? Ich davor nicht und danach auch nie mehr. Aber die Grundelemente kamen auch dort vor.

IMHO hinkt der Vergleich aber ziemlich ...
Also früher musste man 6h auf einem Handschalter verbringen und heute muss man (zumindest an der Prüfung), wenn man später einen Handschalter fahren will.
Wo widerspricht das der Aussage? Ich habe meinen Führerschein auch auf einem manuellen Getriebe gemacht - nicht aus Spass, sondern weil ich nicht irgendwann eingeschränkt sein will, was ich fahren darf.
Klar ist es hier aus Sicht der Schüler Pflicht, C++ zu lernen. Aber es geht ja in erster Linie um die Entscheidung des Lehrers und deren Sinnhaftigkeit. Und während man Glaubenskriege darüber führen kann, welche Sprache die "beste" (für die Schule) ist, so bleibt unter dem Strich: Während C++ nicht die verbreitetste Sprache, nicht die schönste, nicht die einfachste, nicht die hippeste ist, ist sie doch eine Sprache, die High-Level und Low-Level verbindet.

Schlussendlich lässt sich sagen: An der Güte eines Informatikunterrichts anhand der gewählten Sprache zu zweifeln halte ich für kurzsichtig. Jede Sprache hat Vor- und Nachteile. Andere verstehen unter Informatikunterricht, dass man zeigt, wie Word, PowerPoint und Excel aussehen und weiss, wie man den Drucker wartet (wie in meinem Gymnasium).

Aber das ist alles sehr OT. Das Problem des öffentlichen Missfallensausdrucks über eine kurzfristig nicht änderbare Gegebenheit ist halt immer, dass man darin einen Grund sehen kann, warum man seine Arbeit nicht machen soll ("Ist ja eh doof. Der Lehrer, die Sprache, die Schule: Alles doof"). In meiner recht bescheidenen Lebenszeit bin ich zum Schluss gekommen, dass Pflichten einfacher werden, wenn man mit einer positiven Grundhaltung an die Sache herangeht.

cwriter
 

Endurion

Erfahrenes Mitglied
Den Thread habt ihr aber toll zerlegt, das hilft Nico bestimmt wahnsinnig weiter.

@Nico: Wie weit bist du denn mit C++? Gerade am Anfang?

Dann würde ich eher in Richtung simple Aufgaben gehen, davor aber evtl. noch ein paar Grundlagen:
* falls nicht schon gemacht: Schleifen (for, while)
* weil C++, unbedingt std::string und die grundlegenden Container ansehen (std::vector, std::list, evtl. noch std::map)
* Code in Funktionen packen
* Code auf mehrere Dateien aufteilen

An möglichen Aufgaben:
* Das Zahlenratespiel (Zufallszahlen, Eingabe, Ausgabe, Schleife)
* Simples Adressbuch (Eingabe, Ausgabe, Dateizugriff)