Programmiersprache für Informatikunterricht

Zwergenkönig schrieb:
Win 2000 frisst afaik mehr Ressourcen als ein XP ohne Designs..

Das siehst Du falsch. Windows XP zieht deutlich mehr Ressourcen, unter anderem weil viel mehr Dienste laufen.
 
Das große Problem am Informatikunterricht an Schulen ist oft, dass der von Lehrern gehalten wird, die grad mal eine Fortbildung gemacht haben. Meist wird Pascal/Delphi gemacht. Von fundierten Programmierkenntnissen kann man da einfach nicht sprechen.

Meiner Meinung nach sollte man Java nehmen. Es ist Objektorientiert, sehr gut dokumentiert, kostenlos erhältlich für beinahe alle Systeme und umgeht viele Fallstricke wie zum Beispiel Pointer in C/C++.

Aber man kann nicht alles haben.
 
Also mein Info-lehrer war ziemlich überqulifiziert für den Job ;-)
Der wusste wirklich was er tat, nur konnte er es nicht wirklich an den Mann bringen.

Das Problem an Java ist, dass es viele Konzepte hat, die man erst nach einiger Zeit versteht. Basic, Pascal, C, dass sind "gute" Anfängersprachen, wenn es denn Imperativ sein soll.
 
Sharoz schrieb:
Also mein Info-lehrer war ziemlich überqulifiziert für den Job ;-)
Der wusste wirklich was er tat, nur konnte er es nicht wirklich an den Mann bringen.

Das Problem an Java ist, dass es viele Konzepte hat, die man erst nach einiger Zeit versteht. Basic, Pascal, C, dass sind "gute" Anfängersprachen, wenn es denn Imperativ sein soll.

Bei C muss ich Dir da widersprechen, die Pointer-Arithmetik ist einfach zu fehlerträchtig.

Dann war dein Info-Lehrer eine Ausnahme, aber kein guter Didakt ;)
 
Pointer sind ernorm wichtig zu verstehen. Java zu programmieren, ohne Pointer zu verstehen, ist genauso fahrlässig, wie bei C.

Strenggenommen müsste man mit Assembler anfangen, aber naja, dass ist sicherlich Ansichtssache.
 
Sharoz schrieb:
Pointer sind ernorm wichtig zu verstehen. Java zu programmieren, ohne Pointer zu verstehen, ist genauso fahrlässig, wie bei C.

Strenggenommen müsste man mit Assembler anfangen, aber naja, dass ist sicherlich Ansichtssache.
2xQuatsch -- es geht um Informatikuntericht in der Schule, nicht um eiin Studium
 
Also ein paar Kommentare:

- So einen festen "Lehrplan" für Informatik gibt es meines Wissens nicht (ich habe mal ein paar Lehrer gefragt)
- Auch ich halte Delphi für eine schlechte Wahl, und glaube auch, es sagt nichts gutes über den Lehrer
- Lisp ist cool. In der Praxis (fast) vollkommen verschwunden, aber als Lehrsprache immer noch sehr geeignet. Und voll cool, dem Mann bitte von mir einen Gruss bestellen.

PHP finde ich nicht OK, und mit C kann man wenig spannendes machen, wenn man Platform unabhängig lehren will.
Um praktisch zu bleiben halte ich daher Java für ganz geeignet. Aber ich kann mir auch Modula im Unterricht vorstellen.

Oder eben Lisp. Cool :D

Alex
 
Naja, aber man kann ja vernünftig anfangen.
 
PHP ist wirklich nicht so super,

Java würde ich auch gerne mal machen, geht das mit XCode?

Martin
 
Wieso?
1. Woher weiß man was call by reference und call by value sind, wenn man Pointer nicht versteht?

2. Informatik in der Schule ist eher Programmierkurs als Informatik. Sicher ein paar algorithmische Grundlagen bekommt man auch mit, aber es ist halt doch eher nur eine Einführung ins Programmieren.
 
martinibook schrieb:
Naja, aber man kann ja vernünftig anfangen.
wenn das auf mich bezogen war: 100% Zustimmung zu deinem Post, aber:dass es fahrlässig ist Java zu programmieren ohne Pointer zu kennen, bzw. dass man am besten mit Assembler beginnen sollte ist einfach ein Schmarrn
 
Sharoz schrieb:
Wieso?
1. Woher weiß man was call by reference und call by value sind, wenn man Pointer nicht versteht?
wir reden von Java??
Java definiert nur einen Mechanismus, der Wertübergabe (engl. Call by Value) genannt
wird. Der in der Methode definierte Parameter wird als lokale Variable betrach-
tet, die zum Zeitpunkt des Aufrufes mit dem Argument initialisiert ist.
weiter:
Daher ist der Begriff Call-By-Reference, wie er in C++ verwendet wird, in Java
falsch. Das Verhalten, welches Java vorschreibt, gibt es in C++ nicht.
 
Doch, Call by ref. findet in Java zB bei Methodenaufrufen mit Arrays als Argumenten statt. Bei primitiven datentüpen ist jedoch call by value.

Wenn man das nicht weiß, kann man ganz schön viel falsch machen.
Und den Unterschied kann man eben nur mit Pointern erklären.
C++ nimmt einem diese Entscheidung nicht ab. Da muss man selber entscheiden, ob call by ref, oder anders.

Aber wenn man mit Assembler anfängt, weiß man wenigstens wie ein Prozessor funktioniert. inklusive Zeigern und solchen Späßen. OOP bleibt da natürlich außen vor. Funktionale Programmierung ist natürlich noch etwas anderes, da es eher auf mathematischer Ebene arbeitet.
 
Sharoz schrieb:
Doch, Call by ref. findet in Java zB bei Methodenaufrufen mit Arrays als Argumenten statt.

Wie bereits geschrieben worden ist, werden diese Referenzen "by value" übergeben. Versuche einmal, den array-wertigen aktuellen Parameter einer Methode durch Zuweisung nach außen sichtbar zu ändern. Richtig, das wird nichts.
 
madox schrieb:
Sprachen mit Pascal-Syntax sind am aussterben, [...] .. also ...

Darum geht es doch nicht, sondern darum, welche Sprache wie gut geeignet ist, um dem Anfänger die Konzepte imperativer Sprachen zu vermitteln. Da gibt es schon genug Stoff wie grundlegende Datenstrukturen, Zuweisungen, Kontrollstrukturen, Funktionen und Prozeduren zu erklären; ohne daß man gleich beim "Hello world"-Beispiel auf zunächst irrelevante Konzepte wie Klassen, Methoden und Modifier hinweisen muß.
 
dpr schrieb:
Scheint ein motivierter Lehrer zu sein. Funktionale Sprachen haben doch eine gewisse Eleganz, ich bin ja SML-Fan...

die sprache trägt nicht umsonst die kürzel SM im namen ;)
 
Sharoz schrieb:
Pointer sind ernorm wichtig zu verstehen. Java zu programmieren, ohne Pointer zu verstehen, ist genauso fahrlässig, wie bei C.

da java keine pointer hat, braucht man es für java nicht verstehen ;)

Sharoz schrieb:
Strenggenommen müsste man mit Assembler anfangen, aber naja, dass ist sicherlich Ansichtssache.

man fängt doch mit bandmaschinen und automaten an, das sollte reichen ;)
 
martinibook schrieb:
PHP ist wirklich nicht so super,

Java würde ich auch gerne mal machen, geht das mit XCode?

Martin

Java ist sogar integriert.
 
madox schrieb:
Da heute praktisch alle wichtigen Programmiersprachen C-Syntax haben ...

.. würde ich Java empfehlen:
- Plattformunabhängig
- Vollständig Objektorientiert (Nicht wie Delphi..)
- Schöne Sprache ;-)
- Einfach
- Weit verbreitet
- Gratis-Entwicklungsumgebungen wie Eclipse, NetBeans, xCode .. (Im Gegensatz zu Delphi..)

Sprachen mit Pascal-Syntax sind am aussterben, Delphi ist auch am aussterben Es gibt auch Sprachen, die sind tot erfunden!! lol .. also ...

Bis auf die Plattformunabhängigkeit würde ich das bestätigen.

Für Macs gibt es ja bekanntlich Spezialbibliotheken. Wenn man die allerdings geschickt umgeht (d.h. nicht einsetzt), gilt diese Unabhängigkeit weit(est)gehend.

Weiters erspart einem Java die Pointerarithmetiken aus C/C++. Pointer benötigen keine „Arithmetik“, wenn Java sie umgeht. Java verwendet auch Pointer, nur sind die so implementiert, daß sie beim Programmieren kaum auffallen. Speicheradressen, Adresswerte und Adressinhalte werden immer in irgendeiner Form angegeben.

Ein weiteres Plus für Java sind die Konzepte zum sicheren Programmieren. Hierzu gehören:

– KEINE Pointer (Java macht's möglich)
– Exceptions (throw & catch)
– Keine Möglichkeit von Schreib- und Lesezugriffen bei Web-Applikationen (Applets u.ä.)

Wenn es um Namen von Programmiersprachen geht, könnte ich auch noch ein paar „Exoten“ wie Forth oder Logo ins Spiel bringen. Lehrer, die der Ansicht sind, Delphi sei das Nonplusultra an Programmiersprache, gehören an den Pranger und/oder erschossen mit heißem Bullshit.
 
Wolfgang Rausch schrieb:
Bis auf die Plattformunabhängigkeit würde ich das bestätigen.

Für Macs gibt es ja bekanntlich Spezialbibliotheken. Wenn man die allerdings geschickt umgeht (d.h. nicht einsetzt), gilt diese Unabhängigkeit weit(est)gehend.

Da die wenigsten Schulen Macs, sondern Windows und Linux nutzen fällt das wohl kaum ins Gewicht und wenn werden die wenigsten mit genannten Klassen in Berührung kommen.

Wolfgang Rausch schrieb:
Wenn es um Namen von Programmiersprachen geht, könnte ich auch noch ein paar „Exoten“ wie Forth oder Logo ins Spiel bringen. Lehrer, die der Ansicht sind, Delphi sei das Nonplusultra an Programmiersprache, gehören an den Pranger und/oder erschossen mit heißem Bullshit.

Da muss ich Dir recht geben, aber wie ich schon erwähnt habe, die meisten "Informatiklehrer" kennen nichts anderes als Delphi/Turbo Pascal. Es gibt halt wenige, die es richtig studieren und Lehrer werden, die meisten machen "nur" Nachschulungen und Kurse.

Exoten? Wie wäre es mit Smalltalk ;)
 
Zurück
Oben Unten