Benutzer:Chaos-Metaller/C++-Kurs
Diese Seite ist nur dazu da, dass Hacka und ich überlegen, wie man wir einen C++-Kurs gestalten sollten. Wenn aber jemand Vorschläge, Anregungen oder Kritik (besonders Kritik) hat, sind diese erwünscht, sogar willkommen. --Chaos-Metaller 15:48, 9. Mär. 2007 (CET)
- Also, entweder ihr macht das wie andere auch: eine stinknormale Gliederung mit Hello World und so oder lasst euch was völlig anderes einfallen. Aber das erfordert Erfahrung. Also hätte ich gesagt, macht es mal klassisch, kann man ja später noch ändern. Das Wichtigste ist: mal anfangen, der Rest (auch Mitstreiter) kommt nach und nach. Was haltet Ihr davon? Übrigens: lasst euch niemals von irgendjemandem beeinflussen :-) ----Erkan Yilmaz (bewerte mich!, Diskussion) 17:00, 9. Mär. 2007 (CET)
- Ich denke mal, dass wir mit Hello World anfangen sollten. Ist ja eigentlich Tradition. Aber bevor man überhaupt anfangen kann muss man denke ich mal einen kleinen Exkurs für Compiler machen, was es da so gibt, was es so an freier Software gibt... Wie man diese bedient, ein paar Fachvokabeln schonmal erklären, wie compilieren, linken, etc.--Hacka 22:07, 9. Mär. 2007 (CET)
- Ich meine, Hello World als erstes Programm auf jeden Fall, aber vorher etwas über objektorientierte Programmierung, welcher Teil des PC was mit welchem Teil des Programms macht (Das hat mich bei dem Pascal-Buch, dass ich gelesen habe, sehr geärgert, man hat es eigentlich erst verstanden, nachdem man das Nachwort gelesen hat). Usw, usf... Begriffe erklären ist auch ne gute Idee, aber ich denke, die meisen sollten im Verlauf des Kurses erklärt werden, damit man auch Beispiele hat, und nicht überlegen muss, wie war ds noch vor einem halben Jahr, wo stand das noch? Oder wir machen noch eine Seite mit "Vokabeln". Was hälst du davon? --Chaos-Metaller 14:12, 11. Mär. 2007 (CET)
- Ich finde die Diskussion gut - aber bitte nicht vergessen - vieles ist schon erfunden - schaut auch bei Wikibooks vorbei. Lizenzrechte aber bitte einhalten. ----Erkan Yilmaz (bewerte mich!, Diskussion) 20:24, 11. Mär. 2007 (CET)
- Ich meine, Hello World als erstes Programm auf jeden Fall, aber vorher etwas über objektorientierte Programmierung, welcher Teil des PC was mit welchem Teil des Programms macht (Das hat mich bei dem Pascal-Buch, dass ich gelesen habe, sehr geärgert, man hat es eigentlich erst verstanden, nachdem man das Nachwort gelesen hat). Usw, usf... Begriffe erklären ist auch ne gute Idee, aber ich denke, die meisen sollten im Verlauf des Kurses erklärt werden, damit man auch Beispiele hat, und nicht überlegen muss, wie war ds noch vor einem halben Jahr, wo stand das noch? Oder wir machen noch eine Seite mit "Vokabeln". Was hälst du davon? --Chaos-Metaller 14:12, 11. Mär. 2007 (CET)
- Ich denke mal, dass wir mit Hello World anfangen sollten. Ist ja eigentlich Tradition. Aber bevor man überhaupt anfangen kann muss man denke ich mal einen kleinen Exkurs für Compiler machen, was es da so gibt, was es so an freier Software gibt... Wie man diese bedient, ein paar Fachvokabeln schonmal erklären, wie compilieren, linken, etc.--Hacka 22:07, 9. Mär. 2007 (CET)
- Wollte mal nach dem Zwischenstand fragen: gibt es schon Neuigkeiten? Ihr wisst ja, wie bei jedem Projekt braucht es wohl ein paar Nachfragen - wenn das Projekt mal beginnt, finden sich immer mehr Interessenten. Ich könnte euch anbieten, mal ein Telefonat mit mir zu führen. Habt Ihr Skype? Ihr könnt mich hier anmailen. Wie gesagt, C++ kann ich nicht, biete euch aber an, eure Inhalte zu reviewen, ok? ----Erkan Yilmaz (bewerte mich!, Diskussion) 12:46, 15. Mär. 2007 (CET)
- Ja, wir sind gerade da bei zu planen und mal zu gucken was man da so alles reinpacken muss, wenn mit dem ersten Teil fertig sind, kannst du ihn dir ja mal angucken. --Hacka 19:26, 16. Mär. 2007 (CET)
- Wollte mal nach dem Zwischenstand fragen: gibt es schon Neuigkeiten? Ihr wisst ja, wie bei jedem Projekt braucht es wohl ein paar Nachfragen - wenn das Projekt mal beginnt, finden sich immer mehr Interessenten. Ich könnte euch anbieten, mal ein Telefonat mit mir zu führen. Habt Ihr Skype? Ihr könnt mich hier anmailen. Wie gesagt, C++ kann ich nicht, biete euch aber an, eure Inhalte zu reviewen, ok? ----Erkan Yilmaz (bewerte mich!, Diskussion) 12:46, 15. Mär. 2007 (CET)
Ich schlage in etwa folgendes vor (Kannst du noch ändern, wenn dir was einfällt. --Chaos-Metaller 19:31, 16. Mär. 2007 (CET))
- Mal eine Frage, wer ist eure Zielgruppe? Natürlich Neulinge klar, aber sollen die schon Vorwissen haben mit einer anderen Programmiersprache? PC-Laien? Jugendliche bis 16 Jahren (da man dann evtl. in einer anderen Art und Weise schreiben könnte),... Wenn wir die Zielgruppe haben, lässt sich das andere schnell klären. Ich würde das "Hello World" als Erstes Kapitel einfügen (mit: wie erstelle ich und compiliere es), weil: wenn ich eine Programmiersprache lernen will, dann möchte ich auch gleich loslegen. Man muss die Leute quasi locken ein bisschen. Ansonsten hätte ich gesagt, Ihr beschliesst was reinkommt, denn schliesslich will ich (noch) nicht rein reden. ----Erkan Yilmaz (bewerte mich!, Diskussion) 20:55, 16. Mär. 2007 (CET)
- Ich halte es nicht für sinnvoll, Hello world sofort zu machen, da ich sagen würde, der Kurs richtiet sich an Anfänger ohne Vorkenntnisse. Und wenn man das nicht noch nicht versteht, macht es keinen Spaß. Außerdem legt man dann los, dann kommt wieder Theorie, die gar nichts damit zu tun hat. Man könnte aber anhand dieses Programms erklären, was beim Kompilieren etc. passiert. --Chaos-Metaller 13:08, 17. Mär. 2007 (CET)
- Klaro, gibt verschiedene Ansichten. Aber wie wäre es denn, wenn Ihr mal so im Internet rumsucht und schaut, was es für C++-Kurse gibt (man kann sich ja auch andere Kurse für andere Programmiersprachen anschauen z.B. hier in der Wikiversity) und mal schaut, wie es andere machen? Ihr könnt doch Englisch oder? Sonst würde ich als Business Angel denken, meine Zeit investiere ich lieber woanders. Gott sei Dank, bin ich keiner :-) ----Erkan Yilmaz (bewerte mich!, Diskussion) 13:16, 17. Mär. 2007 (CET)
- Ich halte es nicht für sinnvoll, Hello world sofort zu machen, da ich sagen würde, der Kurs richtiet sich an Anfänger ohne Vorkenntnisse. Und wenn man das nicht noch nicht versteht, macht es keinen Spaß. Außerdem legt man dann los, dann kommt wieder Theorie, die gar nichts damit zu tun hat. Man könnte aber anhand dieses Programms erklären, was beim Kompilieren etc. passiert. --Chaos-Metaller 13:08, 17. Mär. 2007 (CET)
- Selbstverständlich können wir Englisch, sonst wäre C++ sehr schwierig.
- Zu klärende Punkte:
- Zielgruppe
- Gliederung
- (Bitte ergänzen) --Chaos-Metaller 15:25, 17. Mär. 2007 (CET)
- So, habe gerade mal ein paar Gedanken zu der Gliederung hinzugefügt.
- aber das mit der Zielgruppe ist eine sehr gute Frage. Denke mal, dass wir versuchen sollten so viele wie möglich anzusprechen. --Hacka 23:58, 18. Mär. 2007 (CET)
- Super, sieht doch schon mal nach mehr aus. Wie gesagt, ich sehe das mehr von der praktischen Seite. Wenn ich etwas lerne, möchte ich es gleich anwenden können. Insofern hätte ich das OOP auch etwas nach hinten verlegt. Aber mehr sage ich nicht, ihr seid die beiden Zugpferde für diesen Kurs. Ich gebe nur meinen Senf dazu :-) ----Erkan Yilmaz (bewerte mich!, Diskussion) 07:36, 19. Mär. 2007 (CET)
- Also, wenn die Zielgruppe "Anfänger" sein dürfen - halte ich das Zusammenschmeißen von diversen (eigentlich selbständigen) Teilgebieten für fragwürdig:
- Objektorientierte Programmierung - ist ja (unabhängig von der Programmiersprache) ein Gebiet für sich
- IDE - sollte mMn nicht als erstes behandelt werden, denn ein Programm - egal in welcher Sprache - besteht aus Textzeilen, die kann man mit einem "gewöhnlichen" Editor schreiben.
- die Besonderheiten der verschiedenen Compiler sind bei korrekter Syntax eher nebensächlicher Natur - die einen können "Debug"-Infos unterbringen, andere können "Optimieren", manche können plattformspezifischen Maschinencode generieren, aber eigentlich soll ja erstmal "nur" ein aufrufbares, lauffähiges Programm entstehen. --Exxu 09:35, 19. Mär. 2007 (CET)
- Ich bin auch der Meinung, dass wir nicht zu genau auf die einzelnen Compiler eingehen sollten. Das wäre ja fast schon wieder Werbung. Nur kurz sagen, was ein Compiler macht und welchen wir benutzen (Also die unerfahrenen Kursteilnehmer sich runterladen können). Zu OOP: Wir haben eine gemeinsame Bekannte, die einen Javakurs besucht, und sie regt ich darüber auf, dass sie nur abtippen und nichts verstehen. Wir haben also eine Leidtragende da, die sich das hier auch mal angucken wollte. ;-) --Chaos-Metaller 20:06, 19. Mär. 2007 (CET)
- OOP ist natürlich eine nützliche Methode der Programmierung. Aber es ist eine Methode, die, wie Du schon schreibst, auch in Java und eben auch in vielen anderen Programmiersprachen Verwendung findet. Insofern ist OOP nichts C++-spezifisches. Eigentlich ist OOP einen eigenen Kurs wert. Natürlich kann (und sollte) erklärt werden, dass man mit C++ objektorientiert programmieren kann und sollte. Es ist sicherlich auch am konkreten Beispiel zu erläutern, was hier die Objekte und deren Methoden sind. Dies alles kann aber mMn nur ein Beiwerk sein, da der Kurs ja C++-Kurs und eben nicht "Objektorientierte Programmierung mit C++" heißt. --Exxu 20:59, 19. Mär. 2007 (CET)
- Ich bin auch der Meinung, dass wir nicht zu genau auf die einzelnen Compiler eingehen sollten. Das wäre ja fast schon wieder Werbung. Nur kurz sagen, was ein Compiler macht und welchen wir benutzen (Also die unerfahrenen Kursteilnehmer sich runterladen können). Zu OOP: Wir haben eine gemeinsame Bekannte, die einen Javakurs besucht, und sie regt ich darüber auf, dass sie nur abtippen und nichts verstehen. Wir haben also eine Leidtragende da, die sich das hier auch mal angucken wollte. ;-) --Chaos-Metaller 20:06, 19. Mär. 2007 (CET)
- Soll ich ehrlich sein? Genau so war's auch gemeint. Nur kurz sagen, was es ist und warum man es erfunden hat, gar nicht so viel erklären. Nur, dass man weiß, was man tut. Ich habe die Erfahrung gemacht, dass das immer nützlich ist. --Chaos-Metaller 20:53, 20. Mär. 2007 (CET) Nachtrag: Sicher ist OOP nichts sprachenspezifisches, aber irgendwo sollte man es doch erklären... Oder? :-) --Chaos-Metaller 15:34, 26. Mär. 2007 (CEST)
- Hm, vielleicht gibt es dies schon irgendwo gut erklärt? Man muss es dann nur finden. Man könnte ja derweil anfangen, die unten erwähnten weiter auszuarbeiten (evtl. sogar zu implementieren?). Dann kommt man bestimmt auf neue Ideen, trifft neue Leute und die haben dann wieder Ideen usw. ----Erkan Yilmaz (bewerte mich!, Diskussion) 18:26, 26. Mär. 2007 (CEST)
- Soll ich ehrlich sein? Genau so war's auch gemeint. Nur kurz sagen, was es ist und warum man es erfunden hat, gar nicht so viel erklären. Nur, dass man weiß, was man tut. Ich habe die Erfahrung gemacht, dass das immer nützlich ist. --Chaos-Metaller 20:53, 20. Mär. 2007 (CET) Nachtrag: Sicher ist OOP nichts sprachenspezifisches, aber irgendwo sollte man es doch erklären... Oder? :-) --Chaos-Metaller 15:34, 26. Mär. 2007 (CEST)
Ich habe gerade die Farbe des C-Kommentars geändert. Ich bin der Meinung, dass eher neue Ausdrücke rot sein sollten. Ich denke, auf eine Farbe für C-Komentare müssen wir uns vorläufig nicht einigen, da sie nicht so oft vorkommen sollten. Für C++-Komentare schlage ich etwas wie das hier vor. Das wirkt auch nach etwas, das ignoriert wird. :-) --Chaos-Metaller 15:49, 26. Mär. 2007 (CEST)
- Chaos-Metaller, da musst du nicht drüber reden. War einfach nur so von mir - freut mich, dass sich die Seite mit etwas Leben fühlt - weiter so. ----Erkan Yilmaz (bewerte mich!, Diskussion) 09:34, 30. Mär. 2007 (CEST)
- Mach's einfach - wenn es jemanden stört, wird sich diese Person schon melden. :-) ----Erkan Yilmaz (bewerte mich!, Diskussion) 12:40, 31. Mär. 2007 (CEST)
- Ja, gut, etwas sinnleer, aber dann können wir uns gleich mal auf Farben einigen. Ich schlage nämlich rot für neue Ausdrücke vor (später, nicht gleich das ganze erste Programm rot...) Aber ob das jetzt wichtig ist... ;-) --Chaos-Metaller 15:43, 30. Mär. 2007 (CEST)
- Hmm, dass mit mit dem rot für in dem Programm neu eingeführte Befehle ist garnetmal so schlecht.
- Ich wars vergessen einzuloggen--Hacka 21:03, 31. Mär. 2007 (CEST)
- Die Nummern sind eine gute Idee, sie werden beim erklären nützlich sein. Was ist eigentlich mit einem geschichtlichen Abriss der Sprache wie auf Wikibooks? Wollen wir so was machen? --Chaos-Metaller 18:31, 1. Apr. 2007 (CEST)
- Vielleicht sollten wir das Lieber in den Anhang setzten, denn hier geht es ja eher darum die Sprache zu lernen, bzw. den Kurs zu geben, als ein geschichtlicher Abriss.--Hacka 19:27, 2. Apr. 2007 (CEST)
- Ich finde die Nummern auch eine gute Idee. Und zum geschichtlichen Abriss: hat Wikibooks denn was Gutes? Wenn ja, dann einfach dorthin referenzieren am Beginn. Später kann man das immer noch selbst schreiben oder auch z.B. bei Wikibooks erweitern. Gegenseitig helfen :-) ----Erkan Yilmaz (bewerte mich!, Diskussion) 08:32, 3. Apr. 2007 (CEST)
- Vielleicht sollten wir das Lieber in den Anhang setzten, denn hier geht es ja eher darum die Sprache zu lernen, bzw. den Kurs zu geben, als ein geschichtlicher Abriss.--Hacka 19:27, 2. Apr. 2007 (CEST)
Einführung
[Bearbeiten]Objektorientierte Programmierung
[Bearbeiten]Mein erster Compiler
[Bearbeiten]Was macht ein Compiler?
In diesem Kurs werden wir den Wx-Dev-Cpp-Compiler benutzen. Alle Programme testen wir vorher mit ihm. Wir empfehlen allen Teilnehmern, ihn zu benutzen, da andere Compiler möglicherweise den Code anders interpretieren und die Beispiele nicht nachvollzogen werden können. Es ist eigentlich nur eine IDE (Integrated Development Environment), also eine Integrierte Entwicklungsumgebung, die sich auf den MingW Compiler stützt. Hier kostenlos downloaden.
Was ist ein C++?
[Bearbeiten]Jetzt geht's los
[Bearbeiten]Mein erstes Programm "Hello World!"
[Bearbeiten]1:#include <iostream> //Einbinden der "iostream-Bibliothek"
2:
3:int main() //Hauptfunktion
4:
5:{
6: std::cout << "Hello World!" << std::endl; //"Hello World!" ausgeben
7: system("PAUSE");
8: return 0; //Wert NULL zurückliefern
9:} //int main()
Schreiben und zum Laufen bringen
[Bearbeiten]Hier dann mit Kommentaren die Ausdrücke kurz erläutern (/*Dies ist ein C-Kommentar.*/ //Dies ist ein C++-Kommentar.)