C++

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

C++
C++ müssen wir uns also selbst beibringen…

Ich hab zwar kein Problem damit, mir etwas selbst anzueignen,
aber daß man in einer “Lehrveranstaltung” gesagt bekommt
“hey, bei uns lernt ihr das nicht, bringts euch selbst bei”,
ist schon ein starkes Stück…


Willkommen an einer Universität :stuck_out_tongue:
ne mal im Ernst, du solltest C und Java können (da gab es 2 Vorlesungen die dich an die Hand genommen haben)
Das einzige was du bei C++ also noch lernen musst ist die Syntax und ein paar Eigenheiten, und das sollte nicht so viel sein…


Für manche ist die STL heut noch ein Buch mit 7 Siegeln :wink:


Du hast kein Problem damit aber wenn man es dir sagt dann ist das nicht gut??
Man lernt noch viel mehr als C++ nicht in dieser Vorlesung.


Moment mal… ^^
Das klingt ja so, als würdet ihr komplett alleine gelassen mit C++.

Ihr habt, soweit ich weiß, eine kleine C+±Einführung in der Vorlesung bekommen und zu den Programmier-Aufgaben könnt ihr eure Übungsleiter fragen, wobei euch auf dem ersten Blatt die Signaturen und die Klassenstruktur komplett vorgegeben wurden, sodass ihr fast nur noch die Rümpfe ausfüllen müsst.

Welche Vorlesung behandelt denn bitte eine Sprache erschöpfend? Außerdem ist das auch (für die Übungen und die Klausur) gar nicht nötig; ich glaube nicht, dass man für die Programmieraufgaben, die es in AlgoKS geben wird, zum C+±Guru werden muss :slight_smile:


Wie bereits erwähnt gab es dazu am Freitag eine C++ Einführung, die zusammen mit den Vorkenntnissen aus SP und AuD vollkommen ausreichend war. Von daher kann ich deine Beschwerde in keinster Weise nachvollziehen.


Gut ist nur, dass man als SS09 Erstie SP gerade erst hört und bisher in keinster Weise mit C in Berührung kam ^^

Und unabhängig davon ist das erste Blatt meiner Ansicht nach auch ohne C/C++ Kenntnise sehr gut machbar. Der logische Teil sollte eigentlich für jeden der AuD bestanden hat ohne weiteres programmierbar sein und die syntaktischen Sachen mit * und & etc, pp kann man mit ein bißchen lesen und Try’n’Error eigentlich auch gut in den Griff kriegen.

Alles in allem würd ich sagen, keine Aufgabe die einen überfordert wenn man die C++ Einführungsfolien und mal ein Buch zur Hand nimmt.

Grüße,
F



mit büchern wie c++ primer, cplusplus.com und den folien
dürfte das machbar sein. viel glück :wink:


Wo genau liegt nun dein Problem?


wie gesagt, ich hab kein problem, mir etwas selbst beizubringen.
vielleicht erwarte ich ja zuviel von unseren lehrveranstaltungen?


Welche Lehrveranstaltung ist es denn? „C++ lernen in 21 Tagen“ oder „C++ for Dummies“?


Nun ja, wenn ich mal annehmen würde, dass ich kein C++ kann, dann müsste ich dem Oliver schon zustimmen… Die Einführung war sehr mager. Und wofür brauch ich noch die Uni, wenn’s in jeder Vorlesung heißen würde “bringen sie es sich selbst bei”… Dafür brauch ich nun wirklich nicht nach Erlangen fahren.

(Vorsicht, bevor jetzt alle meckern: “würde” impliziert, dass es nicht überall so ist ;))


Ja, nein, ein bisschen, ja, nein, vielleicht :wink:
Die Sache kann man verschieden sehen. Also ich finde es selbstverständlich sehr wichtig, dass die Ersties wichtige Grundkonzepte (ganz am Anfang for-schleifen, if-bedingungen) genau erklärt bekommen um dann direkt mit Algorithmen weiterzumachen (beides in diesem Fall AuD). Dann später das ganze mit SP anhand von C vertiefen (hier vorallem neu das Pointer-Konzept und die harwarenahe Programmierung) (Das Fiasko mit den Sommersemestlern übersehe ich jetzt mal ganz gekonnt).

So, und jetzt kommt eine Vorlesung daher die euch erklären möchte, dass ein Computer 1/10 nicht korrekt darstellen kann. Soll da jetzt wirklich ein halbes Semester drauf verbraten werden C++ zu erklären? Wenn das wirklich die Konsequenz wäre, könnte ich mir sehr gut vorstellen, dass die Vorlesung dann auf C oder Java umsteigt. Was auch irgendwie schade wäre.

Stattdessen wird einfach den Studenten eine kurze Einführung in C++ gegeben, und dann wird von ihnen erwartet, dass sie sich das nötigste selbst durchlesen oder in den Übungen ausprobieren. Und wie ich bereits erwähnte ist der Schritt von Java + C zu C++ wirklich nur ein Steinwurf.

@Michi Nein, du fährst selbstverständlich nicht für den Bring-dir-C+±selbst-bei-Teil nach Erlangen, sondern für die Algorithmik kontinuierlicher Systeme

edit: Ich möchte hier nicht wieder als der Buh-Mann dastehen. Das da oben ist einfach nur meine Meinung und mein Beitrag zu einer Diskussion. Sollte das „Problem“ sehr kritisch sein und es eine gewisse kritische Masse gibt, wird man sich dieses Problems annehmen. Vielleicht mal ganz konkret die FSI/den Lehrstuhl/Herrn Götz darauf ansprechen.


Also bitte, was man in AlgoKS zu programmieren hat ist (wenn mans mit letztem Semester vergleichen kann) minimal und nur auf die in der VL besprochenen Algorithmen angelegt. Ein Codegerüst ist vorgegeben oder es ergibt sich aus dem Aufgabentext.
Wenn man AuD und Systemprogrammierung gehört und verstanden hat sollte die Einführungsvorlesung und im Zweifel eine kurze Runde Google wirklich ausreichen, um die Programmieraufgaben ohne Probleme zu bestehen. (Was man übrigens auch an der Punkteliste des letzten Semesters sehen kann)


Es sollen ja nicht so die krassen Programmieraufgaben sein, von daher wird’s schon reichen.
Solange wir hier nicht exzessiv(!) Expression Templates, Boost, Vererbung mit den hässlichen Sonderregeln bei virtual, slicing etc. rumschmeißen, ist’s mir recht, ansonsten hätte ich dann doch lieber eine genauere Einführung :smiley:

Dafür fahr ich auch gern nach Erlangen… Thema scheint (bis jetzt) doch ganz interessant zu werden, glaub ich :wink:


[quote]Moment mal… ^^
Das klingt ja so, als würdet ihr komplett alleine gelassen mit C++.

Ihr habt, soweit ich weiß, eine kleine C+±Einführung in der Vorlesung bekommen und zu den Programmier-Aufgaben könnt ihr eure Übungsleiter fragen, wobei euch auf dem ersten Blatt die Signaturen und die Klassenstruktur komplett vorgegeben wurden, sodass ihr fast nur noch die Rümpfe ausfüllen müsst.[/quote]

agree.
und auch wenns leicht :wink: off-topic ist:
ich kann das gejammer echt nicht mehr hören. ich kenns (auch aus eigener erfahrung) von anderen fakultäten, und dagegen werden wir wie in der schule an der hand geführt. aber auch in der schule hat ein kleines bisschen eigeninitiative nicht geschadet…


in der uni gehts auch nicht darum, dass man an der hand genommen wird, sondern
dass man wissenschaftlich arbeiten lernt und sich selber mit dem stoff beschäftigt.
die übungen gibts zum glück, bei manchen fächern sind die auch dringend notwendig
um die vorlesung zu begreifen :wink:
vorlesung kommt halt von vorlesen.


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.

Natürlich kennt man vieles schon irgendwie aus Java, aber die Unterschiede sind ziemlich deutlich. Vorallem wenn es um Speicher-/Ressourcenverwaltung geht (z.b. RAI). Das braucht Zeit bis man das verstanden hat und wenn man schon C++ programmiert dann sollte man es verstanden haben. Sonst bekommt man C++ Code den es schon zu genüge gibt und den keiner braucht, nämlich unwartbaren. C++ so zu verwenden, dass gute Software daraus wird ist schwierig, zumindest so schwierig, dass man sich seit Jahrzehnten die Zähne daran ausbeisst.

Wenn es, wie du sagst darum geht, dass man 1/10 nicht binär darstellen kann, warum dann C++? Es gibt genügend Skriptsprachen die reichlich support für Numerik haben und wesentlich weniger Komplex sind als C++ (z.b. python, http://www.scipy.org/). So hätte man als Student die Möglichkeit sich auf das wesentliche, nämlich die numerischen Verfahren, zu konzentrieren. Wie man die hochperformant und sauber in C++ implementiert kann man dann in einer anderen Vorlesung lernen.
So erfindet man das Rad wieder neu, z.B. wie hat man in der Steinzeit Matrixklassen implementiert hat (Übungsblatt 1). Als Informatiker sollte man denke ich ohne Zweifel verstehen wie Numerik funktioniert (Grundlagen), ob man sich dazu erst durch C++ durch quälen sollen muß, bezweifle ich.