You are on page 1of 36

Android Applikation Einmaleins Trainer

Bachelorarbeit von Katrin Mußbacher

Univ.-Doz. Dipl.-Ing. Dr. Martin Ebner Technische Universit¨t Graz a Institut f¨r Informationssysteme und Computer Medien u unterst¨tzt von Netidee 2011 u 9. J¨nner 2012 a

Betreuer:

Erkl¨rung a
Hiermit versichere ich, dass ich die vorliegende Arbeit selbstst¨ndig verfasst und keine a anderen als die angegebenen Quellen und Hilfsmittel benutzt habe, dass alle Stellen der Arbeit, die w¨rtlich 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 Pr¨fungsbeh¨rde vorgelegt wurde. u o

Graz am 9. J¨nner 2012 a

Abstract
Diese Arbeit befasst sich mit einem adaptiven Einmaleins-Trainer f¨r Sch¨ler von 6 u u bis 10 Jahren, den es bereits als Webapplikation gibt und mit dieser Arbeit auch als Anwendung f¨r das Betriebssystem Android entwickelt wurde. Die Besonderheit des u Trainers ist, dass er sich der Lernf¨higkeit des Sch¨lers 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 ausgew¨hlt 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 regelm¨ßig aktualisiert wird. a Am Ende jedes Trainings wird eine Statistik berechnet, die uber die Anwendung abruf¨ bar ist. Zus¨tzlich zum Trainer wurde ein sogenanntes Speedgame implementiert, mit a dem der Benutzer oder die Benutzerin auch ohne Internetverbindung das Einmaleins uben kann. Das Speedgame w¨hlt 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 zuf¨llige Frage aus der Fragenklasse gezogen, a die zuvor von dem Benutzer oder der Benutzerin ausgew¨hlt wurde. Die Oberfl¨che ist a a durch die Verwendung kinderfreundlicher Grafiken besonders f¨r Kinder ansprechend u gestaltet.

Inhaltsverzeichnis
Abbildungsverzeichnis 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 Klassifizierung der Aufgaben 2.1.2 Lernf¨higkeit . . . . . . . . a 2.1.3 Fragenauswahl . . . . . . . 2.1.4 Klassifizierung der Antwort 2.2 Android . . . . . . . . . . . . . . . 2.2.1 Einf¨hrung . . . . . . . . . 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

Abbildungsverzeichnis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Lernf¨higkeit und Lernbereich . . . . . . . a Basis bei der Fragenauswahl . . . . . . . . Android System Architecture [Dev11g] . . View Hierarchie [Dev11e] . . . . . . . . . . Code-Auszug: Layout f¨r 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

1
1.1

Fragestellung
Einleitung

Smartphones erfreuen sich immer gr¨ßerer Beliebtheit und ersetzen dabei immer ¨fter o o die klassischen Mobiltelefone [Nic11]. Die Entwicklung von Applikationen f¨r 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 T¨tigkeiten des Alltags auf ein Smartphone verlagert. Dies f¨hrt 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 f¨r Kinder. Neue Technologien u wie Smartphones scheinen in Form von Spielen und durch schnelles Feedback f¨r u Kinder lernf¨rderlich zu sein. Im Zuge anderer Arbeiten an der TU Graz wurde bereits o eine Applikation als Webanwendung und eine App f¨r das iPhone zum Trainieren u des Einmaleins mit dem Einsatz des speziellen Lernalgorithmus f¨r Sch¨ler 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 h¨ufigsten eingesetzten a Betriebssyteme f¨r Smartphones geworden ist. Im zweiten Quartal 2011 ist Android u mit einem Marktanteil von 48 Prozent die f¨hrende Smartphone-Plattform gewesen u [M¨l11]. Aufgrund dieser Tatsache ist das Ziel dieser Arbeit, die Anwendung zum u Trainieren des Einmaleins auch f¨r Android bereitzustellen. u

Dieses Kapitel befasst sich mit den Anforderungen an die Anwendung. Im n¨chsten a werden die zur Entwicklung notwendigen Technologien, wie die Funktionsweise des Lernalgorithmus und die wesentlichen Punkte in der Android Programmierung erl¨utert. a Die darauffolgenden 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 K¨nnen anzupassen. Eine wichtige o Anforderung ist dabei eine kinderfreundliche Oberfl¨che mit m¨glichst 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 offline gespielt werden kann, jedoch keinen Lernalgorithmus anbietet. Die Anforderung an diese beiden Spielarten sind anschließend 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 Maßeinheit wird eine sogenannte Lernrate herangezogen, welche die Lernf¨higkeit 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 n¨chste Aufgabe ausgew¨hlt, wobei auch gekonnte Fragen mehrmals a a gefragt werden, wenn auch mit geringer Wahrscheinlichkeit. Dies hat den Vorteil, dass sowohl f¨r gute Sch¨ler, als auch f¨r Sch¨ler mit Rechenschw¨che, die durch u u u u a den Algorithmus automatisierte Aufgabenauswahl nicht zu Demotivation f¨hrt. F¨r u u die Auswahl des Trainers wird eine Internetverbindung ben¨tigt, da die Aufgabeno stellungen mithilfe des Lernalgorithmus, der am Server implementiert ist, ausgew¨hlt 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 M¨glichkeit der Registrierung auf dem Android-Device. Das Trainieren o ist damit auf allen angebotenen Plattformen (Browser, iPhone, Android) mit dem selben Benutzerkonto m¨glich. o

1.2.2

Speedgame

Zus¨tzlich zum Trainer, der auf den Lernalgorithmus aufbaut, gibt es ein Speedgame, a welches die Aufgaben durch Zufall ausw¨hlt und mit welchem das Kind die Aufgaben a noch einmal offline uben kann. Die Aufgaben sind in die drei Schwierigkeitsstufen ¨ einfach, mittel und schwierig eingeteilt. Daf¨r 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 Benutzeroberfl¨che wie beim Trainer. Das Speedgame hat auch einen Highscore, um a den Ehrgeiz der Kinder zu erh¨hen. o Eine weitere Anforderung ist die Mehrsprachigkeit. Die Anwendung ist sowohl in englischer als auch deutscher Sprache verf¨gbar. Weiters ist die Einbindung zus¨tzlicher u a Sprachen m¨glich. o

7

2
2.1

Stand der Technik
Algorithmus

Die Basis der Anwendung bildet ein spezieller Lernalgorithmus, der bereits vor Beginn dieser Arbeit entwickelt und getestet wurde. Der Lernalgorithmus w¨hlt die n¨chste a a Aufgabe f¨r den Sch¨ler oder die Sch¨lerin aus. Er wurde entwickelt um die Aufgabenu u u stellungen individuell an die bisherigen Kenntnisse und die Lernf¨higkeit des Sch¨lers a u oder der Sch¨lerin anzupassen, mit dem Ziel den Sch¨ler oder die Sch¨lerin durch eine u u u zu seinem aktuellen Lernstand passende Aufgabe gezielt zu unterst¨tzen. Die Auswahl u einer passenden Aufgabe ist im Lernprozess von wichtiger Bedeutung, da eine Aufgabenauswahl nach zum Beispiel Zufallsprinzip den Sch¨ler oder die Sch¨lerin 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 Sch¨lers oder der Sch¨lerin gest¨rkt - mit dem u u a Ziel, m¨glichst schnelle Lernerfolge zu verzeichnen und die Freude und das Interesse o am Lernstoff zu f¨rdern. o Im Folgenden werden die Komponenten und die Funktionsweise des Lernalgorithmus beschrieben. 2.1.1 Klassifizierung der Aufgaben

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

Den Kern des Lernalgorithmus bildet die Kennzahl der Lernf¨higkeit beziehungsweise a Lernunf¨higkeit. Sie wird prozentuell angegeben und gibt den maximal m¨glichen a o Schwierigkeitsgrad der n¨chsten Aufgabe an. Die Lernf¨higkeit wird f¨r jeden Sch¨ler a a u u und jede Sch¨lerin berechnet und nach Beantwortung einer Frage aktualisiert. Zur u ersten Berechnung der Lernf¨higkeit wird das Wissen des Sch¨lers oder der Sch¨lerin 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 Lernf¨higkeit. a Jede Frage wird nach dem K¨nnen der Frage klassifiziert: o

8

Index Klassifikationsbezeichnung 0 nicht gekonnt 1 gekonnt 2 gut gekonnt

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

Um anfangs große Schwankungen im Hinblick auf die Lernf¨higkeit zu vermeiden, a wird eine Absch¨tzung in den Algorithmus zur Berechnung der Lernf¨higkeit miteina a bezogen bis eine bestimmte Anzahl an Fragen beantwortet wurde. Diese Absch¨tzung 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 Absch¨tzung 0.75. Mit jeder falschen Beantwortung nimmt die Absch¨tzung ab. So a a liegt sie bei 0 wenn keine der Aufgaben im Vortest richtig beantwortet wurde. Die Grenze, ab der die Absch¨tzung nicht mehr miteinbezogen wird, h¨ngt von a a der Anzahl der bis zu diesem Zeitpunkt beantworteten, verschiedenen Fragen ab. Die folgende Formel definiert die Grenze: Grenze = Absch¨tzung · Anz. aller verschiedener F ragen a (1)

Muss die Lernf¨higkeit neu angepasst werden weil der Sch¨ler oder die Sch¨lerin a u u eine Frage beantwortet hat, so wird zuerst die zuvor beschriebene Grenze, ab welcher die Absch¨tzung nicht mehr in die Berechnung einfließt, ermittelt. Ist die Anzahl a der beantworteten Fragen gr¨ßer als die ermittelte Grenze, so wird die Lernf¨higkeit o a ohne Einbeziehung der Absch¨tzung anhand der Formel (2) neu berechnet. Die a Lernf¨higkeit ist in diesem Fall nur abh¨ngig vom Verh¨ltnis 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¨ sch¨tzung miteinbezogen. In diesem Fall wird zuerst ein Gewicht berechnet, welches a das Ergebnis der Lernf¨higkeit mithilfe dem Verh¨ltnis der richtigen Antworten zu den a a falschen Antworten gewichtet. Zu dieser gewichteten Lernf¨higkeit wird anschließend a die gewichtete Absch¨tzung addiert. Dieses Verfahren ist mit der Formel der Gewicha tung (3) und der Formel der angepassten Lernf¨higkeit (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) + Absch¨tzung · Gewicht a a a (4) Daraus folgend l¨sst sich die Berechnung der Lernf¨higkeit 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 m¨glichen Bereiche sind der Bereich der gekonnten Frao gen, jenen der gut gekonnten Fragen und der Zielbereich. Es werden daher drei F¨lle a unterschieden, die von der gezogenen Zufallszahl abh¨ngig sind und in der Formel (6) a angef¨hrt sind. Im ersten Fall, wenn die Zufallszahl kleiner als 0.1 ist, wird eine Frage u aus den mit 1 beziehungsweise gekonnt markierten Fragen gew¨hlt. Ist die Zufallszahl a gr¨ßer 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 klassifiziert wurden. Er beinhaltet daher die Fragen, die f¨r den weiteren Lernfortschritt des Sch¨lers oder der Sch¨lerin wesentlich sind. Dau u u her ist die Wahrscheinlichkeit eine Frage aus diesem Bereich zu bekommen am gr¨ßten. o ¨ Die Verteilung der Fragenauswahl wurde mit der Uberlegung getroffen, dass die Sch¨ler Fragen, die sie offensichtlich schon beantworten k¨nnen, wiederholen und u o durch diese Fragen auch motiviert werden, jedoch trotzdem prim¨r die Fragen aus a dem Zielbereich bekommen um den Lernfortschritt zu f¨rdern, sie gleichzeitig aber o nicht durch zu viele schwierige Fragen zu uberfordern und zu demotivieren. ¨

10

Abbildung 1: Lernf¨higkeit und Lernbereich a Zur endg¨ltigen Auswahl einer Frage wird zuerst eine Ausgangsbasis berechnet. Um u auch etwas schwierigere Fragen vorzulegen und den Sch¨ler oder die Sch¨lerin damit u u herauszufordern wird durch Multiplikation der Lernf¨higkeit mit 1.25 der durch die a Lernf¨higkeit begrenzte Lernbereich um 25% des gesamten, m¨glichen Lernbereichs a o erweitert. Das bedeutet, dass bei einer Lernf¨higkeit, die gr¨ßer oder gleich 0.8 ist, a o der gesamte, m¨gliche Lernbereich herangezogen wird. Die Abbildung 1 zeigt an einem o Beispiel mit einer Lernf¨higkeit von 0.60 den Zusammenhang zwischen Lernf¨higkeit a a und Lernbereich beziehungsweise erweiterter Lernf¨higkeit und erweitertem Lernberea ich. F¨r 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 Lernf¨higkeit multipliziert. Durch das Erweitern des Lernbereichs kann a bei einer zuvor bereits hohen Lernf¨higkeit die Situation auftreten, dass eine Frage a außerhalb des m¨glichen Lernbereichs gew¨hlt wird. Daher muss in diesem Fall die o a schwierigste Frage gew¨hlt 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 ¨higkeit·1.25 , Anz. F ragen) (7) a Damit stets zwischen f¨r den Sch¨ler oder die Sch¨lerin einfacheren und u u u schwierigeren Fragen abgewechselt wird, wird mithilfe einer weiteren Zufallszahl entschieden, ob die Frage, die dem Sch¨ler oder der Sch¨lerin anschließend vorgelegt u u 11

wird, aus dem Bereich der einfacheren Fragen oder aus dem der schwierigeren Fragen gew¨hlt 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 gr¨ßeren, 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 n¨chsten Frage gesucht, die mit 0 beziehungsweise nicht gekonnt a markiert wurde. Im anderen Fall, wenn die Nummer gr¨ßer 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 Sch¨ler oder der Sch¨lerin vorgelegt. u u Beispiel Ein Einmaleins-Trainer mit 90 Fragen ist gegeben. Die aktuelle Lernf¨higkeit betr¨gt 0.50, die zuf¨llig gew¨hlte Zahl ist 60. Die Basis betr¨gt a a a a a daher 37. Wird jetzt eine Zahl gezogen, die gr¨ßer oder gleich 0.5 ist und 37, 38 und o 39 sind als gut gekonnt oder gekonnt markiert, so wird die Frage 40 ausgew¨hlt. a Der Algorithmus merkt sich die zuletzt gestellte Frage und wiederholt den Algorithmus der Fragenauswahl solange bis eine Frage ungleich dieser ausgew¨hlt wurde. a 2.1.4 Klassifizierung der Antwort

Wie bereits beschrieben wird jede Frage nach dem K¨nnen des Sch¨lers oder der o u Sch¨lerin klassifiziert. 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 ge¨bt werden u sollten und Fragen, die der Sch¨ler oder die Sch¨lerin offensichtlich 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 klassifiziert 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.2
2.2.1

Android
Einfuhrung ¨

Android wurde zuerst nur als Plattform f¨r mobile Endger¨te, wie zum Beispiel Smartu a phones, erstellt. Man hat jedoch schnell erkannt, dass sich die Android Plattform auch auf andere Ger¨tetypen portieren l¨sst, da sie auf den meisten Ger¨ten mit Mikroa a a prozessor laufen kann. So l¨uft Android heute auf einer Vielzahl von verschiedenen a Ger¨tetypen, 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 Verf¨gung [Dev11g]. Im Folgenden werden die wichtigsten Eigenschaften u der Android Plattform n¨her erl¨utert. a a 2.2.2 Systemaufbau

Der Android Software Stack besteht aus dem Betriebssystem, einer Middleware und den Schl¨sselapplikationen [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 Ger¨tetreiber 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 quelloffnen JVM Apache Harmony1 . F¨r 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 l¨uft a die Anwendung. Dieser Aufbau hat den großen Vorteil im Bereich der Sicherheit und Verf¨gbarkeit. 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 k¨nnen [AB10]. o Standardbibliotheken: Sie beinhalten die Kernfunktionen von Android mithilfe von C/C++-Standardbibliotheken. Zu den wichtigen Standardbibliotheken z¨hlen fola gende [Dev11g]: • SQLite ist ein Datenbanksystem f¨r 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 Zugriff auf das Display Subsystem und f¨gt u alle Oberfl¨chenelemente, die am Display dargestellt werden sollen, zusammen, a wobei auch 2D- und 3D-Komponenten zusammgef¨hrt werden k¨nnen. u o Anwendungsrahmen: Der Anwendungsrahmen erfasst Systemklassen, die in Java geschrieben wurden und dem Entwickler oder der Entwicklerin den Zugriff auf Hardwarekomponenten erlauben.

Im obersten Layer der Architektur befinden sich die Schl¨sselapplikationen. u Schl¨sselapplikationen sind Applikationen, die Android bereits vorinstalliert hat. Dazu u geh¨ren 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 f¨r das System zur Anwendung bereit. Die u Art und Weise wie das System auf die Anwendung zugreift ist jedoch nicht immer die gleiche und l¨sst sich durch die vier verschiedenen Komponententypen unterscheiden a [Dev11a]. Activities: Eine Activity stellt genau eine Bildschirmseite mit einem User Interface dar. Verf¨gt eine Anwendung verschiedene Bildschirmseiten, so ist jede einzelne eine u eigene Activity. Die Activities einer Anwendung arbeiten zusammen, jedoch erlaubt die
1

http://harmony.apache.org, letzter Abruf 8. J¨nner 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 f¨r den Zugriff auf Datenquellen und die Hardware bereu itstellt [Dev11a]. Services: Sie laufen im Hintergrund um l¨nger andauernde Operationen a durchzuf¨hren. Sie kommunizieren nicht mit dem Benutzer oder der Benutzerin u [Dev11a]. Broadcast Receivers: Sie antworten auf systemweite Broadcast Benachrichtigungen. Benachrichtigungen k¨nnen 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 k¨nnen in der o SQLite Datenbank, im Filesystem und an anderen Orten persistent gespeichert werden. Der Content Provider erm¨glicht es anderen Anwendungen auf diese Daten zuzugreifen, o wenn sie dazu berechtigt sind [Dev11a]. 2.2.4 User Interface

Die Grundbausteine einer Oberfl¨che 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 Oberfl¨chenelement, wie ein Eingabefeld oder eine a Schaltfl¨che, 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 definiert. F¨r jedes View- oder ViewGroup-Objekt wird ein Element in XML u erstellt. Die Objekte beziehungsweise XML-Elemente k¨nnen beliebig komplex vero schachtelt werden. Abbildung 4 zeigt eine m¨gliche 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 Ger¨te abh¨ngig sind und daher extern und von der Anwendung una a abh¨ngig gehalten werden m¨ssen, wie zum Beispiel Bilder. Alle Ressourcen liegen a u im Ordner res/, in welchem sich weitere Ordner f¨r den jeweiligen Ressourcentyp u und den verschiedenen Konfigurationen dazu befinden. 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 zugegriffen werden kann [Mur11]. 2.2.5 Intents

Intents sind Benachrichtungen, die aus einem Empf¨nger und optional aus Daten bestea hen. Sie k¨nnen 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 Empf¨nger bereits bekannt ist, wenn der Aufruf programmiert wird. Activities a k¨nnen 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 m¨glichen Empf¨nger gesendet werden. Der Empf¨nger o a a wird bei impliziten Intents nicht spezifiziert [AB10] [EC11]. 2.2.6 SQLite

SQLite ist ein Datenbanksystem, das sich insbesondere im mobilen Bereich schon seit l¨ngerem durchgesetzt hat und das auch von der Android-Plattform eingesetzt wird. a Der Vorteil von SQLite gegen¨ber herk¨mmlichen Datenbanken auf Serversystemen u o ist, dass es nur uber die wichtigsten Funktionen verf¨gt 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 ben¨tigt. Eine SQLite Datenbank ist Teil einer o Anwendung, es kann jedoch auch von mehreren Anwendungen aus auf eine Datenbank zugegriffen werden [AB10]. 2.2.7 Android Manifest

Das Android Manifest ist eine XML-Datei und beinhaltet alle Informationen uber die ¨ Anwendung, die das System ben¨tigt 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 definiert [AB10]. 2.2.8 Sicherheit

Android nutzt das Sandbox-Prinzip. Wie oben bereits erw¨hnt l¨uft jede Anwendung a a in ihrer eigenen Umgebung. Bei Android heißt das, dass jede Anwendung einen Prozess, einen Bestriebssystembenutzer oder eine Betriebssystembenutzerin, eine DVM, einen Heap und einen Bereich im Dateisystem nur f¨r sich besitzt. Dieses u Prinzip vermindert das Risiko einer gef¨hrlichen Sicherheitsl¨cke, n¨mlich 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 m¨glich 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 verf¨gbar [AB10]. u

18

3

Umsetzung

Dieses Kapitel zeigt, wie die Anwendung umgesetzt wurde. Es umfasst eine Auflistung der eingesetzten Werkzeuge und den Systemaufbau der Applikation. Zudem wird die Umsetzung der einzelnen Komponenten und die Einbindung des Designs erl¨utert. 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 f¨r 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 Verf¨gung zu stellen. Weiters ist es m¨glich 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 Grafiken im SVG Format zur Verf¨gung u stellten. User Interfaces werden, wie bereits im Kapitel 2.2.4 beschrieben, mithilfe von sogenannten Activitys realisiert. F¨r den Einmaleins-Trainer wurden 15 Activitys erstellt. u F¨r jede Activity-Klasse wurde eine XML-Datei erstellt, welche das Layout der Bildu schirmseite beschreibt. F¨r diese Anwendung bestehen die XML-Dateien haupts¨chlich 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 definiert.
2

http://developer.android.com/sdk, letzter Abruf 8. J¨nner 2012 a http://eclipse.org/galileo, letzter Abruf 8. J¨nner 2012 a 4 http://developer.android.com/sdk/eclipse-adt.html, letzter Abruf 8. J¨nner 2012 a
3

19

Abbildung 5: Code-Auszug: Layout f¨r 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 dazugeh¨rigen XML-Datei o angegeben. Zudem k¨nnen hier die Elemente der XML-Datei manipuliert werden, wie o zum Beispiel in dieser Anwendung von der Sprache abh¨ngige Grafiken ersetzt werden a m¨ssen wenn die Spache eine andere ist als die Standardsprache. Zudem k¨nnen hier u o den Elementen Event Listener hinzugef¨gt werden. Als Beispiel wird in Abbildung 6 u ein Code-Auszug aus der Klasse LoginActivity gebracht. Alle Activity-Klassen m¨ssen u im Android Manifest angef¨hrt werden. u

20

Abbildung 6: Code-Auszug: LoginActivity

3.3

Sessions

Eine Session ist eine Spielsitzung, in welcher der Sch¨ler oder die Sch¨lerin ein Training u u oder das Quiz spielt. Da die Oberfl¨che f¨r das Spiel f¨r eine Trainer-Session und eine a u u Quiz-Session gleich aussehen soll, damit der Sch¨ler sich nur mit einer Oberfl¨che u a vertraut machen muss, ist es f¨r die Klasse GameActivity, welche f¨r die Darstellung u u der Frage und der Antwortm¨glichkeiten verantwortlich ist, unerheblich ob es sich um o eine Trainer-Session oder eine Quiz-Session handelt. Daher musste eine einheitliche Schnittstelle f¨r die beiden Session-Typen geschaffen werden. Aus diesem Grund gibt u es ein Interface Session, welches durch die Klassen TrainerSession und QuizSession implementiert wird. Dies erm¨glicht der Klasse GameActivity uber das Session-Objekt o ¨ unabh¨ngig vom Sitzungstyp eine Frage zu holen beziehungsweise eine Antwort zu a ubergeben. Die Abbildung 7 zeigt das Klassendiagramm f¨r 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 f¨r das Spielen mit dem Trainer eine u Internetverbindung ben¨tigt, wof¨r die entsprechenden Berechtigungen in das Manio u fest eingetragen werden mussten. Die Webservices, die zur Kommunikation mit dem Server ben¨tigt werden, wurden bereits zur Verf¨gung gestellt. Der Lernalgorithmus o u ist in den Webservices implementiert. Jeder Sch¨ler oder jede Sch¨lerin ben¨tigt 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 f¨r den Login zur Verf¨gung, sowie auch Methoden, die u u w¨hrend des Spielverlaufs ben¨tigt werden, wie Pretest uberpr¨fen 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 benutzerspezifischen Daten abgefragt. Das Klassendiagramm in Abbildung 8 zeigt die Klassen, die f¨r 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. F¨r jede Anfrage an den Webu server wird, nachdem ein HttpClient erstellt wurde, ein HttpGet-Request an den Webserver geschickt. Anschließend 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 k¨nnen daher einfach mit der JSON-Bibliothek o ¨ 7 f¨r 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. J¨nner 2012 a http://www.json.org, letzter Abruf 8. J¨nner 2012 a 7 http://json.org/java, letzter Abruf 8. J¨nner 2012 a
6

24

Abbildung 9: Code-Auszug: WebserviceClient

25

3.5

Quiz

Das Quiz selbst ben¨tigt keine Internetverbindung. Die Schwierigkeitsstufe, die vom o Benutzer oder der Benutzerin ausgew¨hlt 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 f¨r 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 daf¨r, dass die Datenbank u mitsamt ihren Tabellen erstellt wird, falls sie noch nicht existiert, und bei Bedarf ge¨ffnet 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 erl¨utert. 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 ausw¨hlen u a kann ob man den Trainer oder das Quiz starten m¨chte, oder die Hilfe lesen m¨chte. 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 M¨glichkeit sich neu zu registrieren oder sich o anzumelden, falls man bereits registriert ist. Verf¨gt das Smartphone uber keine Interu ¨ netverbindung, so bekommt man eine Benachrichtigung dar¨ber, 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 Best¨tigung eingegeben werden muss. Dieser Screen wird in Abbildung a 13 gezeigt. Nach der Best¨tigung bekommt man bei einer erfolgreichen Registrierung a eine Nachricht mit dieser Information und wird anschließend automatisch angemeldet. Schl¨gt die Registrierung fehl weil die Eingaben unvollst¨ndig sind, die eingegebea a nen Passw¨rter nicht ubereinstimmen oder der Benutzername schon vergeben ist, so o ¨

27

wird man dar¨ber informiert und hat die M¨glichkeit die Eingaben zu vervollst¨ndigen 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 dar¨ber benachrichtigt und hat die M¨glichkeit 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 ausw¨hlen, ob man a spielen m¨chte, in die Statistik einsehen m¨chte oder sich wieder vom System abmelden o o m¨chte. o

Abbildung 14: Anmelden Abbildung 15: Trainermen¨ u

28

4.2.3

Spielen

W¨hlt man das Start-Icon, so beginnt sofort das Spiel. Die Abbildung 16 zeigt den a dazugeh¨rigen Screen. Man hat ab diesem Zeitpunkt 60 Sekunden Zeit die Frage zu o beantworten, was auch f¨r jede weitere Frage gilt. Die verbleibende Zeit kann man im u Counter ablesen. Mit dem roten Kreuz kann man die zuletzt eingegebene Zahl wieder l¨schen. Mit dem gr¨nen Hacken best¨tigt man die Eingabe. Man kann die Antwort nur o u a best¨tigen, wenn man eine Eingabe get¨tigt 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 n¨chste Frage gestellt und man sieht f¨r kurze Zeit einen gr¨nen Smiley. Wurde a u u eine Frage falsch beantwortet, so bekommt man einen neuen Screen mit dem richtigen Ergebnis zu sehen. Ein Beispiel daf¨r wird in Abbildung 17 gezeigt. Durch Ber¨hren des u u Displays best¨tigt man dies, woraufhin eine neue Frage geladen wird. M¨chte man das a o ¨ Training abbrechen, so ber¨hrt 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 ¨ffnet 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, verf¨gbar. Er zeigt den aktuellen u Stand der benutzerspezifischen Parameter an, die f¨r den Lernalgorithmus ben¨tigt 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 ¨ffnet 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 zus¨tzliches a Textfeld f¨r 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 ausw¨hlen, wobei x f¨r leicht, xx f¨r mittel und xxx f¨r 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 f¨r einen Highscore wird in Abbildung 23 gezeigt. u

Abbildung 23: Highscore

4.4

Hilfe

Im Hilfe-Screen wird kurz erkl¨rt, 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 f¨r die Android-Plattform zu entwickeln. Die Anwendung steht mit Abschluss der Aru beit im Android Market zum Download bereit8 . Um die Anforderung Mehrsprachigkeit zu unterst¨tzen, wurde sie in der ersten Version in Deutsch und Englisch ver¨ffentlicht. u o Es k¨nnen jedoch beliebig viele Sprachen auf einfache Weise hinzugef¨gt werden. o u Aufgrund der Einbindung von sehr vielen Grafiken, die teilweise auch als Schaltfl¨chen eingesetzt werden, gibt es nach wie vor Probleme mit den verschiedenen a Displaygr¨ßen und Pixeldichte der Ger¨te, 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 Gr¨ße und einer hohen Pixeldichte, o ¨ die in Android als High density oder kurz als hdpi bezeichnet wird, verf¨gen, m¨glich u o [Dev11d]. Diese Eigenschaften weisen am 3. November 2011 70.8 % der androidf¨higen a Ger¨te auf [Dev11b]. a Probleme gibt es mit den Antwortzeiten des Servers. Zeitweise ist dieser sehr langsam, was in Zukunft verbessert werden sollte. Um einen st¨rungsfreien Spielfluss zu o erm¨glichen 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 m¨glich. o Ein weiterer Punkt ist die Unterst¨tzung von anderen Rechenaufgaben u beziehungsweise Fragenarten, f¨r die der implementierte Lernalgorithmus einsetu zbar ist. Die erste Version der Anwendung wurde speziell f¨r das Einmaleins u entwickelt. Um andere Fragenarten und Anwortm¨glichkeiten zu unterst¨tzen muss o u die Anwendung etwas abge¨ndert werden. In einer n¨chsten Version k¨nnte man auch a a o die M¨glichkeit anbieten, Parameter, die f¨r den Lernalgorithmus ben¨tigt werden, o u o direkt am Smartphone zu ¨ndern. a Weitere Verbesserungsm¨glichkeiten werden sich zeigen, nachdem die Anwendung o von Sch¨lern 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 verf¨gbar. Es war m¨glich alle Funktionen der Webanwendung u o f¨r die Android Plattform zu adaptieren. Damit steht der Trainer als Webanwendung, u iPhone Applikation und Android Applikation zur Verf¨gung. 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 m¨ssen, ist eine der Besonderheiten des Trainers. Besonders attraktiv u wurde die Applikation durch das Design. Die Applikation erscheint kindgerecht sehr farbenfroh, was f¨r Kinder besonders ansprechend ist. u Mit dieser Arbeit hatte ich die M¨glichkeit meine Kenntnisse in der Android o Programmierung zu erweitern, insbesondere was die Oberfl¨chengestaltung betrifft. a Zuk¨nftig m¨ssen noch Modifikationen vorgenommen werden, da es nach wie vor u u Verbesserungsm¨glichkeiten gibt beziehungsweise ein Praxistest erst erfolgt. In der o zuk¨nftigen Entwicklung des Smartphone-Bereichs haben Lernprogramme durch den u stetig wachsenden Smartphone-Markt sicherlich Potential. Gerade f¨r die j¨ngste Genu u eration der Smartphone-Besitzer, n¨mlich f¨r Kinder bis 10 Jahren, geh¨ren Lernproa u o gramme die speziell f¨r Kinder entwickelt wurden zu den vermutlich wenigen Appu likation im Android Market, die auch f¨r sie geeignet sind. Ich hoffe mit dieser Arbeit u einen Beitrag auf diesem Gebiet geleistet zu haben und bin schon gespannt, wie die Anwendung bei Sch¨lern ankommt. Zum Schluss m¨chte ich mich bei der TU Graz, dem u o Institut f¨r Informationssysteme und Computer Medien und meinem Betreuer Univ.u Doz. Dipl.-Ing. Dr. Martin Ebner daf¨r bedanken, dass ich die M¨glichkeit 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 f¨r einen Einmaleins-Trainer. TU Graz, 2011. u [M¨l11] Peter M¨ller. 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