Dienstag, 27. Januar 2009

Mindmaps, spielend und lernend



Impuls
2 Posts von Florian (Creaffective) in dem es um Wortwolken und Lernen in Verbindung mit Mindmaps geht habe ich miteinander kombiniert und finde sogleich ;-) das jegliche Mindmap-Software um einen sogenannten "Lern- und Trainingsmodus" erweitert werden muss.
Sinn und Zweck dieser Übung besteht darin eigene Mindmaps besser zu behalten bzw. auf das Wesentliche zu reduzieren. Auch Vokabelübungen etc. sind damit möglich.



Training: Rekonstruktion der Mindmap
Es bedarf wahrscheinlich keines großen Aufwandes aus Mindmaps Wortwolken zu generieren.
Der Anwender hat dabei die Aufgabe, aus der Wortwolke die ursprüngliche Mind Map, die er möglicherweise selbst entwickelt hat, aus dem Gedächtnis zu rekonstruieren.
Ich stelle mir also eine Art Lernmodus vor, bei dem die Map im Hintergrund transparent bis unsichtbar wird.
Der Anwender ist nun gezwungen die Pfade innerhalb der Wortwolke wieder herzustellen und kann sein Ergebnis mit der ursprünglichen Mindmap vergleichen und noch besser, anschließend die ursprünglichen Mindmap, je nach Gusto, ersetzen. Gerade beim reproduzieren zeigt sich nämlich was wesentlich war.

Die Bildfolge zeigt im Prinzip die Vorgehensweise:

Bild 1: Ursprüngliche Mind Map


Bild 2: Wortwolke


Bild 3: Rekonstruieren der Mindmap


Spiel: Lückentext
Auch könnten die Softwareentwickler Mind Maps als Lückentext darstellen und deine Aufgabe ist es die entsprechenden Schlüsselwörter einzusetzen.


Bild 1: Ursprüngliche Mindmap



Bild 2: Mindmap mit Lücken zum ausfüllen

Spiel: Visueller Countdown

Das je nach fortschreitender Zeit bestimmte Knoten oder Äste in der Mindmap transparenter werden ("visueller count down"), erscheint mir auch ein Vorschlag zur Unterstützung von Lernprozessen.

Hier ist nun der Anwender gefordert die stark transparenten Knoten unter mehr oder weniger großer Anstrengung zu lesen, oder.... besser diese zu behalten (lernen).

Dies ist auch mit einem Spiel zu verbinden bei dem der Anwender die immer tranparenter werdenden Knoten beschreiben muss, damit diese sichtbar bleiben. Ein Spiel, dass über Zeit konzentriert gespielt werden muss und im Nebeneffekt das wiederholen der Schlüsselwörter, vielleicht Vokabeln, trainiert.


Übung: Beschreibung der Äste
Ein weiterer Lerneffekt könnte sein die Äste zu beschreiben (Verben). Sobald der Ast beschriftet ist, kann die Map-Darstellung an dieser Stelle entfallen bzw. wird in eine Textform umgewandelt. Wie mache ich aus einer Mindmap einen Text oder Aufsatz bzw. wie reduziere ich die Hierarchieebenen.

Spiel: Mindmap Tetris
Als weiteres Spielvariante schlage ich den Computerklassiker Tetris vor.
Der an der Bildschirmseite herunterfallende Ast muss innerhalb von Sekunden an die richtige Stelle der unvollständigen Mindmap gebracht werden.

Gruß Chiochip

Dienstag, 13. Januar 2009

Spline Interpolation

Für die Freunde von Kurven habe ich nachstehend den Quellcode für die Spline Interpolation hinzugefügt. Die Funktion kann ebenfalls, wie die Lineare Interpolation in Excel "eingebaut" werden und wird für Interpolation von Messwerten aus vorhandenen Messwertpaaren benutzt.

Das Programm stammt aus dem Quellcode des Freeware Programms XNUMBERS 5.6 - Multi Precision Floating Point Computing and Numerical Methods for EXCEL.
Ein Muss für jeden Excel-Anwender. Einfach suchen unter: Digilander



====================== ANFANG ======================
  • 'Interpolates one point from sorted X,Y data pairs using Cubic Spline Interpolation
  • Function Interpol_cspline(Xin As Range, Yin As Range, Xtarget As Double)
  • Dim n%, ny% 'Xin and Yin counts
  • Dim i% 'loop counter
  • Dim ihi%, m%
  • Dim a#, b#, p#, qn#, sig#, un#, h0#, h1#, h2#, Yout#
  • ny = Yin.Cells.Count
  • n = Xin.Cells.Count
  • ' Next check to be sure that there are the came counts of Xin and Yin
  • If n <> ny Then
  • Interpol_cspline = CVErr(xlErrRef) 'Uneven counts of Xin and Yin"
  • GoTo err_ret
  • End If

  • ReDim x(1 To n) As Double
  • ReDim Y(1 To n) As Double
  • 'ReDim u(1 To n - 1) As Single
  • ReDim U(1 To n - 1) As Double 'mod. LV 31-8-02
  • ReDim ypp(1 To n) As Double 'these are the 2nd derivative values
  • 'populate the input arrays
  • For i = 1 To n
  • x(i) = Xin(i)
  • If i > 1 Then
  • If x(i) <= x(i - 1) Then 'Check if X values are not repeating and are sorted in ascending order
  • Interpol_cspline = CVErr(xlErrValue) 'Error: Not sorted or repeating
  • GoTo err_ret
  • End If
  • End If
  • Y(i) = Yin(i)
  • Next i
  • ypp(1) = 0 'First knot boundary condition
  • U(1) = 0 'First knot boundary condition
  • For i = 2 To n - 1
  • h0 = x(i + 0) - x(i - 1)
  • h1 = x(i + 1) - x(i - 0)
  • h2 = x(i + 1) - x(i - 1)

  • sig = h0 / h2
  • p = sig * ypp(i - 1) + 2#
  • ypp(i) = (sig - 1) / p
  • U(i) = (Y(i + 1) - Y(i)) / h1 - (Y(i) - Y(i - 1)) / h0
  • U(i) = (6# * U(i) / h2 - sig * U(i - 1)) / p

  • Next i

  • qn = 0
  • un = 0
  • ypp(n) = (un - qn * U(n - 1)) / (qn * ypp(n - 1) + 1) 'Last knot boundary condition
  • For i = n - 1 To 1 Step -1
  • ypp(i) = ypp(i) * ypp(i + 1) + U(i) 'Backfill the 2nd derivatives
  • Next i
  • ''''''''''''''''''''''''''''''''''''''''
  • 'Spline evaluation at target X point
  • '''''''''''''''''''''''''''''''''''''''''
  • 'Find correct interval using halving binary search
  • i = 1
  • ihi = n
  • Do While (i <>
  • m = (i + ihi) \ 2 'Calculate the midpoint
  • If (Xtarget < ihi =" m" i =" m">
  • Loop
  • ' i = beginning of the correct interval
  • h0 = x(i + 1) - x(i) 'Calc the width of the X interval
  • a = (x(i + 1) - Xtarget) / h0
  • b = (Xtarget - x(i)) / h0
  • Yout = a * Y(i) + b * Y(i + 1) + ((a ^ 3 - a) * ypp(i) + (b ^ 3 - b) * ypp(i + 1)) * (h0 ^ 2) / 6#
  • Interpol_cspline = Yout
  • err_ret:
  • End Function
====================== ENDE ======================

Gruß Chiochip

Montag, 12. Januar 2009

Lineare Interpolation


Neulich im Internet!
Gesucht und gesucht und doch nicht gefunden und dann selbst gemacht:

Für die Erstellung linearer Interpolationen als Massenoperation in der Tabellenkalkulation Excel habe ich folgende Funktion angefertigt. Diese kann frei verwendet werden. Für mögliche Fehler hafte ich nicht, falls ihr sie jedoch verbessert, würde ich mich riesig über den kommentierten und verbesserten Quellcode freuen.



======================== Anfang =======================

  • 'Interpoliert einen Punkt aus einer Tabelle von x, y -Punkten nach der Methoder der Linearen Interpolation
  • Function Interpol_Lin(Xin As Range, Yin As Range, Xtarget As Double)
  • Dim n%, ny% 'Xin and Yin Counter
  • Dim i%, X_index 'Schleifen Counter

  • ny = Yin.Cells.Count
  • n = Xin.Cells.Count

  • ' Prüfe ob die gleiche Anzahl x und y Punkte gegeben ist
  • If n <> ny Then
  • Interpol_Lin = CVErr(xlErrRef) 'Uneven counts of Xin and Yin"
  • GoTo err_ret
  • End If

  • ReDim x(1 To n) As Double
  • ReDim Y(1 To n) As Double

  • 'Fülle x[] und y[] auf
  • For i = 1 To n
  • x(i) = Xin(i)
  • Y(i) = Yin(i)
  • Next i
  • i = 1

  • 'finde den korrekten Intervall
  • Do While (Xtarget > x(i))
  • X_index = i
  • i = i + 1
  • Loop

  • Interpol_Lin = (Y(X_index + 1) - Y(X_index)) / (x(X_index + 1) - x(X_index)) * (Xtarget - x(X_index)) + Y(X_index)

  • err_ret:

  • End Function
======================== ENDE =======================

Gruß Chiochip

Donnerstag, 8. Januar 2009

Kunst in der Mittagspause 01


Kunst in der Mittagspause, -als Abfallprodukt meiner Experimente mit Symbolen.
Wem's gefällt, der kann es ja kund tun ;-)


Gruß Chiochip