Kurs Diskussion:FreeBASIC

Aus Wikiversity
Zur Navigation springen Zur Suche springen

Mögliche weitere (Lern-)Ressourcen[Bearbeiten]

Wir sammeln... (Vorteile, Nachteile, Sonstiges)[Bearbeiten]

Vorteile von FreeBASIC[Bearbeiten]

  • Die Kommentarblock-Zeichen existieren erst seit FreeBASIC v0.16s. (Quelle)

Nachteile von FreeBASIC[Bearbeiten]

  • Der Befehlssatz ist inkonsitent. Beispielsweise lässt sich ein Grafisches Ausgabefenster sehr leicht mit SCREEN erstellen, um mit (mit heißt nicht in) diesem Fenster zu arbeiten oder ein zweites zu öffnen muss man jedoch "von vorne" Anfangen und wie in jeder anderen Programmiersprache die API direkt oder entsprechende Bibliotheken nutzen. Solche Inkonsitenzen verleiten besonders Anfänger zu Übermut, denn "ein Fenster war aber doch ganz einfach".
  • Hindernisse in der Benutzung. Teilweise bietet die Sprache Features an, die nicht fehlerfrei implementiert sind (teilweise mit Hinweis per Warning aus dem Compiler), Fehler des Compilers sind oft schwer zu interpretieren und geben lediglich die Klasse des Fehlers und eine Zeilenangabe ohne weitere Hinweise an und die interne Implementierung von Strings weicht von der Standard-Implementierung als Nullterminiertes Bytearray ab was die Kommunikation mit externen Bibliotheken erschwert, als Korrektur wurden drei verschiedene Stringtypen eingeführt die jeweils anders zu benutzen sind.
  • Die Sprachstruktur bzw das Abstraktionslevel ist veraltet. FreeBASIC versucht den Schritt vom "32bit-QBasic" zu einer eigenen Programmiersprache, infolge des Ursprungs existiert ("noch") keine Objektorientierung, man muss stattdessen mit structs und Pointern auskommen, der Compiler arbeitet nicht case-sensitive, switch-Blöcke (bzw. select case) entsprechen nicht dem Standard, sie lassen die Ausführung mehrer Blöcke nicht zu und garantieren keinen direkten Sprung.

Hinweise von MisterD im deutschen FB-IRC Channel... --Michael Reschke 23:55, 20. Jul. 2008 (CEST)

Was sonst noch zu sagen ist[Bearbeiten]

Kommentar(e)[Bearbeiten]

Kommentare bitte unterhalb dieses Abschnitts. --Michael Reschke 01:05, 4. Jul. 2008 (CEST)

Die FreeBASIC-Konzeption des Kurses[Bearbeiten]

Aus gegebenem Anlass (Diskussion im FreeBASIC-Channel) mal die (meine) FreeBASIC-Konzeption des Kurses:

Es geht um so etwas wie eine Informatik-Frühförderung für Schüler der 5. bis etwa 8. oder 9. Klasse. Die Schüler sollen mit den Grundlagen vertraut gemacht werden, d. h. Bedienung der Software, Grundlagen Hardware (siehe hier) und mit dem Programmieren vertraut gemacht werden. Letzteres wird Schwerpunkt sein.

Es soll eine Sprachen-Hierarchie etabliert werden, die momentan wie folgt aussieht:

KTurtle > FreeBASIC > z. B. Java

Nach einer Einführung sollen die Schüler möglichst selbstständig auf Basis der KTurtle-Unterlagen (Handbuch) sowie auf Basis der im FreeBASIC-Portal enthaltenen Angebote (speziell Tutorials und speziell Befehlsreferenz) möglichst selbstständig arbeiten.

Die Arbeit (Lernen der Sprache(n)) soll im Rahmen einer AG erfolgen und soll möglichst "problemorientiert" ablaufen. Nach einer ersten, möglichst kurzen Einführung sollen die Schüler die Möglichkeit bekommen, einfach mit den Programmen (KTurtle bzw. FreeBASIC FBIde) zu „spielen“.

Als "Lernplattform" (für Austausch, Kommunikation usw.) wird die Wikiversity zum Einsatz kommen.

Vielleicht erst einmal soviel. Meine Prämissen hinsichtlich der Verwendung von FreeBASIC sind in meinem Blog und zwar hier zu finden. Bislang finde ich - aus meiner Sicht - die Sprache, die Möglichkeiten und insbesondere die IDE FBIde sehr interessant. Über Feedback bzw. Rückfragen freue ich mich. --Michael Reschke 00:27, 21. Jul. 2008 (CEST)

Meiner Meinung nach sollte man - falls man lediglich einen Programmierkurs anbietet - nicht den Schülern vermitteln, dass es sich hierbei um einen Informatik-Kurs handelt da dies schlichtweg eine falsche Vorstellung von "Informatik" bei den Schülern hinterlässt. Die Informatik beschäftigt sich mit mehr als nur dem Schreiben von Programmen, sie umfasst vor Allem den Aufbau von Computern, mathematische Formulierung und Lösung von Problemstellungen, Entwicklung und Analyse von Algorithmen, und Validierung all dieser Sachen - und das auf hohe Effizienz und Geschwindigkeit ausgerichtet. Die Umsetzung der Algorithmen durch Programmcode tippen sowie ein Benutzerinterface für die Daten zu erstellen ist nur ein sehr kleiner Teil der Informatik und dieses Bewusstsein sollte geschaffen werden.
Aus eigener Erfahrung kann ich nur sagen, dass Lehrer, die Halbwissen zu einem anderen Thema als angegeben vermitteln, einen äußerst schlechten Eindruck vermitteln. So versuchte man in unserem Schul-Informatik-Kurs, ein System aus drei Javaklassen "schule", "klasse" und "schueler", wobei "schule" genau drei Variablen vom Typ "klasse" und "klasse" genau drei Variablen vom Typ "schueler" enthielten, als Datenbank zu verkaufen was nichts als völliger Unsinn ist.
Die Informatik ist ein sehr agiles Gebiet und die Vermittlung von veraltetem (was sehr schnell der Fall ist) oder schlicht unvollständigem und falschem Wissen tut ihr nichts gutes, besonders nicht in einem Kurs in der Schule der für viele Schüler den ersten Kontakt mit der Informatik darstellt.
MisterD 92.193.40.53 02:13, 21. Jul. 2008 (CEST)
Leute, die pädagogisches Halbwissen in destruktiven Kritiken vermitteln, hinterlassen einen weitaus schlechteren Eindruck. Die angestrebte Konzeption wurde vom Initiator genannt und begründet. Wenn „MisterD“ den Schülern ab Klasse 5 die nach seiner Meinung elementaren Wesenszüge der Informatik: (Halteproblem der Turing Maschine, O-Notation, NP-Vollständigkeit usw), vermitteln möchte, sollte er einen entsprechenden Kurs starten. Ich bin mir sicher, dass im Erfolgsfall eine völlige Umstrukturierung der Bildungslandschaft stattfinden wird. --Heuerli 15:14, 25. Jul. 2008 (CEST)
So schlimm ist es nicht :-) Wir hatten über den IRC-Channel miteinander gesprochen. Die Diskussion hier ist ohne das Gespräch im Chat leider kaum zu verstehen.
Für MisterD's Hinweise bin ich sehr dankbar. --Michael Reschke 15:19, 25. Jul. 2008 (CEST)

Einfache FreeBASIC Programme[Bearbeiten]

--84.152.26.208 19:31, 14. Mai 2015 (CEST)

1) Addition und Subtraktion von (zufälligen) Ganzzahlen

' Programm zum Erstellen von Übungsaufgaben für das Rechnen mit ganzen Zahlen zur Ausgabe auf dem Drucker
' Quellcode für FreeBASIC Compiler; getestet mit PDFCreator

#lang "fblite"
dim as integer max,a,b,n,i

print
input "Maximalwert des Betrags der ganzen Zahlen [Vorgabe: 100]: ";max
if max<2 then              
    max=100      
end if
print
input "Wie viele Aufgaben [Vorgabe: 25] ";n
if n<=0 then 
  n=25
end if
Lprint         ' Ausgabe auf dem Drucker       
Lprint         
Lprint           
Lprint "        ";n;" Kopfrechenaufgaben mit ganzen Zahlen von ";-max;" bis";max  
Lprint
Lprint

randomize      'Initialisiere den Zufallszahlengenerator rnd 
for i=1 to n 
    a=int(rnd*(2*max+1))-max
    b=int(rnd*(2*max+1))-max 
    Lprint using "       ###)   ";i;
    Lprint a;
    if b<=0 then                
       Lprint " -";abs(b)           
    else
       Lprint " +";b
    end if
    Lprint
    Lprint
next i  
Lprint Chr(12)