Arithmetische Überlauf oder wie kommt nur diese Zahl zustande?

 

Manchmal testet man doch das erstellte Javaprogramm (oder in einer anderen Programmiersprache geschrieben) und stellt fest, dass die auf dem Bildschirm ausgegebenen Zahlen nicht stimmen können. Woran kann es liegen?

Ist die zu berechnende Formel korrekt?

Werden von Java/ der gewählten Programmiersprache etwa Rechengesetze mißachtet?

All diese Fragen sind abgecheckt und mit „alles ok“ beantwortet, doch die falschen Zahlen bleiben. Eine weitere Fehlerquelle könnte ein falsch verwendeter Datentyp sein – was auch in vorliegendem Programm die Ursache war.

In Java gibt es acht verschiedene primitive Datentypen und jeder hat seinen Wertebereich (in anderen Programmiersprachen können es mehr sein, aber auch hier hat jeder Datentyp seinen Wertebereich).

Datentyp Wertebereich
boolean true oder false
char 16-Bit-Unicode Zeichen bzw. (0x0000 … 0xFFFF)
byte -27 bis 27-1 bzw. (-128 … 127)
short -215 bis 215-1 bzw. (-32.768 … 32.767)
int -231 bis 231-1 bzw. (-2.147.483.648 … 2.147.483.647)
long -263 bis 263-1 bzw. (-9.223.372.036.854.775.808 … 9.223.372.036.854.775.807)
float 1,40239846E-45f … 3,40282347E+38f
double 4.94065645841246544E-324 … 1,79769131486231570E+308

Dieser muss berücksichtigt werden, denn ansonsten entsteht eben das Phänomen des arithmetische Überlaufs.

 

Was ist das eigentlich?

 

Bei der Deklaration einer Variablen wird dieser ein primtiver Datentyp zugeordnet. So weiß der Computer wieviel Speicherplatz er für diese Variable reservieren muß und damit wie groß die Zahl höchstens werden kann. Die Zahl selber wird als 2er-Komplement abgespeichert, d.h. als Bits in 0 und 1.

Kommt es nun durch eine Rechenoperation eine größere Zahl als vorher angegeben wurde entsteht aufgrund des 2er-Komplements eine negative Zahl.

 

Beispiel:

1 Byte ist darstellbar als 0000 0001

2 Byte ist darstellbar als 0000 0010

3 Byte ist darstellbar als 0000 0011

4 Byte ist darstellbar als 0000 0100

127 Byte ist darstellbar als 0111 1111 -> die vorderste Null steht für das Vorzeichen

0 entspricht einer positiver Zahl und 1 entspricht einer negativen Zahl

Addition von 1 bzw. 0000 0001 ergibt 1000 0000.

Unter Beachtung des Vorzeichenbits (1000 0000), wobei 1 einer negativen Zahl entspricht, ist nicht die positive Zahl 128 sondern die negative Zahl -128 entstanden.

 

Wie kann ich das Problem lösen?

Es gibt zwei Möglichkeiten.

  1. Begrenzung der möglichen Eingaben
  2. Ändern des genutzen primitiven Datentyps in einen höherwertigen

 

 

Wenn noch Fragen sind, schreibt sie in die Kommentare.

 

Bis demnächst,

Sperling

Advertisements

Elearning Selbstlerntest mit Adobe Acrobat 9 Pro erstellen

Mit Adobe Acrobat 9 Pro läßt sich relativ einfach aus einem pdf-Dokument mit Fragen und Antworten ein Selbstlerntest für das Elearning erstellen.

Zunächst ist es erforderlich, dass im pdf-Dokument zu jeder Frage auf einer weiteren Seite die jeweilige Antwort steht.

ErsteSeite ZweiteSeite

Nun soll zu der Frage ein Button eingefügt werden, der auf Aktivierung die richtige Antwort zeigt. Dazu wird zunächst die Werkzeugleiste „Erweitere Bearbeitung“  über die Menüs Werkzeuge/Erweiterte Bearbeitung/Werkzeugleiste „Erweiterte Bearbeitung“ einblenden sichtbar gemacht.

ErweiterteBearbeitung

Das „Schaltflächen-Werkzeug“ wird ausgewählt und eine Schaltfläche auf der Seite mit der Frage erstellt.

Schaltfläche

Mit einem Rechtsklick auf die Schaltfläche können die Eigenschaften eingestellt werden. Wichtig ist hier der Reiter „Optionen“, auf dem die Beschriftung der Schaltfläche festgelegt wird (hier: Antwort).

Beschriftung

Über den Reiter „Aktion“ kann das Anzeigen der Lösung erfolgen. Dazu ist als Auslöser „Maustaste drücken“ und als Aktion „Gehe zu einer Seitenansicht“ auszuwählen. Die Schaltfläche „Hinzufügen“ ermöglicht dann das Auswählen der Seite mit der Lösung.

GeheZu

AntwortFestlegen

Mit Aktivierung der Schaltfläche „Verknüpfung festlegen“ wird der selbsterstellten Schaltfläche „Antwort“ nun die Verknüpfung zu der Seite mit der Lösung hinzugefügt.

Bedienungsfreundlicher ist so ein Selbsttest, wenn auf der Lösungsseite noch eine „Zurück“ Schaltfläche vom Lernenden genutzt werden kann. Diese Schaltfläche wird analog zur beschriebenen Vorgehensweise eingefügt.

Zurueck

Abgeschlossen wird dieser Vorgang nun, indem das „Auswahl-Werkzeug“ der „Pfeil“ in der Menüleiste ausgewählt wird. Erst jetzt sind die Beschriftungen auf den Schaltflächen sichtbar.

Motivation beim e-learning erreichen

Beim FachForum DistancE-Learning 2014 in Leipzig hat Claudia Bremer einen Vortrag gehalten zum Thema „Lernende online motivieren?“.

Die Motivation der Lernenden interessiert mich gleich in zweifacher Hinsicht. Zum einen als Coach – wie bringe ich dem Lerner das Thema, die verhasste Aufgabe nahe? Zum anderen als content producer – wie mache ich meinen content interessant? Die Erkenntnisse aus Sicht 1 sind dabei auch hilfreich für die Erkenntnisse der Sicht 2.

Und unter diesen Aspekten will ich die „Interaktion mit dem Lerngegenstand“ näher betrachten. Ab 14:53 Claudia Bremer bezieht sie sich auf die

Interaktivitätsstufen (nach Schulmeister):

Stufe 1: Objekte betrachten und rezipieren

Stufe 2: Multiple Darstellungen betrachten und rezipieren

Stufe 3: Die Repräsentationsforderungen

Stufe 4: Den Inhalt der Komponente modifizieren

Stufe 5: Objekt der Repräsentation konstruieren

Stufe 6: Konstruktion mit situationsabhängigen Rückmeldungen

Der content wird motivierender je interaktiver er ist. Viel Text und am Ende ein Kontrolle ist eher demotivierend. Der content sollte aufgesplittet werden. Damit sind kurze Textpassagen mit abschließenden Kontrollen gemeint oder sogar zunächst eine Kontrolle die Wissenslücken aufdeckt, dann der Wissenstext der mit derselben Kontrolle abschließt. So kann der Lernende seinen Wissenszuwachs erkennen, was ihn wiederum motivieren kann. Dies wird Motivation durch Aufdecken von kognitiven Lücken genannt. -> Vergleich mit der beliebten Sendung „Wer wird Millionär“.

Als eine gelungene Webseite verweist sie auf http://www.webgeo.de/home/.  Eins der dort verwendeten Kontrollen sind Multiple choice Tests. Der Trick, damit diese den Nutzer zum Nachdenken anregen ist, dass die vorgegebenen Antworten eng aneinander liegen müssen.

Stufe 5 verdeutlicht sie anhand der Plattentektonik auf einer Seite von webgeo. In dieser Lerneinheit ist ein Film über die Plattentektonik zu sehen. Wichtig dabei sind die Fragen neben dem Film, um den Lernen zu eigener Aktivität anzuregen. Bei einem weiterem Beispiel zu Stufe 5 muß der Lernende durch eine Karte navigieren um die Fragen beantworten zu können.

Deutsche MOOCs auf der iversity Plattform

Auf https://iversity.org/ sind seid meinem letzen Post einige MOOCS zu finden. Auch der #Mathemooc, den ich bereits angetestet hatte, ist hier zu finden. Ziemlich spät hatte ich dann die Möglichkeit einige Kapitel als Kiebitz zu verfolgen. Da ich den MOOC nicht vollständig verfolgen konnte habe ich mich gefreut, dass dieser seid April 2014 wieder angeboten wird.

Ein Resumée zur vorherigen Runde des #Mathemoocs finden wir bei Prof. Dr. Rolf Schulmeister. Er spricht mit Prof. Dr. Christian Spannagel, einer der Initatoren, über die ihm aufgefallenen Merkmale. Dabei zieht er einen Vergleich zu einem englischen MOOC mathematischen Denkens, der bei coursera läuft.

 

Für einen weitern MOOC bei iversity habe ich mich angemeldet, nämlich #Algorithmen und Datenstrukturen.

Dieser MOOC ist ähnlich einer Vorlesung aufgebaut. In zahlreichen Videos wird der Stoff vorgestellt. Dazu gibt es kleine Aufgaben, die online bearbeitet werden können. Am Ende jeder Lektion ist eine Hausaufgabe zu finden, die jeweils zu einem festen Zeitpunkt abgegeben werden muß. Interessant finde ich das anschließende Peer Review.  Hierbei werden die Hausaufgaben an 5 Teilnehmer versendet, die diese bewerten können. Ich finde dies ein gutes Verfahren um Programmiercode auszuwerten.

 

Bis demnächst,

Sperling

 

Manchmal kommt es anders … und der Mathe-MOOC

… und dann war der MOOC #COER13 auch schon vorbei.

Meine e-learning begrenzte Zeit erlaubte mir nur noch ein lurken. Da ich jedoch den Newsletter abonniert hatte, konnte ich wenigstens darüber einen kleinen Einblick des MOOCs bekommen.

So habe ich einen Überblick erhalten und zahlreiche nützliche Links gespeichert, die mir bei Bedarf weiterhelfen können.

Über iversity lief ein Wettbewerb zur Erstellung eines deutschen Unimoocs. Die Gewinner bekamen Geld um ihren MOOC zu finanzieren. Hier interessiert, in wieweit diese Startfinanzierung

für einen professionellen MOOC reicht, oder ob ein anderes Geschäftsmodell zugrunde gelegt werden muß, um keine Verlustrechnung zu haben.

Der Mathemooc interessiert mich und ich habe bereits in dem Testkapitel Einblick über die Lernweise erhalten. Die Entwickler dieses MOOCs  erbitten hierzu Feedback, welches sie

in die Bearbeitung der weiteren Kapitel einbinden wollen.  Da ich über Twitter aufmerksam darauf wurde

gelangte ich sofort zum Einstiegsvideo. Dieses motivierte mich wenig an diesem Kurs teilzunehmen. Vielleicht war es mir zu düster und zu mystisch? Eigentlich habe ich es gerne Hintergrundinformationen über die mathematischen Protagonisten zu erhalten.

Auf der Übersichtsseite  sind nun viele verlinkte Bilder als Kacheln angeordnet, Es erschlägt mich ein wenig. Zum Glück ist neben der Kachel für das Einstiegsvideo eine Kachel zur Struktur zu finden. Diese würde ich etwas weiter heraus stellen, damit nach dem Einstiegsvideo, welches ja Appetit bringen soll, ein roter Faden sichtbar wird.

Ich suche mir die Kachel zu den smarten Quadraten heraus. Hier hinter verbirgt sich ein Video, welches diesen Begriff erläutert, aber auch zum aktivien Mitarbeiten anregt. Das gefällt mir sehr gut. Etwas bereits Bekanntes kann ich nun mit einem Schlüsselwort verknüpfen!

Ich teste auf jeden Fall weiter und möchte gerne an dem kompletten MatheMOOC im Herbst teilnehmen.

Bis demnächst,

Sperling

#COER13 – Bounding in der Startwoche

Seit dem 8. April 2013 läuft der #COER13, ein Online Course zu OER (Open Educational Ressources).

Ich erhoffe mir von diesem Kurs einen Einblick in die Erstellung von OER, sowie deren Verwendung.  Bei der Erstellung von Marterialien, sei es on- oder offline, wäre eine Nutzung von frei zugänglichen Ressourcen eine Berreicherung. Im #MMC13 wurde dieses Thema bereits in der 3. Woche als „Power of Open“ angesprochen.

Struktur

Die Startseite des #COER13 erscheint mir sehr übersichtlich. Auf der linken Seite finden sich links zum Kurs, zu den Neuigkeiten, den Blogposts und den vernetzten Räumen , sowie zum Programm. Mittels einer Anmeldung erhält man auch Zugang zum eigenen COER13 Forum. Hier können Beiträge eingestellt werden, wenn kein eigener blog verwendet werden soll.

Schön finde ich es, dass die Teilnahme nicht auf das Forum begrenzt ist, sondern jeder das Medium wählen kann, welches gefällt.

Beim ersten Live-Event wurden die Medienkompetenzen angesprochen und erläutert. So kann eine gemeinsame Grundlage für alle Teilnehmer geschaffen werden.

Interessant sind auch die beiden badges „wOERker“ und „hOERer“, die erlangt werden können.

Als erste Aufgabe ist eine Vorstellung der Teilnehmer erwünscht. So können sich einzelne Gruppen bilden, die ähnliche Interessen verfolgen. Sicherlich auch Interessant im Hinblick auf die Erstellung von OER.

Ich bin gespannt, wie sich diese MOOC entfalten wird und bleibe dran.

Bis demnächst,

Sperling

Résumé

In der 4. Woche des MMC13 ging es um Geschäftsmodelle. Da ich zunächst keinen eigenen MOOC anbieten möchte, habe ich in dieser Woche nur sporadisch Artikel gelesen und mir den HangoutOnAir auf youtube angesehen. Auf jeden Fall habe ich entnehmen können, dass für diese neue Form des Lernens noch kein Geschäftsmodell existiert. Es muss erst eins entwickelt werden, dass die Wirtschaftlichkeit eines MOOCs garantieren kann. Dann werden MOOCs sicherlich auch in der freien Wirtschaft interessant.

Die anvisierten Geschäftsmodelle zielten in Richtung von kostenlosen Basiskursen und  kostenpflichtige Aufsteigermaterialien oder auch kostenpflichtiger Begleitung. Dies bedeutet jedoch für das „O“ in MOOC (welches für open steht), dass „open“ eben nicht kostenlos bedeutet, sondern nur, dass der Kurs offen für alle Teilnehmer ist, es jedoch Einschränkungen bei der Nutzung gibt.

Meine Frage vor Beginn des Kurses war, ob so ein cMOOC (massive oder nicht) für Ehrenamtliche möglich wäre. Nach Abschluß kann ich sagen: wenn die Infrastruktur steht, ist es sicherlich eine tolle Sache, zumal die Lernenden zeitlich sowie örtlich (vorausgesetzt die Peripherie ist gegeben) nicht gebunden sind. Weiterhin sehe ich den cMOOC als ein gestalterisches Element, bei dem kollaborativ etwas erarbeitet bzw. bearbeitet wird. Metaphern wie Gesprächsrunde, Lerngruppe oder Seminar werden dem gerecht.

Kennengelernt habe ich die HangoutOnAirs sowie Twitter mit zahlreichen Selektionsmöglichkeiten zum Kuratieren wie branch oder das Twitter-Netzwerk. Kollektiv bearbeitet werden konnten edupad, googledocs und jetzt in der 5. Woche kommt noch ein Wiki hinzu. Hieraus wird ein ebook entstehen, wobei hier noch die Frage steht, wann der „druckreife“ Stand erreicht ist. Wäre ja auch möglich dieses ebook just-in-time zu erzeugen, wie es z.B. im mediawiki möglich ist. Aufjeden Fall entsteht so etwas, dass für MOOC-Organisatoren hilfreich sein und den MMC13 überdauern wird.

Hinsichtlich der Medienkompetenz hat mir dieser Kurs viel gegeben. Mal sehen, was es in 2013 noch so für cMOOCs gibt.

Bis demnächst,

Sperling