C++


Keiner soll in der Uni lernen wie man C++ Profi wird, aber wenn man das will gehts natürlich.(selber machen!)
Eher sollst du soviele Sprachen wie möglich lernen. Um C++ zu lernen gibts im Internetz genug Tutorials.

Ich fände es auch ziemliche Zeitverschwendung mühsam C++ zu lernen, weil diese Sprache ein gutes Beispiel dafür ist wie mans nicht macht.
Außerdem gibts hier sowieso viel zu wenig Flames in diesem Thread.


[quote=infirmatiker]
Ja ne ist klar, die paar Eigenheiten… Merhfachverbung, private/protected/public (was war doch gleich der genaue Unterschied?), virtuelle Funktionen, Destruktoren, Templates (damit kann man schon eine VL füllen), Headerdateien (komplexes Buildsystem), Streams, Namespaces, Exceptions, Referenzen vs. Pointer, const, Operatorenüberladung, iteratoren, container, friend oder lieber nicht friend?, delete/delete

Auf dem ersten Übungsblatt wird ein guter Teil davon abgedeckt, das kann eigentlich nur schief gehen, wenn man mit C++ noch nichts gemacht hat.[/quote]

Niemand hat bestritten, dass C++ viele Eigenheiten hat, die in ihren Details kompliziert sein können. Ich bin aber nicht der Meinung, dass man die für das erste Übungsblatt (oder AlgoKS überhaupt) kennen muss und das sonst „eigentlich nur schief gehen“ kann… wie schon erwähnt, das Gerüst ist vorgegeben und den Rest mithilfe von Folien und Übungsleitern zu bewältigen, sollte keine allzu große Herausforderung sein. Dass man nicht sofort und ohne weiteres jedes Konzept, das in dem vorgegebenen Code vielleicht irgendwo auftaucht, umfassend verstanden und verinnerlicht hat, ist klar, und das erwartet doch auch niemand :slight_smile:

Nochmal etwas anders formuliert: Ihr werdet in AlgoKS keine riesigen Software-Projekte aufziehen und auch keine weltbewegenden Design-Entscheidungen treffen müssen. Genau so wenig, wie die Erstis in AuD Java perfekt verwenden müssen, müsst ihr das hier mit C++.

Ja, das lernt ihr nicht in AlgoKS, das ist auch gar nicht der Anspruch :wink:
Und: Richtig, man hätte mindestens genau so gut eine Skriptsprache verwenden können, das war sogar mal geplant. Ist sicher keine schlechte Idee, aber die Überlegung war auch folgende: Wenn nicht wenigstens in AlgoKS ein bisschen C++ gemacht wird, gibt es keine einzige Pflichtveranstaltung im Bachelor Informatik, die diese Sprache verwendet. Wählt man dann im 5. Semester ein Wahlpflichtfach, kann es durchaus sein, dass C++ vorausgesetzt wird, das ist in einigen Veranstaltungen der Fall. Ist es dann nicht besser, zumindest schon ein bisschen damit in Berührung gekommen zu sein?
Im Prinzip war das nur gut gemeint, denn euch wird ja genügend vorgegeben, damit ihr euch auf die Numerik konzentrieren könnt (und trotzdem ein kleines C+±Programm dastehen habt, um euch ein bisschen an die Sprache zu gewöhnen). Ob ihr dann eure paar Schleifen und Multiplikationen in den Rumpf einer vorgegebenen C+±Methode schreibt oder als Programm in einer Skriptsprache, ist doch kein weltbewegender Unterschied.

Davon mal abgesehen: Nur jedes vierte Blatt in AlgoKS ist ein Programmierblatt, hier liegt also auch nicht der Schwerpunkt… :slight_smile:


Wenn man also C++ verwendet, ohne es zu lernen, damit man das eben auch mal gesehen hat, klingt das für mich nicht gerade nach einem durchdachten Konzept.
Ein paar Brocken hiervon, ein paar Brocken davon.
Man lernt eigentlich nichts dabei, ausser wie man eine Matrixklasse in C++ zusammenpfuscht.
Zeit, die einem tatsächlich fehlt, sich auf wichtigeres zu konzentrieren.
Gut gemeint ist halt nicht immer gut :wink:


Dass du die Dinge gern schwarz-weiß siehst (und auch so darstellst), wenn es dir in den Kram passt, hast du in diesem Forum schon oft genug unter Beweis gestellt…

edit: Vielleicht nochmal im Klartext: Nicht jedes Detail von C++ vermitteln zu wollen und die Studenten nicht zu zwingen, sich ewig mit der Sprache beschäftigen zu müssen, ist nicht gleichbedeutend mit „C++ verwenden, ohne es zu lernen“. Die basics werden vermittelt, damit man etwas hat, worauf man aufbauen kann. Wie intensiv der Student darauf aufbaut, liegt in seiner Verantwortung und hängt auch von seinen Interessen hab.

Aha. Das Konzept von einem kleinen Einführungsblatt, solange noch nicht so viel Vorlesungsstoff vorhanden ist, scheint bei einigen noch nicht angekommen zu sein… ^^

Lehrveranstaltungen unreflektiert zu kritisieren, weil man bestimmte Programmiersprachen nicht mag (mehrfach bei dir gesehen, daher die allgemeine Formulierung), dürfte auch nicht viel mehr nützen…
Gegen konstruktive Kritik hat niemand etwas, aber in deinen Kommentaren verdrehst du nur zu gerne Tatsachen und der Tenor ist meistens ein von oben herab geäußertes „ihr habt doch alle keine Ahnung von einer ordentlichen Lehrveranstaltung, außer mir“.


wow… cool down!


Mit der Argumentation wird es im ersten Semester eine Programmiervorlesung geben die sich fix auf eine Sprache versteift zB. C oder Java, und alle anderen Vorlesungen werden nur noch diese Sprache verwenden, einfach weil sie keine Zeit haben erschöpfend eine neue Sprache einzuführen…


ACK!

Falsch. Mit ein paar Tutorials ist es bei C++ nicht getan, die meisten sind eh nicht so dolle IMHO. Viel besser sind z.b. WERBUNG die Bücher von Meyers, [More] Effective C++, oder dieses Seminar:
http://www10.informatik.uni-erlangen.de/Teaching/Courses/SS2010/CPP/

Hmm, naja, ganz so pauschal kann man das jetzt aber auch wieder nicht sagen. Klar sind in C++ viele Sachen etwas vermurkst, zwecks der Historie. Aber wenn man sich anschaut was für Ideen da schon eingeflossen sind, ist das Gesamtwerk andererseits auch wieder ziemlich genial… :slight_smile:
Auf jedenfall vermisse ich Destruktoren in Java. Oder mir soll mal jemand erklären wie man in Java ein Resourceleak verhindert ohne tausend geschachtelte try/catch Blöcke.
Und Zeitverschwendung ist es sicher nicht: Es gibt einen riesigen Bestand an existierender C++ Software. Diese Sprache wird uns noch einige Jahrzehnte erhalten bleiben, zumindest sehe ich das so, wenn man sich überlegt, dass immernoch COBOL in Produktivsystemen gibt.


Operation erfolgreich, Patient tot.


COBOL war schon eine Krankheit und C++ ist auch eine Krankheit. Nichtsdestotrotz sollte man damit umgehen können. Wozu braucht man schon Destruktoren in Java, da lässt man den GC aufräumen :stuck_out_tongue:
Solange nicht mehr nötig ist bleibt bei mir C++ erstmal C mit STL. Ich behaupte auch einfach mal, dass man in C++ nur mit viel Erfahrung richtig sauberen performanten Code hinbringt, aber in der Industrie kann man halt nur selten bis zur Perfektion coden, da zählt nur Time-to-market.


Auja, der GC von Java kann also uebrige Filehandles und Netzwerkverbindungen wegraeumen?

Nicht alle Resourcen sind nur Speicher…


du hast den kern erkannt :wink:


Erinnert mich an:

:wink:

1 „Gefällt mir“

:smiley: kwt