Welche Sprache für Programmier-Einsteiger?

Hallo,

ich würde gern einen kleinen Onlinekurs „Programmieren für Anfänger“ erstellen. Wenn ich nun erkläre, was Variablen, Steuerstrukturen und Schleifen sind, ist das sicher recht langweilig, wenn man es nicht selbst ausprobieren kann.

Welche Sprache sollte man nehmen, um so etwas dann auch praktisch erproben zu können? Es sollte etwas sein, dass es kostenfrei für jeden zum Download gibt. Außerdem sollte es leicht installierbar und bedienbar sein.

Ich dachte im ersten Anlauf an einen Freeware HTML-Editor, mit dem dann einfache Beispiele in Javascript gemacht werden können. Vielleicht kennt aber jemand noch etwas besseres oder einfacheres.

Gruß
Marian

Hallo

Nimm doch c# oder java.
Es sind beide moderne und objektorientierte programmiersprachen.

c#/net dürfte meiner meinung nach für windows anwender einfacher zu installieren als java.

tools und weitere infos gibts hier:
http://www.wer-weiss-was.de/cgi-bin/forum/showarchiv…

gruss

Hallo

Nimm doch c# oder java.

Hi,

genau Java eignet sich hervorragend. Es gibt für Beginner das Projekt Kara… Hier mal ein Beispiellehrgang http://www.oberstufeninformatik.de/info11/javakara.html

Ciao

Ein Pascal-Dialekt ist da wohl eher die Sprache…
…der Wahl.

Nimm am besten Pascal, Modula, Ada oder eine andere ähnlich aufgebaute Sprache.

Diese Sprache ist für Anfänger viel besser geeignet, da Schleifenstrukturen viel klarer sind, die Deklaration von Objekten und Variablen expliziter.

Sprachen wie C++(C#) oder Java sind eher ungeeignet, da durch die Syntax die Programme gerade für Anfänger schwerer zu lesen sind. Durch die (programmiertechnisch nicht gerade rühmlichen) Fähigkeiten von C (und somit auch von Java) werden Anfänger eher verwirrt (z.B. Die Deklaration einer Variablen mitten im Quelltext mit gleichzeitiger Zuweisung oder aber die tollen Abkürzungen x+=*(y++)–)

Ich Programmiere selbst unter anderem in C++ und Java, also in der praktischen Anwendung sind die Sprachen (insbesondere durch die breite Verfügbarkeit von Biblioteken und Klassen) nicht übel, aber wenn die Anfänger wirklich verstehen sollen, was sie machen, dann sind diese Sprachen eher ungeeignet…

Ralph

P.S. Die Idee stammt übrigens nicht von mir, sondern von meinem Informatik-Professor, der letztens noch in einer Diskussion verkündete, dass er in der alljährlichen Anfängervorlesung wieder von Java auf Modula umschwenken will, da diese einfach für die Lehre viel mehr bietet…

P.P.S.: Es gibt natürlich auch in diesem Forum (da mache ich mir gar keine Illusionen :wink: Leute, die jetzt gegen meine Anwort wettern, aber die sollen mir erst mal den Unterschied zwischen ADT, ADO und Objekt in Java erklären :wink:))

Hallo Ralph,

P.S. Die Idee stammt übrigens nicht von mir, sondern von
meinem Informatik-Professor, der letztens noch in einer
Diskussion verkündete, dass er in der alljährlichen
Anfängervorlesung wieder von Java auf Modula umschwenken will,
da diese einfach für die Lehre viel mehr bietet…

PASCAL und die Weiterentwicklung MODULA, wurde von N. Wirth nach rein didaktischen Geschichtspunkten entworfen. Das Problem damit war, dass sie in den Schulbereich gehört und in der Praxis einige (z.B. variable Parameteranzahl gab es in PASCAL nur für System-Funktionen [WRITE(…)] aber nicht für den Programmierer) Probleme verursachten.
Die Studenten waren meist zu Faul eine weitere Programmiersprache zu lernen und deshalb wurde damals so viel in PASCAL geschrieben.

MfG Peter(TOO)

ich würde gern einen kleinen Onlinekurs „Programmieren für
Anfänger“ erstellen. Wenn ich nun erkläre, was Variablen,
Steuerstrukturen und Schleifen sind, ist das sicher recht
langweilig, wenn man es nicht selbst ausprobieren kann.

um diese dinge zu erklaeren, waere wohl eine interpretersprache wirklich das beste, bei allem anderen hast du mehr dinge um das kreative schreiben herum, und brauchst zuviel vorkenntnisse, bevor du ein "hello world " siehst…

um den gedanken weiterzuverfolgen:
mit js bist du an den browser gebunden, und fehlerbehandlung ist ein bissel doof fuer nen anfaenger.
deshalb sag ich mal ganz ketzerisch „perl“. mit cygwin auch auf windows keine geheimnis.
und man ganz vielfaeltige probleme betrachten, die guten duerfen aufgaben mit regexp loesen.
wenn du natuerlich auf objekte ingehen wolltest waere das wohl nicht die erste wahl…

PASCAL und die Weiterentwicklung MODULA, wurde von N. Wirth
nach rein didaktischen Geschichtspunkten entworfen.

Ja genau, unter rein didaktischen Gesichtspunkten. Genau das ist, was die Sprache machen soll. Leuten das Programmieren beibringen. Dass die Leute, wenn sie einmal programmieren können, Methoden überladen wollen und dafür dann lieber C nehmen, ist dann auch egal, sie sollten aber vorher wissen, wie denn das auch funktioniert.

Ralph

Hehe…
Du bist aber gemein. :smile:
Dann sehen die Leute ein Perl-Programm und glauben, Sie müssten nur auf den Sondertasten der Tastatur rummhämmern und hätten ein Programm :wink:

Ralph

naja, man kann ja dann lustige fragerunden veranstalten, welches konstrukt vorliegt :smile:
ist bestimmt gut fuer code-lesen-lernen :smile:)

Welche Sprache sollte man nehmen, um so etwas dann auch
praktisch erproben zu können? Es sollte etwas sein, dass es
kostenfrei für jeden zum Download gibt. Außerdem sollte es
leicht installierbar und bedienbar sein.

Kommt auch darauf an welche Programmiersprachen Du selbst beherschst.
Java ist auf jeden Fall frei verfügbar, ebenfalls freie Entwicklungsumgebungen wie netbeans und eclipse.

Bringt auf jeden Fall nix einen Online Java Kurs zu basteln, wenn man selbst nur Pascal spricht.

Danke für die Vorschläge.

Es wird wohl Dev-Pascal (Bloodshed-Software) in Verbindung mit Free-Pascal werden. Ist nicht allzu groß (8 MB) leicht zu installieren und leicht bedienbar. Außerdem alles kostenfrei zu bekommen.

Im Prinzip könnte ich natürlich auch Java nehmen, aber Netbeans ist auf den meisten Rechnern zu langsam. Es geht ja nur darum, den Leuten zu erklären was eine Variable ist und wie man eine Schleife (while oder for) aufbaut.

Gruß
Marian

Moin Marian,

ich wundere mich, daß niemand „VBA“ gesagt hat! Gut, jeder denkt erstmal an das, was er/sie oft nutzt und findet es am besten, und so ist es sicher auch bei mir. Aber VBA ist zum Anfangen wirklich super geeignet, finde ich. Begründung:

  • VBA ist als VB-Derivat sehr schön einfach. Es heisst nicht ohne Grund „Visual Basic“.
  • VBA ist unkompliziert, bildet aber alles ab, was man für den Start in eine Programmiersprache benötigt, angefangen von Deklarationstechniken über Datentypen und -strukturen bis hin zu Funktionen und Objektorientierung.
  • Man hat es in jedem Office-Paket, und das hat nun wirklich fast jeder.
  • Man hat einen sehr guten Editor.
  • Man hat z.T. gute Online-Hilfen (lokal).
  • Man hat sehr schnell Erfolgserlebnisse.
  • Der Makro-Rekorder ist ein wunderbares Werkzeug, um Dingen auf die Spur zu kommen, die man noch nicht hinbekommen hat.
  • Es ist etwas, was man auch im „täglichen Leben“ mit Word, Excel und Co. gut gebrauchen kann.

Also ICH würde VBA nehmen :wink:

Kristian

PS: JS ist auch gut, weil es in jedem Browser vorhanden ist. Nachteil ist, daß man erst mal einen guten Editor braucht, der wenigstens Syntax hervorhebt (der Windows-MSE (MSE.EXE) macht´s auch nicht, glaube ich, eignet sich aber sehr gut für HTML!), und zweitens ist man durch diverse Restriktionen nicht so richtig flexibel, auch was Anwendungen angeht. Man muss erstmal verstehen, wie es in den Browser integriert ist, welchen Zweck es verfolgt und so weiter. Außerdem sind Syntax und Nomenklatur nicht unbedingt besser für Anfänger geeignet als die von VBA, finde ich.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich würde 'mal einen Blick auf Python werfen: www.python.org
Vorteile: Umsonst, auf allen gängigen Plattformen verfügbar, objektorientiert, very high level, interaktiv, Entwicklungsumgebung (IDLE) und reichlich Dokumentation (nur in Englisch) im Lieferumfang, dynamisch typisiert, viele Bibliotheksmodule (beispielsweise POP-Mailbox lesen)

Nachteile: Die besten Bücher nur in Englisch, ruft bei nicht vielen Leuten ein „Aha“-Erlebnis hervor, viele Syntaxfehler werden erst zur Laufzeit bemerkt, Einrückung bestimmt Programmstruktur

Vorteile gegenüber Free Pascal: keine separater Compiler-Lauf, keine Notwendigkeit, Deklarationen zu erklären

Beispiel für größten gemeinsamen Teiler (oben die Funktion, unten zwei Aufrufe davon, die durchgeführt werden, wenn man direkt python ggt.py aufruf)

def ggt(a, b):
 while 1:
 rest = a % b
 a, b = b, rest
 if rest==0:
 break
 return a

if \_\_name\_\_ == "\_\_main\_\_":
 print ggt(127, 5)
 print ggt(30, 12)