www.mikrocontroller.net

Forum: PC-Programmierung Welche Programmiersprache für Schüler?

Autor: dibujo (Gast)
Datum: 05.07.2008 08:09

Hallo,
ich weiß, dass es schon mehrere 'Welche Programmiersprache?'-Threads
gibt, und ich habe auch da schon etwas recherchiert. Aber ich denke,
dass meine Frage etwas raushaut.
Kurze Vorrede:
Ich bin Physiklehrer, der auf einem Mac mit Xcode freizeitprogrammiert.
Mit Xcode kann ich auch problemlos C-Code für den ATmega8 programmieren
und brennen. Xcode ist eine Mac-Programmierumgebung, die viele
Programmiersprachen ermöglicht: C, Objective-C, C++, Java, Python, Ruby.
Ich selbst kann ein bisschen C- und Objective-C.
Meine Schüler (Oberstufe) leben in der Windoofs-Welt. Sie wollen einen
Quadrokopter bauen, weshalb sie sich mit der
Mikrocontrollerprogrammierung auseinandersetzen wollen. Ich selbst bin
ihnen da etwa einen Monat voraus, also auch noch Anfänger. Ich schätze,
dass meine Schüler Anfänger- bis Fortgeschrittenen-Erfahrungen in der
Visual-Basic-Programmierung haben. Außerdem können sie (und ich) ein
Roboter-Mikrocontroller-Interface in dessen Basic-Dialekt programmieren.
Sie sind wettbewerbserfahren und haben eine gute 'Frustrationstoleranz'.
Frage 1:
In vielen Forumsbeiträgen wird für Assembler geworben, weil es näher an
der Hardware (bzw. dem Maschinencode?) ist. Nach meinem Umschiffen von
Assembler sowie den C-Programmiererfahrungen, die ich jetzt habe, kann
ich diese Argumentation nicht so recht nachvollziehen, da ich zur
C-Programmierung genauso die Register verwalten muss. Da ich möchte,
dass meine Schüler ihr Abi packen und daher auch nur
Freizeitprogrammierer bleiben, tendiere ich z.Z. dazu, meinen Schülern
die C-Programmierung ans Herz zu legen, weil ich sie da parallel beraten
könnte. Einzige Alternative sehe ich in BASCOM, weil sie hier halt schon
Basic-Erfahrungen einbringen können. Wie seht ihre das?
Frage 2:
Für Steuerungsaufgaben wäre natürlich langfristig eine PC-Programmierung
nett. Nach den Forumsbeiträgen zu urteilen würden die meisten C# bzw.
C++ favorisieren, wo die Schüler ihre (dann schon vorhandenen)
C-Kenntnisse einbringen könnten. Alternative wegen Basic-Erfahrung:
Visual-Basic. Da ich annehme, dass die Schüler nach dem Abitur in Sachen
'Programmierung & Technik' weiter machen und studieren werden, wäre auch
hier eine längerfristige Lösung wichtig, und nicht nur ein möglichst
schnelles Ergebnis. Zum Zweiten: Wie seht ihr das?
Vielen Dank für Eure, hoffentlich klärenden Beiträge. Berücksichtigt
dabei bitte auch, dass ich sie beraten möchte. Also bitte keine schrägen
Individual-Empfehlungen abseits der hier genannten Programmiersprachen,
außer natürlich es macht wirklich absolut Sinn.
dibujo
Autor: hellboy (Gast)
Datum: 05.07.2008 11:48

An der der FH wo ich studiere wird im ersten und zweiten jahr alles in c
und oder c++ unterrichtet .....

also wäre es von dem standpunkt her nicht völlig falsch;)

 ASM halte ich für übertrieben! Die systeme sind mitlerweile alle so
leistungsfähig das das meiner ansicht nach nicht nötig ist! Sollte man
sehr sehr sehr zeit kritische Routienen brauchen so kann man diese in
ASM noch in das c programm einbinden.... und für den pc ist asm eh
schwachsinnig.... Ich denke es wäre sinnvoll mit einem kleinen Projekt
anzufangen;) direkt an so ein riesen projekt dran ist denke ich
aussichtslos
Autor: Jonny Obivan (-geo-)
Datum: 05.07.2008 12:05

Ich würde auch für c plädieren. Bei mir an der Hochschule war das damals
auch die Standardsprache für solche Zwecke. Wir haben nur c und c++
programmiert. Mit c kann man wirklich nichts falsch machen und die Kids
lernen was Vernünftiges.

Ich finde die Sprache c für die µC Programmierung auch nicht besonders
schwer. Wenn es an die Windowsprogrammierung geht, gibts allerdings
einfachere Sprachen als C++.

Grüße
Jonny
Autor: Randy (Gast)
Datum: 05.07.2008 12:13

> Mit Xcode kann ich auch problemlos C-Code für den ATmega8
> programmieren und brennen.

C ist auch die Standardsprache für Mikrocontoller. Andere Sprachen gibts
normal nicht. Dass es für den AVR auch Bascom und ein Pascal Derivat
gibt ist eher Hobbyprogrammierern zu verdanken. Für Typen die nur in der
Industrie benutzt werden gibt i.a. vom Hersteller einen C-Compiler und
das wars.

> In vielen Forumsbeiträgen wird für Assembler geworben, weil es näher an
> der Hardware (bzw. dem Maschinencode?) ist. Nach meinem Umschiffen von
> Assembler sowie den C-Programmiererfahrungen, die ich jetzt habe, kann
> ich diese Argumentation nicht so recht nachvollziehen,

Mit Assembler kann man evtl. und auch nur vielleicht mal da und dort ein
Byte sparen, aber wenn man kein kostensensitives Produkt in
Millionenstückzahl produziert wird in der Industrie in C programmiert.
-> Der Mehraufwand


> die C-Programmierung ans Herz zu legen, weil ich sie da parallel
> beraten könnte. Einzige Alternative sehe ich in BASCOM, weil sie hier
> halt schon Basic-Erfahrungen einbringen können.

Ich würde die Bedeutung der Programmiersprache nicht überschätzen. Es
ist doch so dass es für jedes Konstrukt in Basic ein Entsprechendes in C
oder Pascal (oder in jeder anderen prozedurorientieren Sprache, den
ganzen "Algol68"-Ähnlichen) gibt, wahrscheinlich sogar 1:1. Nur die
Syntax ist ein wenig anders. Aber da - denke ich - werden die Schüler
sich recht schnell umstellen können.
Das beste Beispiel dafür ist noch Borlad C++. Die hatten ihr Borland
Delphi (ein Pascal mit OO-Erweiterungen) zuerst draussen, und als sie
gesehen habe dass der Markt aber auch C++ will, haben sie ihre C++-IDE
gestrikt indem sie ihrer IDE einen C++-zu-Delphi-Preprocessor
drangeklatscht haben. Der hat nur die Sytax umgestellt, alle Konstrukte
und Programmierideen haben 1:1 in beiden Sprachen funktioniert.
(Deswegen hasse ich auch alle Basic vs. C vs. Pascal Diskussionen, die
Sprachen sind genau gleich, nur mit leicht abgewandelter Syntax)

Viel wichtiger und kritischer sehe ich die "Programmierumgebung", d.h.
dass man den Compiler mitsamt der meist vorhandenen IDE (intgrated
development environment, d.h. das ganze Fenster-Zeug und Klinki-Bunti
drumrum) und das Programmierkabel im Griff hat. Dass man z.B. weiß wenn
dieser oder jene seltsame Fehler auftaucht, woran das liegt ("aah, das
Problem hatte ich schon mal, da muß noch dieses Verzeichis in den Pfad
oder die Zeile in das Makefile oder ..."). Weil das kann ewig viel Zeit
kosten. Eigentlich würde ich raten die selbe Programmierumgebung im
Unterricht zu benutzen die du schon von deinem Privatrechner kennst,
aber die Schule hat wahrscheinlich keine Macs. Gibts das "Xcode" auch
für das OS das die Rechner an der Schule haben?
Ansonsten musst du dich an das Forum hier halten wenns mit WinAVR oder
dem AVR-Studio Probleme gibt.

HTH
Randy
Autor: Ich (Gast)
Datum: 05.07.2008 12:41

Asssembler, denn mit allem anderen lernt man die Grundlagen nicht und
kann deshalb nicht effizient proggen. Schön wäre es auch, wenn mal
jemand nen vollständigen Befehlssatz (so wie die kurze AVR-Asm Referenz,
die ist extrem super) vom 80x86 mit allen Erweiterungen (MMX, Pentium X,
SSE etc.) veröffentlichen würde, denn sonst muss man sich den Kram alles
im Internet zusammensuchen. Ausserdem ist ASM sehr praktisch um
willentlich und unwillentliche Bugs zu entfernen :)
Autor: Fred (Gast)
Datum: 05.07.2008 12:45

> Ausserdem ist ASM sehr praktisch um
> willentlich und unwillentliche Bugs zu entfernen :)

Programme entdongeln ?

Gruß Fred :)
Autor: Me (Gast)
Datum: 05.07.2008 12:50

Das ist kompletter Unsinn. Man braucht keines Wegs Assembler zu lernen
um effizient programmieren zu können. C ist maschinennah genug um damit
sehr effizient zu programmieren. Will man sein Leben angenehm gestalten
ist auch C++ sehr gut geeignet. Entgegen vieler Meinungen hier kann man
auch wunderbar C++ als erste Programmiersprache lernen. C++ ist zwar
viel komplexer als etwa C, BASIC oder Pascal, aber von der Komplexität
sieht man am Anfang nicht viel. Man fängt ja nicht gleich mit templates
und Polymorphie an.
Autor: G. Bremer (picoli)
Datum: 05.07.2008 13:15

Ich denke auch, dass die Programmierumgebung nicht vernachlässigt werden
sollte.

Gerade Anfängern vergeht häufig schon die Lust am Programmieren, bevor
sie das System überhaupt zum Laufen gebracht haben.

Mit C bzw. C++ kann man nichts falsch machen. Selbst wenn man später
Visual Basic oder Delphi oder Java nutzen möchte, fällt dies mit C
Kentnissen wesentlicher einfacher.

Darum möchte ich an dieser Stelle Anfängern, die einen Einblick in die
professionelle Programmentwicklung bekommen möchten, noch einmal auf die
Seite http://www.haiq.info hinweisen.

Dort wird als erstes in 3 Stufen die komplette Programmierumgebung mit
den OpenSource Paketen von Trolltech (Qt4), dem OpenSource Compiler
MinGW, sowie der OpenSource IDE (HaiQ) installiert.

Danach geht es direkt in die Programmierung (10 Lektionen, learning by
doing). Und zwar unabhängig von Microsoft (für alle gängigen
Betriebssysteme geeignet).

Ich würde einem Anfänger, aus eigener Erfahrung, auch nicht empfehlen,
vorher dicke Lehrbücher zu studieren. Am Anfang ist das Problem, dass
man das Wesentliche noch nicht vom Unwesentlichen unterscheiden kann und
somit gezwungen ist, sich alle reinzuziehen, was am Anfang mehr
verwirrend denn hilfreich ist.

Nach dem Lehrgang sind die Leute jedenfalls so weit, dass sie einen
umfassenden Einblick in die graphische C bzw. C++ Entwicklung erworben
haben, um selbst entscheiden zu können, wie (und ob überhaupt) sie damit
weitermachen wollen. Dann können sie auch den Ausführungen in
Lehrbüchern folgen und haben schon mal eine 'bildliche' Vorstellung
davon, was jene seltsamen Begriffe und Abkürzungen und ... und ... und
... überhaupt bedeuten.

Und laßt Euch nicht von den 'Profis' verrückt machen. So schwer, wie die
es oft machen, ist Programmieren gar nicht. Man muß nur den richtigen
Einstieg finden, um nicht schon zu Beginn den Spaß daran zu verlieren.

In diesem Sinne ... good coding ...
Autor: Fred (Gast)
Datum: 05.07.2008 13:35

Habe mit Basic angefangen, danach mit asm, damit konnte man
Sachen machen, die mit Basic nicht gingen! (25 Jahre her)!

Hatte danach einen Abstecher zu Pascal, und bin wieder bei
Basic (Visual-Basic, Bascom) und asm gelandet!

Ich behaupte, mit dieser Kombination kann man (nicht unbedingt ich)
alles, was aus dem C Lager kommt, bezüglich Entwicklungszeit und
Programmausführungsgeschwindigkeit in den Schatten stellen!

Es gibt aber auch Nachteile:

Basic wird selten (gar nicht) an Hochschulen gelehrt, dadurch sind
nur wenige gute Quelltexte im Internet verfügbar.

siehe

http://nehe.gamedev.net/

dort fehlen zu einigen Lektionen die Basic Quellen

Da die meisten der proffessionellen Progs in C programmieren
und Basic nicht verstehen wollen, halten sich hartnäckig
die Vorurteile: Basic ist langsam, hat einen großen Footprint,
keine Zeiger, keine Datenfelder, keine Vererbung .....
Diese Aufzählung lässt sich beliebig erweitern.

Nochmal an alle C-Leute DEM IST NICHT SO.

Basic hat noch ein Nachteil:
Man wird als Anfänger nicht zum struktuierten Programmierung
gezwungen. Dieser Nachteil kann sich aber später zu einem
riesen Vorteil wandeln! Nämlich dann, wenn die C-Leute
komplette Klassenstrukturen durch den Ram ziehen und sich
wundern, dass ihr Programm nicht unter einem GByte Hauptspeicher
läuft! (das war jetzt übertrieben aber beschreibt trotzdem
das Grundproblem)

so zum Schluß:

Jede Hochsprache hat Vor- und Nachteile, darum haben alle
ihre Berechtigung! Wer das Geklammer in C bzw. in Pascal
mag, soll es tun.

Anmerkung:

Kann C und Pascal Quellen lesen möchte aber nicht in diesem Stil
programieren müssen!

Fred
Autor: Frank Esselbach (Firma Q3) (qualidat)
Datum: 05.07.2008 13:52

Wenn ihr schon eine gewisse Basic-Affinität habt, dann schau dir mal
RealBasic an!

http://www.application-systems.de/realbasic/

Das gibts für Mac, Windows und Linux in identischen Versionen und man
kann auf jeder Plattform auch für die jeweils anderen lauffähige
Programme compilieren. Fertige Programme benötigen keine Installation
und bestehen nur aus einer einzigen Datei, es ist keine extra
Laufzeitumgebung oder RuntimeLib nötig. Das bietet so m.E. z.Zt. keine
andere IDE.

Damit kann man natürlich nicht für Mikrocontroller programmieren, aber
für Desktop und Notebook.

Und bevor alle die, die Basic nicht mögen (ist jedem selber überlassen),
wieder "Buh" und "Bäh" rufen: RB ist ein modernes, objektorientiertes
System mit Klassen, Methoden und Funktionen. Man kann eigene Klassen
erstellen oder von vorhandenen ableite und erweitern.

Es gibt praktisch Nichts, was nicht geht, z.B. Netzwerk-, Internet und
Multimedia, Grafik (Pixel und Vektor), Datenbankzugriffe (MySQL, Oracle,
Postgre, OpenSQL, SQLLite, ODBC ...), PDF erstellen/lesen,
Systemzugriffe (die schränken dann antürlich die Plattformunabhängigkeit
ein), Schnittstellen (seriell, parallel, USB), Drucken usw.

Ich mache seit ca. 5 Jahren große kommerzielle Projekte mit Realbasic
und habe es bisher nicht bereut.

Frank
Autor: I_ H. (i_h)
Datum: 05.07.2008 13:58

Ich hab das früher ähnlich gemacht. Lange Zeit Basic und dann Assembler
dazu (erst über CALL ABSOLUTE, später dann über libs). War auch immer
der Meinung, dass man C/C++ einfach nicht braucht.

Irgendwann bin ich dann doch umgestiegen und bin heute der Meinung, dass
Basic (inzw. Visual Basic) zwar ganz nett für kleine Sachen ist, sonst
aber nix taugt.
In einer Schule ist es wahrscheinlich wirklich gut aufgehoben, aber
später bei richtigen Projekten wird man (eigentlich zurecht) ausgelacht,
wenn man mit Basic ankommt.
Autor: Frank Esselbach (Firma Q3) (qualidat)
Datum: 05.07.2008 14:07

Hallo,

> In einer Schule ist es wahrscheinlich wirklich gut aufgehoben, aber
> später bei richtigen Projekten wird man (eigentlich zurecht) ausgelacht,
> wenn man mit Basic ankommt.

Ich will nicht bestreiten, dass es so ist. Ist am Ende auch jedem seine
Sache. Mich würde aber mal interssieren, warum das so ist. Ich vermute,
dass die meisten heutigen Basic-Gegner auf ihrem Kenntnisstand von MS-
bzw. QBASIC o.ä. stehengeblieben sind - dann hätten sie natürlich recht.

Irgendwie scheinen nur wenige zur Kenntnis zu nehmen wollen, dass auch
Basic-Dialekte weiterentwickelt werden. Und ob ich nun "if ... then ...
end if" schreibe oder das Ganze in geschweifte Klammern, ist nun sowas
von egal.

Frank
Autor: ZehPlusPlus (Gast)
Datum: 05.07.2008 14:10

Ob sich BASIC nun weiter entwickelt oder nicht, BASIC ist und bleibt ein
Beginners All-purpose Symbolic Instruction Code - eine reine
Anfänger-Programmiersprache.
Autor: Fred (Gast)
Datum: 05.07.2008 14:16

> ZehPlusPlus

da schon wieder einer der keine Ahnung hat!

Fred
Autor: ZehPlusPlus (Gast)
Datum: 05.07.2008 14:17

> Fred

da schon wieder einer der keine Ahnung hat!

ZehPlusPlus
Autor: Fred (Gast)
Datum: 05.07.2008 14:20

@ZehPlusPlus

ich wette das Du nicht mal weißt was ein UDT ist!

Gruß Fred
Autor: ZehPlusPlus (Gast)
Datum: 05.07.2008 14:22

Kommt auf den Zusammenhang drauf an.
Autor: Fred (Gast)
Datum: 05.07.2008 14:25

@ZehPlusPlus

siehste, aber jeder Basic Programmierer weiß
dass ein UDT eine Struktur in C ist!

Fred :]
Autor: I_ H. (i_h)
Datum: 05.07.2008 14:25

Hat denn BASIC Versionskontrollsysteme (hmm... hässliche Übersetzung)
ala CVS oder Subversion? Wie schaut es mit fertigen Make-Skripts aus?
Wenn ich ein großes Projekt hab will ich nicht jedesmal alles neu
übersetzen müssen. Ist es möglich mit mehreren Leuten gleichzeitig
weiterzuarbeiten?

Das allein zur Umgebung - die Sprache selbst erlaubt afair keine
ordentliche Trennung bei großen Projekten. Selbst bei C++ hat man
festgestellt, dass das noch etwas mangelhaft ist - und Namespaces
eingeführt, zusätzlich zu all den Mechanismen die C und C++ ohnehin
schon bieten.
Header sind in C/C++ auch ein enormer Vorteil, Java hat Packages, und so
hat jede größere Sprache ihre Mechanismen große Projekte zu kapseln. Hat
Basic sowas?
Denk mal an den Linux Kernel. Ich hab da eben mal sloccount drübergejagt
(Programm das Codezeilen zählt und Sprachen zuordnet, dabei werden
doppelte Sachen ausgefiltert und Leerzeilen, Kommentare etc. auch
weggelassen).
Das Ding enthält 5 Mio. Codezeilen, aber jedes Modul etc. für sich sieht
nur einen klitzekleinen Teil davon. Mach sowas mal mit Basic.

Multithreading ist mit Basic auch ein Problem (hat sich da mit .net was
verbessert? Bei VS 6 würd ich sagen da gibt's kein Problem - es
existiert einfach nicht).
Autor: ZehPlusPlus (Gast)
Datum: 05.07.2008 14:29

@Fred:
Ach komm, was soll das getrolle? Die Abk. UDT hat viele Bedeutungen (->
Google). Woher soll ich wissen, was du meinst?
Autor: Frank Esselbach (Firma Q3) (qualidat)
Datum: 05.07.2008 14:41

> Hat denn BASIC Versionskontrollsysteme (hmm... hässliche Übersetzung)
> ala CVS oder Subversion?

RealBasic speichert seine Quellcodes als XML und kann deshalb mit CVS
verwaltet werden.

> Wenn ich ein großes Projekt hab will ich nicht jedesmal alles neu
> übersetzen müssen.

Das Übersetzten selbst großer Projekte (z.B. 2 MB Quellcode) dauert nur
Sekunden, ist egal ...

>Ist es möglich mit mehreren Leuten gleichzeitig
> weiterzuarbeiten?

Man kann Codesegmente als externe Module oder Klassen irgendwo im Netz
ablegen. Dann können verschiedene Leute daran arbeiten.

> Das allein zur Umgebung - die Sprache selbst erlaubt afair keine
> ordentliche Trennung bei großen Projekten.

s.O., nach der OO-Methode, z.B.

main.ok=DB_Zugriff.open(User.loginData)

wobei z.B. DB_Zugriff ein in sich geschlossenes Modul sein kann, main.ok
eine boolesche Variable des Fensters main und user.logindata eine
Eigenschaft des Objektes User ...

> Multithreading ist mit Basic auch ein Problem (hat sich da mit .net was
> verbessert? Bei VS 6 würd ich sagen da gibt's kein Problem - es
> existiert einfach nicht).

RB kann Threads, ohne NET auf allen 3 Plattformen.

Frank
Autor: Hä? (Gast)
Datum: 05.07.2008 14:47

> > Hat denn BASIC Versionskontrollsysteme (hmm... hässliche Übersetzung)
> > ala CVS oder Subversion?
>
> RealBasic speichert seine Quellcodes als XML und kann deshalb mit CVS
> verwaltet werden.

Heißt das, man kann den Quelltext nicht mit jedem beliebigen Texteditor
bearbeiten?
Autor: Frank Esselbach (Firma Q3) (qualidat)
Datum: 05.07.2008 14:53

Man kann wählen bzw. voreinstellen, zwischen

- einem eigenen komprimierten Format (Standard)
- XML
- nur Text

Beim Laden wird das Format automatisch erkannt.

Frank
Autor: Simon K. (simon) Benutzerseite
Datum: 05.07.2008 14:55

Also als "Anfänger" einen Quadrokopter bauen zu wollen halte ich für
sehr mutig. Ich hab mich mal ein bisschen hereingelesen, was alles
gebraucht wird an Bauteilen und vor allem Algorithmen, holla die
Waldfee!
Autor: I_ H. (i_h)
Datum: 05.07.2008 14:56

Das meiste davon hört sich eher nach Verlegenheitslösung an.

Frank Esselbach wrote:
> RealBasic speichert seine Quellcodes als XML und kann deshalb mit CVS
> verwaltet werden.

Kann Visual Basic das auch? Ist Quellcode zwischen den beiden
austauschbar? Wie schon gefragt wurde - lässt sich Realbasic Code auch
mit anderen Editoren öffnen?

Selbst in visual studio c/c++ kann ich mir aussuchen welchen Compiler
ich heute nehmen will - bin also unabhängig. Geht das auch bei Basic?

>> Wenn ich ein großes Projekt hab will ich nicht jedesmal alles neu
>> übersetzen müssen.
>
> Das Übersetzten selbst großer Projekte (z.B. 2 MB Quellcode) dauert nur
> Sekunden, ist egal ...

Nein, ist es nicht. Der Linux Kernel ist gepackt (!) schon ~40MB groß,
entpackt ist meiner 500MB. Wie sieht es da aus?
Der Kernel ist übrigens gemessen am Gesamtsystem eine eher kleine, aber
sehr komplizierte Komponente. Gegen zB. KDE ist der Linux Kernel ein
Winzling.

Noch vergessen: Gibt es alternative Compiler?

>>Ist es möglich mit mehreren Leuten gleichzeitig
>> weiterzuarbeiten?
>
> Man kann Codesegmente als externe Module oder Klassen irgendwo im Netz
> ablegen. Dann können verschiedene Leute daran arbeiten.

Das meinte ich nicht. Gibt es Möglichkeiten für alle Entwickler
einsehbar bestimmte Sachen zu sperren, damit solang niemand anders an
der selben Sache weiterentwickelt?
Für sowas braucht es eigentlich ein ausgewachsenes
Versionskontrollsystem.

>> Das allein zur Umgebung - die Sprache selbst erlaubt afair keine
>> ordentliche Trennung bei großen Projekten.
>
> s.O., nach der OO-Methode, z.B.
>
> main.ok=DB_Zugriff.open(User.loginData)
>
> wobei z.B. DB_Zugriff ein in sich geschlossenes Modul sein kann, main.ok
> eine boolesche Variable des Fensters main und user.logindata eine
> Eigenschaft des Objektes User ...

Das ist keine ordentliche Trennung. Im Namespace hast du nach wie vor
alle Module etc. rumfliegen. Wie gesagt, sowas kann C, C++, Java, etc.
auch - und weil es nicht reicht kennen die alle noch weitergehende
Konzepte.
Man könnte es zwar auch einzig und allein über Module machen, aber man
könnte auch alles in Assembler entwickeln.

>> Multithreading ist mit Basic auch ein Problem (hat sich da mit .net was
>> verbessert? Bei VS 6 würd ich sagen da gibt's kein Problem - es
>> existiert einfach nicht).
>
> RB kann Threads, ohne NET auf allen 3 Plattformen.

Gibt es dafür gute Debugger? Wie sieht es mit Interthreadkommunikation
aus?



Wie gesagt - schaut alles nach Verlegenheitslösung aus. Klar
funktioniert das für einen Hobbyprogrammierer, da funktioniert das
mitunter sogar besser als eine ausgewachsene Lösung, weil man auch ohne
lange Einarbeitungszeit damit klarkommt.
Aber bei größeren Sachen stößt man schnell an Grenzen.
Autor: Nico Erfurth (masta79)
Datum: 05.07.2008 15:15

Also ich würde einfach C einführen. Das ist in dem Bereich einfach der
Standard. Ein wenig ASM am Rande hat aber sicher noch niemandem
geschadet. Das fördert häufig das Verständniss für die internen Abläufe.
Als Entwicklungs-Umgebung auf jeden Fall AVR-Studio+WinAVR, damit können
die auch zuhause problemlos arbeiten. Und dank GCC kann dann auch jeder
die Plattform nutzen die er gerne hätte (Windoof, Mac, Linux,
wasauchimmer)

Wichtiger als die Programmiersprache finde ich aber das die Schüler
lernen die Hardware und ihre Abläufe zu verstehen. Ausserdem sollten sie
dabei auch lernen strukturiert zu arbeiten und sich vorher ein paar
Gedanken zu machen bevor zu drauf loshacken. ;)
Autor: tim (Gast)
Datum: 06.07.2008 14:20

Also ich habe an der Schule und an der Hochschule am Anfang zunächst
immer Assembler gelernt, keine großartigen optimierten Programme, aber
z.B. eine etwas schwierigere Aufgabe "wie kann man eine Multiplikation
zweier Binärzahlen lösen wenn es keine Multiplikationsbefehl gibt" Oder
wie wird ein Unterprogramm geschrieben (Sprungbefehle). Ich finde das
sehr wichtig, dass man Assembler-Grundzüge lernt, denn wenn man später
mal Fehler im C-Code suchen muss, dann kann es passieren dass man wieder
auf der Assemblerebene landet.
Nach jeweils einem Semester bzw. Schuljahr wurde dann C eingeführt, da
kamen dann auch mal komplexere Sachen, LCD ansteuern,
RS232-Kommunikation, I2C-Bus, SPI-Schnittstelle.
Autor: (=^. .^=)ミャー (Gast)
Datum: 06.07.2008 21:53

(Wir haben in der Schule Common LISP und in der Uni Scheme gelernt)

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net