Android Applikation - Einmaleins Trainer

download Android Applikation - Einmaleins Trainer

of 36

description

Bachelorthesis - app available at http://app.tugraz.at

Transcript of Android Applikation - Einmaleins Trainer

Android Applikation Einmaleins Trainer

Bachelorarbeit von Katrin Mubacher

Univ.-Doz. Dipl.-Ing. Dr. Martin Ebner Technische Universitt Graz a Institut fr Informationssysteme und Computer Medien u untersttzt von Netidee 2011 u 9. Jnner 2012 a

Betreuer:

Erklrung aHiermit versichere ich, dass ich die vorliegende Arbeit selbststndig verfasst und keine a anderen als die angegebenen Quellen und Hilfsmittel benutzt habe, dass alle Stellen der Arbeit, die wrtlich oder sinngem aus anderen Quellen ubernommen wurden, o a als solche kenntlich gemacht sind und dass die Arbeit in gleicher oder hnlicher Form a noch keiner Prfungsbehrde vorgelegt wurde. u o

Graz am 9. Jnner 2012 a

AbstractDiese Arbeit befasst sich mit einem adaptiven Einmaleins-Trainer fr Schler von 6 u u bis 10 Jahren, den es bereits als Webapplikation gibt und mit dieser Arbeit auch als Anwendung fr das Betriebssystem Android entwickelt wurde. Die Besonderheit des u Trainers ist, dass er sich der Lernfhigkeit des Schlers anpasst. Zur Auswahl der a u zu dem Benutzer oder der Benutzerin passenden Frage wird ein bereits vorhandener Algorithmus verwendet. Der Lernalgorithmus ist auf einem Webserver implementiert, mit welchem die Anwendung kommuniziert, wenn zum Beispiel eine neue Frage ausgewhlt werden muss. Daher ist eine Internetverbindung notwendig. Jeder Benutzer a beziehungsweise jede Benutzerin muss sich registrieren, wodurch zentral auf dem Server der Lernfortschritt in einer Datenbank gespeichert und regelmig aktualisiert wird. a Am Ende jedes Trainings wird eine Statistik berechnet, die uber die Anwendung abruf bar ist. Zustzlich zum Trainer wurde ein sogenanntes Speedgame implementiert, mit a dem der Benutzer oder die Benutzerin auch ohne Internetverbindung das Einmaleins uben kann. Das Speedgame whlt seine Fragen jedoch nicht uber einen Lernalgoritha mus aus, sondern alle Fragen sind nach ihrer Schwierigkeit einer der drei verschiedenen Fragenklassen zugeteilt und es wird eine zufllige Frage aus der Fragenklasse gezogen, a die zuvor von dem Benutzer oder der Benutzerin ausgewhlt wurde. Die Oberche ist a a durch die Verwendung kinderfreundlicher Graken besonders fr Kinder ansprechend u gestaltet.

InhaltsverzeichnisAbbildungsverzeichnis 1 Fragestellung 1.1 Einleitung . . . . . 1.2 Einmaleins Trainer 1.2.1 Trainer . . . 1.2.2 Speedgame 5 6 6 6 7 7 8 8 8 8 10 12 14 14 14 15 16 17 17 18 18 19 19 19 21 23 26 27 27 27 27 28 29 30 30 31 32 32 33 3

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2 Stand der Technik 2.1 Algorithmus . . . . . . . . . . . . . 2.1.1 Klassizierung der Aufgaben 2.1.2 Lernfhigkeit . . . . . . . . a 2.1.3 Fragenauswahl . . . . . . . 2.1.4 Klassizierung der Antwort 2.2 Android . . . . . . . . . . . . . . . 2.2.1 Einfhrung . . . . . . . . . u 2.2.2 Systemaufbau . . . . . . . . 2.2.3 Anwendungskomponenten . 2.2.4 User Interface . . . . . . . . 2.2.5 Intents . . . . . . . . . . . . 2.2.6 SQLite . . . . . . . . . . . . 2.2.7 Android Manifest . . . . . . 2.2.8 Sicherheit . . . . . . . . . . 3 Umsetzung 3.1 Entwicklungsumgebung 3.2 User Interface . . . . . 3.3 Sessions . . . . . . . . 3.4 Trainer . . . . . . . . . 3.5 Quiz . . . . . . . . . . 4 Anwendung 4.1 Start . . . . . . . . 4.2 Trainer . . . . . . . 4.2.1 Registrieren 4.2.2 Anmelden . 4.2.3 Spielen . . . 4.2.4 Statistik . . 4.3 Speedgame . . . . . 4.3.1 Auswahl der 4.3.2 Highscore . 4.4 Hilfe . . . . . . . . 5 Diskussion

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schwierigkeitsstufe . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

6 Zusammenfassung und Ausblick Literaturverzeichnis

34 35

4

Abbildungsverzeichnis1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Lernfhigkeit und Lernbereich . . . . . . . a Basis bei der Fragenauswahl . . . . . . . . Android System Architecture [Dev11g] . . View Hierarchie [Dev11e] . . . . . . . . . . Code-Auszug: Layout fr den Login-Screen u Code-Auszug: LoginActivity . . . . . . . . Klassendiagramm Session . . . . . . . . . Klassendiagramm Trainer . . . . . . . . . Code-Auszug: WebserviceClient . . . . . . Klassendiagramm Quiz . . . . . . . . . . . Start . . . . . . . . . . . . . . . . . . . . . Hauptmen . . . . . . . . . . . . . . . . . u Registrieren . . . . . . . . . . . . . . . . . Anmelden . . . . . . . . . . . . . . . . . . Trainermen . . . . . . . . . . . . . . . . . u Spielen . . . . . . . . . . . . . . . . . . . . Falsche Antwort . . . . . . . . . . . . . . . Spielstatistik . . . . . . . . . . . . . . . . . Allgemeine Statistik im Querformat . . . . Allgemeine Statistik im Hochformat . . . . Speedgame-Men . . . . . . . . . . . . . . u Auswahl der Schwierigkeitsstufe . . . . . . Highscore . . . . . . . . . . . . . . . . . . Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12 14 17 20 21 22 24 25 26 27 27 28 28 28 29 29 29 30 30 31 31 32 32

5

11.1

FragestellungEinleitung

Smartphones erfreuen sich immer grerer Beliebtheit und ersetzen dabei immer fter o o die klassischen Mobiltelefone [Nic11]. Die Entwicklung von Applikationen fr Smartu phones, kurz Apps, ist mittlerweile ein wichtiger Bereich in der Softwareentwicklung geworden [Sch11]. Aufgrund der immer wachsenden Anzahl von Apps werden auch immer mehr Ttigkeiten des Alltags auf ein Smartphone verlagert. Dies fhrt dazu, a u dass auch das Lernen mit Smartphones einen interessanten und immer wichtiger werdenden Bereich in der Entwicklung von Apps darstellt.

Diese Arbeit befasst sich mit einem Lernprogramm fr Kinder. Neue Technologien u wie Smartphones scheinen in Form von Spielen und durch schnelles Feedback fr u Kinder lernfrderlich zu sein. Im Zuge anderer Arbeiten an der TU Graz wurde bereits o eine Applikation als Webanwendung und eine App fr das iPhone zum Trainieren u des Einmaleins mit dem Einsatz des speziellen Lernalgorithmus fr Schler von 6 u u bis 10 Jahren entwickelt [Kot11]. Eine weitere Plattform stellt das Betriebssystem Android dar, welches in den letzten Jahren zu einem der am hugsten eingesetzten a Betriebssyteme fr Smartphones geworden ist. Im zweiten Quartal 2011 ist Android u mit einem Marktanteil von 48 Prozent die fhrende Smartphone-Plattform gewesen u [Ml11]. Aufgrund dieser Tatsache ist das Ziel dieser Arbeit, die Anwendung zum u Trainieren des Einmaleins auch fr Android bereitzustellen. u

Dieses Kapitel befasst sich mit den Anforderungen an die Anwendung. Im nchsten a werden die zur Entwicklung notwendigen Technologien, wie die Funktionsweise des Lernalgorithmus und die wesentlichen Punkte in der Android Programmierung erlutert. a Die darauolgenden zwei Kapitel beschreiben die Umsetzung und die Anwendung. Zum Abschluss folgt eine Diskussion uber Besonderheiten und aufgetretene Probleme, sowie eine Zusammenfassung der Arbeit.

1.2

Einmaleins Trainer

Das Ziel der Anwendung ist es dem Kind spielend das Einmaleins beizubringen und dabei gleichzeitig seinem individuellem Knnen anzupassen. Eine wichtige o Anforderung ist dabei eine kinderfreundliche Oberche mit mglichst wenig Text und a o einfacher Navigation. Zudem wurde die Anwendung in zwei Komponenten gegliedert, wobei die erste den adaptiven Trainer bereitstellt, welcher nur das Spielen mit einer Internetverbindung erlaubt, und die zweite ein sogenanntes Speedgame darstellt, welches auch oine gespielt werden kann, jedoch keinen Lernalgorithmus anbietet. Die Anforderung an diese beiden Spielarten sind anschlieend beschrieben.

6

1.2.1

Trainer

Die Basis des Trainers bildet ein spezieller Lernalgorithmus, der sich an die Kenntnisse und Begabung des Kindes anpasst. Als Maeinheit wird eine sogenannte Lernrate herangezogen, welche die Lernfhigkeit des Kindes dokumentiert. Diese wird mit a einem Vortest, der aus zwei oder drei Fragen besteht, vor der ersten Trainingseinheit berechnet und bei jeder beantworteten Frage aktualisiert. Anhand der berechneten Lernrate wird die nchste Aufgabe ausgewhlt, wobei auch gekonnte Fragen mehrmals a a gefragt werden, wenn auch mit geringer Wahrscheinlichkeit. Dies hat den Vorteil, dass sowohl fr gute Schler, als auch fr Schler mit Rechenschwche, die durch u u u u a den Algorithmus automatisierte Aufgabenauswahl nicht zu Demotivation fhrt. Fr u u die Auswahl des Trainers wird eine Internetverbindung bentigt, da die Aufgabeno stellungen mithilfe des Lernalgorithmus, der am Server implementiert ist, ausgewhlt a werden und das Ergebnis jeder Aufgabe dem Server mitgeteilt werden muss, damit dieser nach jeder Aufgabe die Lernrate dynamisch anpassen kann. Zudem bietet die Applikation die Mglichkeit der Registrierung auf dem Android-Device. Das Trainieren o ist damit auf allen angebotenen Plattformen (Browser, iPhone, Android) mit dem selben Benutzerkonto mglich. o

1.2.2

Speedgame

Zustzlich zum Trainer, der auf den Lernalgorithmus aufbaut, gibt es ein Speedgame, a welches die Aufgaben durch Zufall auswhlt und mit welchem das Kind die Aufgaben a noch einmal oine uben kann. Die Aufgaben sind in die drei Schwierigkeitsstufen einfach, mittel und schwierig eingeteilt. Dafr wurde die Einmaleinstabelle in drei Teile u aufgeteilt. Leichte Aufgaben behandeln die 1er- bis 3er-Reihe, mittlere die 4er- bis 6er-Reihe und schwierige die 7er- bis 9er-Reihe. Die Aufgabenstellung hat die gleiche Benutzeroberche wie beim Trainer. Das Speedgame hat auch einen Highscore, um a den Ehrgeiz der Kinder zu erhhen. o Eine weitere Anforderung ist die Mehrsprachigkeit. Die Anwendung ist sowohl in englischer als auch deutscher Sprache verfgbar. Weiters ist die Einbindung zustzlicher u a Sprachen mglich. o

7

22.1

Stand der TechnikAlgorithmus

Die Basis der Anwendung bildet ein spezieller Lernalgorithmus, der bereits vor Beginn dieser Arbeit entwickelt und getestet wurde. Der Lernalgorithmus whlt die nchste a a Aufgabe fr den Schler oder die Schlerin aus. Er wurde entwickelt um die Aufgabenu u u stellungen individuell an die bisherigen Kenntnisse und die Lernfhigkeit des Schlers a u oder der Schlerin anzupassen, mit dem Ziel den Schler oder die Schlerin durch eine u u u zu seinem aktuellen Lernstand passende Aufgabe gezielt zu untersttzen. Die Auswahl u einer passenden Aufgabe ist im Lernprozess von wichtiger Bedeutung, da eine Aufgabenauswahl nach zum Beispiel Zufallsprinzip den Schler oder die Schlerin durch u u zu schwierige oder auch durch eine Folge von sehr einfachen Aufgaben erfahrungsgem a sehr schnell uberfordern beziehungsweise langweilen kann. Durch die intelligente Auf gabenauswahl wird die Motivation des Schlers oder der Schlerin gestrkt - mit dem u u a Ziel, mglichst schnelle Lernerfolge zu verzeichnen und die Freude und das Interesse o am Lernsto zu frdern. o Im Folgenden werden die Komponenten und die Funktionsweise des Lernalgorithmus beschrieben. 2.1.1 Klassizierung der Aufgaben

Um die Aufgaben nach ihrer Schwierigkeit unterscheiden zu knnen muss diesen zuerst o eine Wahrscheinlichkeit zugewiesen werden, die aussagt wie schwierig die Aufgabe fr u die Zielgruppe zu beantworten ist. Dabei muss deniert werden, was eine einfache Aufgabe und was eine schwierige Aufgabe darstellt. Durch die Reihung der Aufgaben nach ihrer Schwierigkeiten knnen die Wahrscheinlichkeiten, wie leicht sie beantwortet wero den knnen, abgeleitet werden. Einfache Aufgaben knnen eine Wahrscheinlichkeit von o o bis zu 0 aufweisen, schwierige eine Wahrscheinlichkeit von bis zu 1. Die Klassizierung der Aufgaben nach ihrer Schwierigkeiten wurde fr das kleine Einmaleins bereits vor u dieser Arbeit von Experten vorgenommen. 2.1.2 Lernfhigkeit a

Den Kern des Lernalgorithmus bildet die Kennzahl der Lernfhigkeit beziehungsweise a Lernunfhigkeit. Sie wird prozentuell angegeben und gibt den maximal mglichen a o Schwierigkeitsgrad der nchsten Aufgabe an. Die Lernfhigkeit wird fr jeden Schler a a u u und jede Schlerin berechnet und nach Beantwortung einer Frage aktualisiert. Zur u ersten Berechnung der Lernfhigkeit wird das Wissen des Schlers oder der Schlerin a u u uber die Materie mithilfe eines Vortests erfasst. In diesem wird eine bestimmte Anzahl an Fragen gestellt. Je nach erfolgreicher oder nicht erfolgreicher Beantwortung der Fragen mit Einbeziehung der Schwierigkeit der Fragen ergibt sich die Lernfhigkeit. a Jede Frage wird nach dem Knnen der Frage klassiziert: o

8

Index Klassikationsbezeichnung 0 nicht gekonnt 1 gekonnt 2 gut gekonnt

Antworttyp falsche Antwort richtige Antwort mehr als eine richtige Antwort in unmittelbarer Reihenfolge

Um anfangs groe Schwankungen im Hinblick auf die Lernfhigkeit zu vermeiden, a wird eine Abschtzung in den Algorithmus zur Berechnung der Lernfhigkeit miteina a bezogen bis eine bestimmte Anzahl an Fragen beantwortet wurde. Diese Abschtzung a hat einen Wert im Bereich von 0 bis 0.75 und ergibt sich aus der Auswertung der Antworten des Vortests. Werden alle Aufgaben des Vortests richtig beantwortet ist die Abschtzung 0.75. Mit jeder falschen Beantwortung nimmt die Abschtzung ab. So a a liegt sie bei 0 wenn keine der Aufgaben im Vortest richtig beantwortet wurde. Die Grenze, ab der die Abschtzung nicht mehr miteinbezogen wird, hngt von a a der Anzahl der bis zu diesem Zeitpunkt beantworteten, verschiedenen Fragen ab. Die folgende Formel deniert die Grenze: Grenze = Abschtzung Anz. aller verschiedener F ragen a (1)

Muss die Lernfhigkeit neu angepasst werden weil der Schler oder die Schlerin a u u eine Frage beantwortet hat, so wird zuerst die zuvor beschriebene Grenze, ab welcher die Abschtzung nicht mehr in die Berechnung einiet, ermittelt. Ist die Anzahl a der beantworteten Fragen grer als die ermittelte Grenze, so wird die Lernfhigkeit o a ohne Einbeziehung der Abschtzung anhand der Formel (2) neu berechnet. Die a Lernfhigkeit ist in diesem Fall nur abhngig vom Verhltnis der Anzahl der gut gekona a a nten und gekonnten Fragen zur Anzahl aller verschiedener Fragen. Wurde die Grenze durch die Anzahl der beantworten Fragen noch nicht uberschritten, so wird die Ab schtzung miteinbezogen. In diesem Fall wird zuerst ein Gewicht berechnet, welches a das Ergebnis der Lernfhigkeit mithilfe dem Verhltnis der richtigen Antworten zu den a a falschen Antworten gewichtet. Zu dieser gewichteten Lernfhigkeit wird anschlieend a die gewichtete Abschtzung addiert. Dieses Verfahren ist mit der Formel der Gewicha tung (3) und der Formel der angepassten Lernfhigkeit (4) beschrieben. a Anz. gekonnterF ragen + Anz. gut gekonnter F ragen Anz. aller verschiedener F ragen Gewicht = Anz. richtige Antworten Anz. aller Antworten

Lernf higkeit = a

(2)

(3)

angepasste Lernf higkeit = Lernf higkeit (1 Gewicht) + Abschtzung Gewicht a a a (4) Daraus folgend lsst sich die Berechnung der Lernfhigkeit mit der Formel (5) a a beschreiben.

9

Lernf higkeit = a 2.1.3 Fragenauswahl

Lernf higkeit, a wenn Anz. > Grenze, angepasste Lernf higkeit, sonst. a

(5)

Zur Auswahl einer Frage wird vom Algorithmus eine Zufallszahl generiert, die im Bereich von 0 bis 1 liegt. Anhand dieser Zufallszahl wird entschieden, aus welchem Bereich die Frage gezogen wird. Die mglichen Bereiche sind der Bereich der gekonnten Frao gen, jenen der gut gekonnten Fragen und der Zielbereich. Es werden daher drei Flle a unterschieden, die von der gezogenen Zufallszahl abhngig sind und in der Formel (6) a angefhrt sind. Im ersten Fall, wenn die Zufallszahl kleiner als 0.1 ist, wird eine Frage u aus den mit 1 beziehungsweise gekonnt markierten Fragen gewhlt. Ist die Zufallszahl a grer oder gleich 0.1 und kleiner als 0.15 so wird eine Frage aus dem Bereich der gut o gekonnten Fragen, welche mit dem Wert 2 vermerkt sind, gezogen. Im anderen Fall wird eine Frage aus dem Zielbereich gezogen. gekonnte F ragen, wenn ZZ < 0.1, F ragenbereich(ZZ) = gut gekonnte F ragen, wenn 0.1 ZZ < 0.15, Zielbereich, wenn ZZ 0.15.

(6)

Zielbereich Der Zielbereich ist der Bereich in dem die Fragen liegen, die weder mit gekonnt noch mit gut gekonnt klassiziert wurden. Er beinhaltet daher die Fragen, die fr den weiteren Lernfortschritt des Schlers oder der Schlerin wesentlich sind. Dau u u her ist die Wahrscheinlichkeit eine Frage aus diesem Bereich zu bekommen am grten. o Die Verteilung der Fragenauswahl wurde mit der Uberlegung getroen, dass die Schler Fragen, die sie oensichtlich schon beantworten knnen, wiederholen und u o durch diese Fragen auch motiviert werden, jedoch trotzdem primr die Fragen aus a dem Zielbereich bekommen um den Lernfortschritt zu frdern, sie gleichzeitig aber o nicht durch zu viele schwierige Fragen zu uberfordern und zu demotivieren.

10

Abbildung 1: Lernfhigkeit und Lernbereich a Zur endgltigen Auswahl einer Frage wird zuerst eine Ausgangsbasis berechnet. Um u auch etwas schwierigere Fragen vorzulegen und den Schler oder die Schlerin damit u u herauszufordern wird durch Multiplikation der Lernfhigkeit mit 1.25 der durch die a Lernfhigkeit begrenzte Lernbereich um 25% des gesamten, mglichen Lernbereichs a o erweitert. Das bedeutet, dass bei einer Lernfhigkeit, die grer oder gleich 0.8 ist, a o der gesamte, mgliche Lernbereich herangezogen wird. Die Abbildung 1 zeigt an einem o Beispiel mit einer Lernfhigkeit von 0.60 den Zusammenhang zwischen Lernfhigkeit a a und Lernbereich beziehungsweise erweiterter Lernfhigkeit und erweitertem Lernberea ich. Fr die Berechnung der Basis wird wiederum eine Zufallszahl ermittelt, diesmal u zwischen 1 und der Anzahl aller verschiedener Fragen. Diese Zufallszahl wird mit der erweiterten Lernfhigkeit multipliziert. Durch das Erweitern des Lernbereichs kann a bei einer zuvor bereits hohen Lernfhigkeit die Situation auftreten, dass eine Frage a auerhalb des mglichen Lernbereichs gewhlt wird. Daher muss in diesem Fall die o a schwierigste Frage gewhlt werden. Fasst man das zuvor beschriebene Verfahren zur a Berechnung einer passenden Fragenbasis zusammen ergibt sich die Formel (7). Basis = min( Zuf allszahl(1, Anz. F ragen)Lernf higkeit1.25 , Anz. F ragen) (7) a Damit stets zwischen fr den Schler oder die Schlerin einfacheren und u u u schwierigeren Fragen abgewechselt wird, wird mithilfe einer weiteren Zufallszahl entschieden, ob die Frage, die dem Schler oder der Schlerin anschlieend vorgelegt u u 11

wird, aus dem Bereich der einfacheren Fragen oder aus dem der schwierigeren Fragen gewhlt werden soll. Im Bereich der einfacheren Fragen liegen all jene mit einer a kleineren Fragennummer als die zuvor berechnete Basis, im Bereich der schwierigeren die mit einer greren, wie es in Abbildung 2 dargestellt wird. o

Abbildung 2: Basis bei der Fragenauswahl Im Fall dass die Basis kleiner als 0.5 ist, wird von dieser Nummer ausgehend absteigend nach der nchsten Frage gesucht, die mit 0 beziehungsweise nicht gekonnt a markiert wurde. Im anderen Fall, wenn die Nummer grer oder gleich 0.5 ist, wird o in die andere Richtung, daher aufsteigend, eine Frage mit dem gleichen Suchkriterium gesucht. Die erste gefundene Frage wird dem Schler oder der Schlerin vorgelegt. u u Beispiel Ein Einmaleins-Trainer mit 90 Fragen ist gegeben. Die aktuelle Lernfhigkeit betrgt 0.50, die zufllig gewhlte Zahl ist 60. Die Basis betrgt a a a a a daher 37. Wird jetzt eine Zahl gezogen, die grer oder gleich 0.5 ist und 37, 38 und o 39 sind als gut gekonnt oder gekonnt markiert, so wird die Frage 40 ausgewhlt. a Der Algorithmus merkt sich die zuletzt gestellte Frage und wiederholt den Algorithmus der Fragenauswahl solange bis eine Frage ungleich dieser ausgewhlt wurde. a 2.1.4 Klassizierung der Antwort

Wie bereits beschrieben wird jede Frage nach dem Knnen des Schlers oder der o u Schlerin klassiziert. Eine nicht gekonnte Frage wird mit 0 markiert, gekonnte mit u 1 und gut gekonnte mit 2. Man unterscheidet zwischen gekonnt und gut gekonnt um Fragen, die erst einmal richtig beantwortet wurden und noch mehrmals gebt werden u sollten und Fragen, die der Schler oder die Schlerin oensichtlich schon sehr gut u u beherrscht und die er daher nicht mehr oft uben muss. Zudem wurde das Spielziel er reicht, wenn alle Fragen mit gut gekonnt markiert wurden. Ob eine Frage nach einer richtigen Antwort als gut gekonnt oder gekonnt klassiziert wird, wird mit folgenden Formeln berechnet: Lernunf higkeit = 1 Lernf higkeit a a (8)

12

Klassif ikation =

2, wenn (Auf gabenschwierigkeit Lernunf higkeit) > 0.5, a +1, sonst. (9)

13

2.22.2.1

AndroidEinfuhrung

Android wurde zuerst nur als Plattform fr mobile Endgerte, wie zum Beispiel Smartu a phones, erstellt. Man hat jedoch schnell erkannt, dass sich die Android Plattform auch auf andere Gertetypen portieren lsst, da sie auf den meisten Gerten mit Mikroa a a prozessor laufen kann. So luft Android heute auf einer Vielzahl von verschiedenen a Gertetypen, von der Spielekonsole bis hin zum Tablet-PC [AB10]. Das Android SDK a stellt die Tools und die notwendigen APIs zum Entwickeln von Android Anwendungen in Java zur Verfgung [Dev11g]. Im Folgenden werden die wichtigsten Eigenschaften u der Android Plattform nher erlutert. a a 2.2.2 Systemaufbau

Der Android Software Stack besteht aus dem Betriebssystem, einer Middleware und den Schlsselapplikationen [Dev11g]. Abbildung 3 stellt die wichtigsten Komponenten u der Plattform in einem Diagramm dar.

Abbildung 3: Android System Architecture [Dev11g] Das Betriebssystem basiert auf einem Linux Kernel 2.6, welches neben einigen Optimierungen in erster Linie die Gertetreiber bereitstellt. Die Middleware umfasst a die Android-Laufzeitumgebung, Standardbibliotheken und einen Anwendungsrahmen [Dev11g]. 14

Dalvik Virtual Machine: Die Dalvik Virtual Machine ist der Kern der Laufzeitumgebung und basiert auf der quellonen JVM Apache Harmony1 . Fr jede Androidu Anwendung wird ein eigener Prozess im Betriebssystem gestartet, in welcher wiederum eine eigene Dalvik Virtual Machine, kurz DVM, gestartet wird. In der DVM luft a die Anwendung. Dieser Aufbau hat den groen Vorteil im Bereich der Sicherheit und Verfgbarkeit. Der Unterschied zu einer normalen Java Virtual Machine (JVM) besteht u darin, dass die DVM die Register der Mikroprozessoren benutzt um Zwischenergebnisse zu speichern, wodurch Berechnungen beschleunigt werden knnen [AB10]. o Standardbibliotheken: Sie beinhalten die Kernfunktionen von Android mithilfe von C/C++-Standardbibliotheken. Zu den wichtigen Standardbibliotheken zhlen fola gende [Dev11g]: SQLite ist ein Datenbanksystem fr den mobilen Bereich. u LibWebCore umfasst eine Webbrowser-Umgebung, basierend auf das quelloffene WebKit, welches unter anderem auch von iPhone und Google Chrome eingesetzt wird. Der Surface Manager verwaltet den Zugri auf das Display Subsystem und fgt u alle Oberchenelemente, die am Display dargestellt werden sollen, zusammen, a wobei auch 2D- und 3D-Komponenten zusammgefhrt werden knnen. u o Anwendungsrahmen: Der Anwendungsrahmen erfasst Systemklassen, die in Java geschrieben wurden und dem Entwickler oder der Entwicklerin den Zugri auf Hardwarekomponenten erlauben.

Im obersten Layer der Architektur benden sich die Schlsselapplikationen. u Schlsselapplikationen sind Applikationen, die Android bereits vorinstalliert hat. Dazu u gehren E-Mail Client, SMS Programm, Browser, Kalender, Kontakte und noch einige o mehr [Dev11g]. 2.2.3 Anwendungskomponenten

Die Anwendungskomponenten sind die grundlegenden Bausteine einer Android Anwendung. Jede Komponente stellt einen Zugang fr das System zur Anwendung bereit. Die u Art und Weise wie das System auf die Anwendung zugreift ist jedoch nicht immer die gleiche und lsst sich durch die vier verschiedenen Komponententypen unterscheiden a [Dev11a]. Activities: Eine Activity stellt genau eine Bildschirmseite mit einem User Interface dar. Verfgt eine Anwendung verschiedene Bildschirmseiten, so ist jede einzelne eine u eigene Activity. Die Activities einer Anwendung arbeiten zusammen, jedoch erlaubt die1

http://harmony.apache.org, letzter Abruf 8. Jnner 2012 a

15

Aufteilung in Activities auch den Einsatz einer Activity in einer anderen Anwendung. Activities sind immer von der Klasse Activity abgeleitet, welche uber die Darstellung hinaus auch noch Funktionen fr den Zugri auf Datenquellen und die Hardware bereu itstellt [Dev11a]. Services: Sie laufen im Hintergrund um lnger andauernde Operationen a durchzufhren. Sie kommunizieren nicht mit dem Benutzer oder der Benutzerin u [Dev11a]. Broadcast Receivers: Sie antworten auf systemweite Broadcast Benachrichtigungen. Benachrichtigungen knnen sowohl vom System gesendet werden, zum Beispiel o wenn der Bildschirm ausgeschaltet wird oder die Akkulaufzeit niedrig wird, als auch von einer Anwendung, um andere Anwendungen uber eine Neuigkeit zu informieren [Dev11a]. Content Providers: Sie verwalten die Anwendungsdaten. Daten knnen in der o SQLite Datenbank, im Filesystem und an anderen Orten persistent gespeichert werden. Der Content Provider ermglicht es anderen Anwendungen auf diese Daten zuzugreifen, o wenn sie dazu berechtigt sind [Dev11a]. 2.2.4 User Interface

Die Grundbausteine einer Oberche einer Android Anwendung lassen sich in Aca tivities, Layouts und Views gliedern. Eine Bildschirmseite setzt sich immer aus einer Activity und einem Layout, das Views und weitere Layouts enthalten kann, zusammen [AB10]. Views und Layouts: Jedes Oberchenelement, wie ein Eingabefeld oder eine a Schaltche, ist von der Klasse android.view.View abgeleitet. Views lassen sich a mithilfe von Layouts auf dem Bildschirm anordnen. Layouts sind von der Klasse android.view.ViewGroup abgeleitet. Es gibt verschiedene Arten von Layouts, wie das FrameLayout, welches nur eine View einfach anzeigt, das LinearLayout, welches die Views linear anordnet oder das TableLayout, welches die Views in einer Tabelle anordnet. Die verschiedensten Views und ViewGroups einer Activity werden in einer XMLDatei deniert. Fr jedes View- oder ViewGroup-Objekt wird ein Element in XML u erstellt. Die Objekte beziehungsweise XML-Elemente knnen beliebig komplex vero schachtelt werden. Abbildung 4 zeigt eine mgliche Anordnung von View- und o ViewGroup-Objekten [Dev11a].

16

Abbildung 4: View Hierarchie [Dev11e] Anwendungs-Ressourcen: Sie sind Ressourcen, die von den unterschiedlichen Merkmalen der Gerte abhngig sind und daher extern und von der Anwendung una a abhngig gehalten werden mssen, wie zum Beispiel Bilder. Alle Ressourcen liegen a u im Ordner res/, in welchem sich weitere Ordner fr den jeweiligen Ressourcentyp u und den verschiedenen Kongurationen dazu benden. So liegen Bilder im Ordner res/drawable/, Layouts in res/layout/ und einfache Strings in res/value/. Android bietet noch mehr Ressourcentypen an als die zuvor genannten. Jeder Ressource muss ein eindeutiger Name zugewiesen werden. In der Klasse R, die automatisch generiert wird, bekommt jede Ressource eine Konstante zugewiesen, mit der im Framework auf die Ressource zugegrien werden kann [Mur11]. 2.2.5 Intents

Intents sind Benachrichtungen, die aus einem Empfnger und optional aus Daten bestea hen. Sie knnen Nachrichten und Daten mit anderen Komponenten der Anwendung, o einer anderen Anwendung oder mit der Android Plattform austauschen. Man unterscheidet zwischen externen und internen Intents. Externe Intents sind solche, bei die der Empfnger bereits bekannt ist, wenn der Aufruf programmiert wird. Activities a knnen mit solchen Intents gestartet werden, indem der Klassenname der Activity o beim Aufruf angegeben wird. Unter implizite Intents versteht man Nachrichten, die als Broadcast an alle anderen mglichen Empfnger gesendet werden. Der Empfnger o a a wird bei impliziten Intents nicht speziziert [AB10] [EC11]. 2.2.6 SQLite

SQLite ist ein Datenbanksystem, das sich insbesondere im mobilen Bereich schon seit lngerem durchgesetzt hat und das auch von der Android-Plattform eingesetzt wird. a Der Vorteil von SQLite gegenber herkmmlichen Datenbanken auf Serversystemen u o ist, dass es nur uber die wichtigsten Funktionen verfgt und daher wenig Speicherplatz u 17

in Anspruch nimmt (175 kB bis 250 kB). SQLite ist ein standalone Datenbanksystem, was bedeutet, dass es keinen Server bentigt. Eine SQLite Datenbank ist Teil einer o Anwendung, es kann jedoch auch von mehreren Anwendungen aus auf eine Datenbank zugegrien werden [AB10]. 2.2.7 Android Manifest

Das Android Manifest ist eine XML-Datei und beinhaltet alle Informationen uber die Anwendung, die das System bentigt um die Anwendung zu starten beziehungsweise o auf dem System laufen zu lassen. Diese umfassen alle Komponenten der Anwendung, wie zum Beispiel Activities, sowie auch Berechtigungen und Bibliotheken, die die Anwendung verwendet. Weiters werden wichtige Attribute der Anwendung, wie ihr Name, ihre Versionsnummer und der minimale Android-API-Level im AndroidManifest deniert [AB10]. 2.2.8 Sicherheit

Android nutzt das Sandbox-Prinzip. Wie oben bereits erwhnt luft jede Anwendung a a in ihrer eigenen Umgebung. Bei Android heit das, dass jede Anwendung einen Prozess, einen Bestriebssystembenutzer oder eine Betriebssystembenutzerin, eine DVM, einen Heap und einen Bereich im Dateisystem nur fr sich besitzt. Dieses u Prinzip vermindert das Risiko einer gefhrlichen Sicherheitslcke, nmlich der, dass a u a ein Programm unberechtigt auf die Daten eines anderen zugreift. Weiters wurde das Berechtigungssystem und das Prozessmanagement von Linux ubernommen. Diese Techniken machen Android zu einem richtigen Multitasking-Betriebssystem [AB10]. Ein weiterer wichtiger Aspekt im Bereich der Sicherheit ist die explizite Vergabe von Berechtigungen pro Anwendung. Keiner Anwendung ist es mglich Android Dio enste zu verwenden, wie zum Beispiel die Verbindung zum Internet, ohne explizit die Berechtigung dazu in Form eines Eintrages in das Android-Manifest gesetzt zu haben. In Android sind an die 100 verschiedenen Berechtigungen verfgbar [AB10]. u

18

3

Umsetzung

Dieses Kapitel zeigt, wie die Anwendung umgesetzt wurde. Es umfasst eine Auistung der eingesetzten Werkzeuge und den Systemaufbau der Applikation. Zudem wird die Umsetzung der einzelnen Komponenten und die Einbindung des Designs erlutert. Das a Speedgame wird in diesem Kapitel als Quiz bezeichnet.

3.1

Entwicklungsumgebung

Die Anwendung wurde mit Java und dem Android SDK2 entwickelt. Als Entwicklungsumgebung wurde Eclipse Galileo3 mit dem ADT Plugin fr Android4 eingesetzt. Das u Plugin umfasst Funktionen zur Erstellung des User Interface, zum Debugging mit den Android SDK Tools und zur Exportierung der Applikation in .apk-Files, um sie im Android Market zur Verfgung zu stellen. Weiters ist es mglich mit dem Plugin die u o Applikation in Eclipse direkt auf dem Smartphone zu starten und auch zu debuggen, wenn dieses mit einem Kabel verbunden ist und der Debugging-Modus auf dem Smartphone aktiviert wurde [Dev11f].

3.2

User Interface

Die Erstellung des User Interface hat bei der Entwicklung der Anwendung die zeitintensivste Aufgabe dargestellt. Zu Beginn wurden Mock Ups erstellt, welche jede Bildschirmseite der Anwendung mithilfe einer Zeichnung beschreiben. Dieser Entwurf wurde den dem Projekt zugeteilten Designern vorgelegt, welche parallel zur Programmierung ein Design erstellten und die Graken im SVG Format zur Verfgung u stellten. User Interfaces werden, wie bereits im Kapitel 2.2.4 beschrieben, mithilfe von sogenannten Activitys realisiert. Fr den Einmaleins-Trainer wurden 15 Activitys erstellt. u Fr jede Activity-Klasse wurde eine XML-Datei erstellt, welche das Layout der Bildu schirmseite beschreibt. Fr diese Anwendung bestehen die XML-Dateien hauptschlich u a aus Bildern und Textfeldern, welche mithilfe von vorgefertigten Layouts, wie das TableLayout, auf der Bildschirmseite positioniert wurden. In der Abbildung 5 ist ein CodeAuszug aus einer XML-Datei zu sehen, die den Login Screen deniert.2

http://developer.android.com/sdk, letzter Abruf 8. Jnner 2012 a http://eclipse.org/galileo, letzter Abruf 8. Jnner 2012 a 4 http://developer.android.com/sdk/eclipse-adt.html, letzter Abruf 8. Jnner 2012 a3

19

Abbildung 5: Code-Auszug: Layout fr den Login-Screen u Jede Activity-Klasse hat eine Methode onCreate(..), die beim Erstellen der Activity aufgerufen wird. In dieser Methode wird der Name der dazugehrigen XML-Datei o angegeben. Zudem knnen hier die Elemente der XML-Datei manipuliert werden, wie o zum Beispiel in dieser Anwendung von der Sprache abhngige Graken ersetzt werden a mssen wenn die Spache eine andere ist als die Standardsprache. Zudem knnen hier u o den Elementen Event Listener hinzugefgt werden. Als Beispiel wird in Abbildung 6 u ein Code-Auszug aus der Klasse LoginActivity gebracht. Alle Activity-Klassen mssen u im Android Manifest angefhrt werden. u

20

Abbildung 6: Code-Auszug: LoginActivity

3.3

Sessions

Eine Session ist eine Spielsitzung, in welcher der Schler oder die Schlerin ein Training u u oder das Quiz spielt. Da die Oberche fr das Spiel fr eine Trainer-Session und eine a u u Quiz-Session gleich aussehen soll, damit der Schler sich nur mit einer Oberche u a vertraut machen muss, ist es fr die Klasse GameActivity, welche fr die Darstellung u u der Frage und der Antwortmglichkeiten verantwortlich ist, unerheblich ob es sich um o eine Trainer-Session oder eine Quiz-Session handelt. Daher musste eine einheitliche Schnittstelle fr die beiden Session-Typen geschaen werden. Aus diesem Grund gibt u es ein Interface Session, welches durch die Klassen TrainerSession und QuizSession implementiert wird. Dies ermglicht der Klasse GameActivity uber das Session-Objekt o unabhngig vom Sitzungstyp eine Frage zu holen beziehungsweise eine Antwort zu a ubergeben. Die Abbildung 7 zeigt das Klassendiagramm fr diesen Teil des Anwendung. u 21

Abbildung 7: Klassendiagramm Session

22

3.4

Trainer

Der Trainer ist die Spielart, bei welcher der Lernalgorithmus angewendet wird. Alle Daten werden am Server gespeichert, daher wird fr das Spielen mit dem Trainer eine u Internetverbindung bentigt, wofr die entsprechenden Berechtigungen in das Manio u fest eingetragen werden mussten. Die Webservices, die zur Kommunikation mit dem Server bentigt werden, wurden bereits zur Verfgung gestellt. Der Lernalgorithmus o u ist in den Webservices implementiert. Jeder Schler oder jede Schlerin bentigt ein u u o Benutzerkonto, das er oder sie mit der Applikation erstellen kann. Um ein Training zu starten oder die Statistik einzusehen muss man sich mit dem Benutzernamen und dem Passwort anmelden. Die Klasse WebserviceClient stellt die Methoden zum Erstellen eines neuen Benutzerkontos und fr den Login zur Verfgung, sowie auch Methoden, die u u whrend des Spielverlaufs bentigt werden, wie Pretest uberprfen und aktualisieren, a o u eine neue Frage holen und das Setzen einer Antwort. Zudem kann die aktuelle Statistik des Users abgefragt werden. Uber die Benutzer ID, die der Webserver bei einem erfolgreichen Login liefert, werden alle weiteren benutzerspezischen Daten abgefragt. Das Klassendiagramm in Abbildung 8 zeigt die Klassen, die fr den Trainer erforderlich u sind.

23

Abbildung 8: Klassendiagramm Trainer Die Klasse WebserviceClient arbeitet mit der Apache HttpClient-Bibliothek5 , welche bereits in der Android-Bibliothek enthalten ist. Fr jede Anfrage an den Webu server wird, nachdem ein HttpClient erstellt wurde, ein HttpGet-Request an den Webserver geschickt. Anschlieend bekommt man vom Server eine Antwort in Form eines HttpResponse, das ein HttpEntity beinhaltet. Die Daten werden im JSON-Format6 zwischen Client und Server ubertragen und knnen daher einfach mit der JSON-Bibliothek o 7 fr Java , die ebenfalls bereits in der Android-Bibliothek enthalten ist, geparst werden. u Die Implementierung dieses Prozesses ist im Code-Auszug 9 zu sehen.5

http://hc.apache.org/httpclient-3.x, letzter Abruf 8. Jnner 2012 a http://www.json.org, letzter Abruf 8. Jnner 2012 a 7 http://json.org/java, letzter Abruf 8. Jnner 2012 a6

24

Abbildung 9: Code-Auszug: WebserviceClient

25

3.5

Quiz

Das Quiz selbst bentigt keine Internetverbindung. Die Schwierigkeitsstufe, die vom o Benutzer oder der Benutzerin ausgewhlt werden kann, wird in einer Datei gespeichert a und bei einer Anderung uberschrieben. Es gibt einen Highscore, der die Sessions nach der erreichten Punktezahl ordnet. Die Punkte werden mit folgenden Formeln berechnet: Durchschnittszeit = durchschnittliche Antwortzeit Anzahl richtige Antworten (10)

P unktezahl =

Anzahl richtige Antworten Anzahl f alsche Antworten 1000 (11) Durchschnittszeit

Die fr den Highscore erforderlichen Daten werden in einer SQLite Datenbank u gespeichert. Abbildung 10 zeigt in einem Klassendiagramm die Verwendung der Datenbank-Klasse QuizDatabase. Die Klasse QuizOpenHelper ist von der AndroidKlasse SQLiteOpenHelper abgeleitet und ist verantwortlich dafr, dass die Datenbank u mitsamt ihren Tabellen erstellt wird, falls sie noch nicht existiert, und bei Bedarf genet wird [Dev11c]. o

Abbildung 10: Klassendiagramm Quiz

26

4

Anwendung

Der folgende Abschnitt zeigt die Anwendung des Einmaleins-Trainers. Anhand von Screenshots werden die Funktionen der Anwendung und die Navigation durch dieser vorgestellt und erlutert. a

4.1

Start

Nach dem Start der Anwendung ist ein Start-Screen zu sehen, wie die Abbildung 11 zeigt. Danach erscheint das Hauptmen wie in Abbildung 12, auf dem man auswhlen u a kann ob man den Trainer oder das Quiz starten mchte, oder die Hilfe lesen mchte. o o

Abbildung 11: Start

Abbildung 12: Hauptmen u

4.2

Trainer

Startet man den Trainermodus, so erscheint der Anmelde-Screen, wie er in Abbildung 14 zu sehen ist. Hier hat man die Mglichkeit sich neu zu registrieren oder sich o anzumelden, falls man bereits registriert ist. Verfgt das Smartphone uber keine Interu netverbindung, so bekommt man eine Benachrichtigung darber, worauf man wieder u zum Hauptmen umgeleitet wird. u 4.2.1 Registrieren

Die Registrierung erfordert einen Benutzernamen und ein Passwort, welches ein weiteres Mal zur Besttigung eingegeben werden muss. Dieser Screen wird in Abbildung a 13 gezeigt. Nach der Besttigung bekommt man bei einer erfolgreichen Registrierung a eine Nachricht mit dieser Information und wird anschlieend automatisch angemeldet. Schlgt die Registrierung fehl weil die Eingaben unvollstndig sind, die eingegebea a nen Passwrter nicht ubereinstimmen oder der Benutzername schon vergeben ist, so o

27

wird man darber informiert und hat die Mglichkeit die Eingaben zu vervollstndigen u o a beziehungsweise zu ndern. a

Abbildung 13: Registrieren

4.2.2

Anmelden

Durch Eingabe des Benutzernamens und des Passworts kann man sich anmelden. Kommt es durch fehlerhafte Eingaben zu einem Fehler bei der Anmeldung, wird man darber benachrichtigt und hat die Mglichkeit die Eingaben zu ndern. u o a Nach erfolgreicher Anmeldung beziehungsweise Registrierung wird das Trainermen u angezeigt, welches in Abbildung 15 gezeigt wird. Hier kann man auswhlen, ob man a spielen mchte, in die Statistik einsehen mchte oder sich wieder vom System abmelden o o mchte. o

Abbildung 14: Anmelden Abbildung 15: Trainermen u

28

4.2.3

Spielen

Whlt man das Start-Icon, so beginnt sofort das Spiel. Die Abbildung 16 zeigt den a dazugehrigen Screen. Man hat ab diesem Zeitpunkt 60 Sekunden Zeit die Frage zu o beantworten, was auch fr jede weitere Frage gilt. Die verbleibende Zeit kann man im u Counter ablesen. Mit dem roten Kreuz kann man die zuletzt eingegebene Zahl wieder lschen. Mit dem grnen Hacken besttigt man die Eingabe. Man kann die Antwort nur o u a besttigen, wenn man eine Eingabe gettigt hat. Hat man nach Ablauf der Zeit nichts a a eingegeben, so gilt die Frage als falsch beantwortet. Ist die Frage richtig, so wird sofort die nchste Frage gestellt und man sieht fr kurze Zeit einen grnen Smiley. Wurde a u u eine Frage falsch beantwortet, so bekommt man einen neuen Screen mit dem richtigen Ergebnis zu sehen. Ein Beispiel dafr wird in Abbildung 17 gezeigt. Durch Berhren des u u Displays besttigt man dies, woraufhin eine neue Frage geladen wird. Mchte man das a o Training abbrechen, so berhrt man das Stop-Icon. Daraufhin erscheint eine Ubersicht u uber die Anzahl der richtigen und die der falschen Antworten der Trainer-Session davor, wie es in Abbildung 18 zu sehen ist. Mit einem Klick auf den Pfeil net sich der o Statistik-Screen.

Abbildung 16: Spielen

Abbildung Antwort

17:

Falsche

Abbildung 18: Spielstatistik

29

4.2.4

Statistik

Der Statistik-Screen ist sowohl im Querformat, wie es in Abbildung 19 ersichtlich ist, als auch im Hochformat, wie die Abbildung 20 zeigt, verfgbar. Er zeigt den aktuellen u Stand der benutzerspezischen Parameter an, die fr den Lernalgorithmus bentigt u o werden. In einer Tabelle werden alle Sitzungen mit der Anzahl der dabei neu gelernten Fragen und die Anzahl aller Fragen aufgelistet.

Abbildung 19: Allgemeine Statistik im Querformat Abbildung 20: Allgemeine Statistik im Hochformat

4.3

Speedgame

Folgt man das Speedgame-Icon im Hauptmen, so net sich das Speedgame-Men. u o u Die Abbildung 21 zeigt einen Screenshot davon. Hier kann man das Speedgame starten oder den Schwierigkeitsgrad ndern, sowie auch in den Highscore einsehen. Der Spiela Screen ist beim Speedgame der gleiche wie beim Trainer. Beim Speedgame gibt es jedoch in der Spielstatistik, die am Ende eines Spiels angezeigt wird, ein zustzliches a Textfeld fr den Benutzernamen. Schreibt man etwas in dieses Feld, so wird die Sitzung u im Highscore eingetragen, andernfalls nicht.

30

Abbildung 21: Speedgame-Men u 4.3.1 Auswahl der Schwierigkeitsstufe

Auf diesem Screen, wie er in Abbildung 22 zu sehen ist, kann der Benutzer eine Schwierigkeitsstufe auswhlen, wobei x fr leicht, xx fr mittel und xxx fr schwierig a u u u steht.

Abbildung 22: Auswahl der Schwierigkeitsstufe

31

4.3.2

Highscore

Der Highscore zeigt alle gespeicherten Sitzungen. Diese sind nach ihrer Punktezahl absteigend geordnet. Ein Beispiel fr einen Highscore wird in Abbildung 23 gezeigt. u

Abbildung 23: Highscore

4.4

Hilfe

Im Hilfe-Screen wird kurz erklrt, was der Trainer und was das Speedgame ist. Er ist a in Abbildung 24 zu sehen.

Abbildung 24: Hilfe

32

5

Diskussion

Das Ziel der Arbeit war es, einen Einmaleins-Trainer mit adaptivem Lernalgorithmus fr die Android-Plattform zu entwickeln. Die Anwendung steht mit Abschluss der Aru beit im Android Market zum Download bereit8 . Um die Anforderung Mehrsprachigkeit zu untersttzen, wurde sie in der ersten Version in Deutsch und Englisch verentlicht. u o Es knnen jedoch beliebig viele Sprachen auf einfache Weise hinzugefgt werden. o u Aufgrund der Einbindung von sehr vielen Graken, die teilweise auch als Schaltchen eingesetzt werden, gibt es nach wie vor Probleme mit den verschiedenen a Displaygren und Pixeldichte der Gerte, die die Android-Plattform einsetzen. Aus o a diesem Grund ist die einwandfreie Benutzung der Anwendung derzeit nur mit Smartphones, die uber einen Bildschirm in normaler Gre und einer hohen Pixeldichte, o die in Android als High density oder kurz als hdpi bezeichnet wird, verfgen, mglich u o [Dev11d]. Diese Eigenschaften weisen am 3. November 2011 70.8 % der androidfhigen a Gerte auf [Dev11b]. a Probleme gibt es mit den Antwortzeiten des Servers. Zeitweise ist dieser sehr langsam, was in Zukunft verbessert werden sollte. Um einen strungsfreien Spieluss zu o ermglichen sollten auch auf Seite der Anwendung eine schlechte Internetverbindung o und langsame Antwortzeiten des Servers besser gehandhabt werden. Das Spielen mit einer guten WLAN-Verbindung ist mit der ersten Version problemlos mglich. o Ein weiterer Punkt ist die Untersttzung von anderen Rechenaufgaben u beziehungsweise Fragenarten, fr die der implementierte Lernalgorithmus einsetu zbar ist. Die erste Version der Anwendung wurde speziell fr das Einmaleins u entwickelt. Um andere Fragenarten und Anwortmglichkeiten zu untersttzen muss o u die Anwendung etwas abgendert werden. In einer nchsten Version knnte man auch a a o die Mglichkeit anbieten, Parameter, die fr den Lernalgorithmus bentigt werden, o u o direkt am Smartphone zu ndern. a Weitere Verbesserungsmglichkeiten werden sich zeigen, nachdem die Anwendung o von Schlern getestet wurde. u

8

https://market.android.com/details?id=at.tugraz.einmaleinstrainer

33

6

Zusammenfassung und Ausblick

Das Ergebnis dieser Arbeit, ein Einmaleins-Trainer als Android Applikation, ist nun im Android Market verfgbar. Es war mglich alle Funktionen der Webanwendung u o fr die Android Plattform zu adaptieren. Damit steht der Trainer als Webanwendung, u iPhone Applikation und Android Applikation zur Verfgung. Die Tatsache, dass ein u Benutzer oder eine Benutzerin mit dem selben Benutzerkonto auf allen angebotenen Plattformen spielen kann, ohne bei einem Wechsel einen Verlust der bisherigen Erfolge hinnehmen zu mssen, ist eine der Besonderheiten des Trainers. Besonders attraktiv u wurde die Applikation durch das Design. Die Applikation erscheint kindgerecht sehr farbenfroh, was fr Kinder besonders ansprechend ist. u Mit dieser Arbeit hatte ich die Mglichkeit meine Kenntnisse in der Android o Programmierung zu erweitern, insbesondere was die Oberchengestaltung betrit. a Zuknftig mssen noch Modikationen vorgenommen werden, da es nach wie vor u u Verbesserungsmglichkeiten gibt beziehungsweise ein Praxistest erst erfolgt. In der o zuknftigen Entwicklung des Smartphone-Bereichs haben Lernprogramme durch den u stetig wachsenden Smartphone-Markt sicherlich Potential. Gerade fr die jngste Genu u eration der Smartphone-Besitzer, nmlich fr Kinder bis 10 Jahren, gehren Lernproa u o gramme die speziell fr Kinder entwickelt wurden zu den vermutlich wenigen Appu likation im Android Market, die auch fr sie geeignet sind. Ich hoe mit dieser Arbeit u einen Beitrag auf diesem Gebiet geleistet zu haben und bin schon gespannt, wie die Anwendung bei Schlern ankommt. Zum Schluss mchte ich mich bei der TU Graz, dem u o Institut fr Informationssysteme und Computer Medien und meinem Betreuer Univ.u Doz. Dipl.-Ing. Dr. Martin Ebner dafr bedanken, dass ich die Mglichkeit bekommen u o habe diese Arbeit umzusetzen.

34

Literatur[AB10] Markus Pant Arno Becker. Android 2. dpunkt.verlag, 2010. [Dev11a] Android Developers. Application fundamentals. Online-Quelle, 2011. http: //developer.android.com/guide/topics/fundamentals.html. [Dev11b] Android Developers. Screen sizes and densities. Online-Quelle, 2011. http: //developer.android.com/resources/dashboard/screens.html. [Dev11c] Android Developers. Sqliteopenhelper. Online-Quelle, 2011. http://developer.android.com/reference/android/database/sqlite/ SQLiteOpenHelper.html. [Dev11d] Android Developers. Supporting multiple screens. Online-Quelle, 2011. http://developer.android.com/guide/practices/screens_support. html. [Dev11e] Android Developers. User interface. Online-Quelle, 2011. developer.android.com/guide/topics/ui/index.html. http://

[Dev11f] Android Developers. Using hardware devices. Online-Quelle, 2011. http: //developer.android.com/guide/developing/device.html. [Dev11g] Android Developers. What is android? Online-Quelle, 2011. http:// developer.android.com/guide/basics/what-is-android.html. [EC11] Kate Greenwood David Wagner Erika Chin, Adrienne Porter Felt. Analyzing inter-application communication in android. Online-Quelle, 2011. www.eecs. berkeley.edu/~emc/papers/mobi168-chin.pdf. [Kot11] Georg Kothmeier. Bachelorarbeit: Implementation eines Lernfortschrittalgorithmus fr einen Einmaleins-Trainer. TU Graz, 2011. u [Ml11] Peter Mller. u u Android-marktanteil nahe 50 prozent. OnlineQuelle, 2011. http://www.macwelt.de/artikel/_News/377932/android_ marktanteil_nahe_50_prozent/1. [Mur11] M. Murphy. Beginning Android 3. Apress Series. Apress, 2011. [Nic11] Kamal Nicholas. Das klassische handy stirbt aus. OnlineQuelle, 2011. http://www.androidpit.de/de/android/blog/396353/ Das-klassische-Handy-stirbt-aus. [Sch11] Holger Schmidt. Die software-entwickler werden erwachsen. OnlineQuelle, 2011. http://www.faz.net/aktuell/beruf-chance/campus/ neue-berufsfelder-die-software-entwickler-werden-erwachsen-11373636. html.

35