[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: C++



On Sat, 2009-01-03 21:45:24 +0100, Esther Mietzsch <mietzsch@gmx.de> wrote:
> Am Tuesday, 30. December 2008 10:45 schrieb Michael Ulex:
> > kann mir jemand ein einfach verständliches C++-Programmiertool in
> > Skolelinux empfehlen? Eines, was entweder schon installiert ist (Server
> > arbeitet mit 3.0) oder welches ich installieren kann? Ich darf einen
> > Wahlpflichtkurs zur Einführung des Programmierens in 8 Doppelstunden
> > geben. Da ich zuhause nur mit Windoof oder Sidux arbeite, wäre es gut,
> > wenn ich dieses Programm auch hier laufen lassen könnte.
> > Herzlichen Dank und einen guten Rutsch ins neue Jahr wüscht
>
> ich hätte mal eine "doofe" Frage: wieso C++?
> 8 Doppelstunden insgesamt? Und dann alles auf einmal (Compiler etc., 
> Variablen, Typen, Objektorientierung usw.)? Ist das nicht ziemlich viel?

Die Vermutung ist, daß "C" für recht einfach gehalten wird und "C++"
die ach so hippe OOP mit sich bringt. Wenn man dann noch die Konzepte
von Widget Sets einbringen will und die Schüler erstmal anleiten muß,
wie man Compiler, Linker und ggf. eine integrierte
Entwicklungsumgebung bedient, wird man wohl bei /viel/ mehr als acht
Doppelstunden herauskommen.

Um den Schülern überhaupt das Gefühl zu geben, irgendetwas
herausgearbeitet zu haben, würde ich eher auf einen leicht zu
bedienenden (simplen) Editor zurückgreifen, sowie ein Makefile, das
erstmal die ganzen Abhängigkeiten etc. außen vor läßt:

---------------------------------------------------------------
#!/usr/bin/make -f

CFLAGS=-Wall -Werror -std=gnu99 -W -pedantic

all:
	gcc $(CFLAGS) -c eins.c -o eins.o
	gcc $(CFLAGS) -c zwei.c -o zwei.o
	gcc $(CFLAGS) eins.o zwei.o -o tollesprogramm
---------------------------------------------------------------

Das Makefile-Schreiben (mehr in Form eines shell scripts wie oben)
kann man ganz gut erstmal via "echo"-Kommandos etc. vorweg üben,
insbesondere auch, vorne ein TAB zu haben. Abhängigkeiten etc. würde
ich in acht Doppelstunden unter keinen Umständen anpacken wollen.
Magische Regeln (".c.o") würde ich auch vermeiden: Das bewirkt nur,
daß die Schüler irgendwas auswendiglernen, ohne das Gefühl zu haben,
etwas verstanden zu haben, oder gar zu beherrschen.

Von dort aus sachte in ein kurzes C-Programm einführen:

-----------------------------------------------------------
#include <stdio.h>

int
main (int argc, char *argv[])
{
	int i;

	for (i = 0; i < argc, i++)
		printf ("%d: %s\n", i, argv[i]);

	return 0;
}
-----------------------------------------------------------

Da hast Du auch gleich ein Pointer-Array, was einen guten Einstieg in
Pointer an sich liefert. Außerdem schon die spezielle Funktion `main',
eine Kontrollstruktur (for) sowie das generelle prozedurale Konzept
einer Funktion, die etwas übergeben bekommt und typischerweise etwas
zurückgibt. (Bei interessiertem Publikum kannst Du auch noch den
Unterschied von "return 0" und "exit (EXIT_SUCCESS)" einführen, was
einen Riesenunterschied bei der Portabilität (-> VMS) macht.)


In der kurzen Zeit würde ich unter keinen Umständen OOP einzuführen
versuchen. Das Methoden-Konzept, gerade bei virtuellen Methoden, die
ganze Vererbung etc., ist im Vergleich zur prozeduralen Programmierung
viel komplizierter und IMHO nicht in so kurzer Zeit vermittelbar.

Wenn wirklich auf Biegen und Brechen noch GUI-Porgrammierung
eingeführt werden soll, würde ich auf GTK+ setzen. GTK+ ist gut
strukturiert und hält sich von der API her ebenfalls an sehr
abgekapselte Datentypen. (Das könnte eine gute Grundlage für später
einzuführende OOP sein.)

Einfache GTK+-Programme lassen sich recht gut schreiben; Beispiele
dafür findet man en masse in der GTK+-Doku.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw@lug-owl.de              +49-172-7608481
Signature of:               http://www.eyrie.org/~eagle/faqs/questions.html
the second  :

Attachment: signature.asc
Description: Digital signature


Reply to: