/TapLearn

Pedagogical Game under Android

Primary LanguagePython

TapLearn : A template for Pedagogical Games in Python/PyGame under Android

Termination

  • The development of the project TAPLEARN using the library PyGame was stopped on [2015-03-17 Tue], because
    1. The development of the library PyGame for Android is not active anymore, and that it was replaced by kivy, which supports other platforms than Android, such as kivy; and
    2. The name taplearn was already taken by http://wwww.taplearn.com.
  • As a conclusion, it was decided to
    1. Start a new project with the name of TapMemory, which
      • does not seem to be taken yet and
      • is closer anyway to the memory-related objectives of the application; and
    2. to restart it from scratch as another github project
      • using the library kivy,
      • potentially reusing the milestones and references developped for TapLearn, and
      • maybe using the project ankidroid, also on github, to better interface it with the flashcards from Anki.
    3. Leave the sources of this project available, so that to be reused
  • if PyGame gets new support or
  • if someone wishes to develop a similar game just for linux.

Objectives

Once finished, <<<TapLearn>>> should have been a generic example of pedagogical application with a touch interface, to be used to study the effect of various features on both persistence and learning. In its most basic version, the application downloads a sequence of predicates from a server, present them to the learner in a random order, each to be validated or refuted by the learner, gives feedback to the user and submits the user’s answers to a central server for later studies. The features envisioned include the addition of animations, colors, sounds, spaced memorization techniques. The studies envisioned include the effect of those features on <<<persistence>>> (how frequently and how long the learner uses the application) and <<<learning>>> (how fast the learner progresses in his/her learning).

For more information, see the wiki page of the project at https://github.com/jyby/taplearn/wiki

Milestones for the basic application [28%]

  1. [X] Prototype with game interface:
    1. [X] Randomly generate predicates on addition and/or multiplications,
    2. [X] presents predicates, scrolling from the top of the screen to the bottom,
    3. [X] detects the answer from the learner,
    4. [X] gives feedback to the learner.
    5. [X] REFACTORING
  2. [X] Prototype with three pages:
    1. [X] page “Menu”
    2. [X] page “Game”
    3. [X] page “Stats”
    4. [X] page “Info”
    5. [X] REFACTORING
  3. [-] Prototype installed on an Android device
    1. [X] INSTALL Python 2.7 (PGS4A is not compatible with Python 3 at this time.)
    2. [X] INSTALL Java Development Kit.
    3. [X] INSTALL Android Device Drivers.
    4. [X] INSTALL PyGame for Android (PGS4A) following instructions from http://pygame.renpy.org/

SEEMS THAT PYGAME 4 Android IS BROKEN AND THAT KIVY TOOK ITS PLACE

  1. [ ] Upload APK on Android phone or in simulator
  1. [ ] Prototype with local database
    1. [ ] initially fill the local database with randomly generated predicates
    2. [ ] request predicates from the local databases
    3. [ ] update statistics of each predicates in the local database
    4. [ ] REFACTORING
  2. [ ] Prototype with Flash Cards
    1. [ ] Show at first one face of the card, then
    2. [ ] the second face of the card when the learner press a key
    3. [ ] ?Load flash cards from an Anki Deck?
    4. [ ] REFACTORING
  3. [ ] Prototype with Network connection
    1. [ ] add button “Synch”
    2. [ ] Query predicates from server
    3. [ ] Send statistics to server
    4. [ ] REFACTORING
  4. [ ] Release of Beta and Have it Tested by first users

Optional Extensions [0/2]

  1. [ ] improved “Flash Card” Game Play:
    1. [ ] Each challenges consists of a random mix of two pairs.
  • a mix of two flashcards (A,A’) and (B,B’)
  • a random choice between proposals which are
    • correct: (A,A’) or (B,B’) and
    • incorrect: (A,B’) or (B,A’)
      1. [ ] First side (A or B) of Flashcard scrolls down (maybe oscillatin as autumn leaf)
      2. [ ] when learner presses the screen, the proposed side (A’ or B’) of the flashcard is shown
      3. [ ] if the learner depresses
  • on the same spot, back to initial state
  • on the right, he accepts the proposal
  • on the left, he refuses it
  • on the bottom, he skips it because he does not know
  • on the top, he flags it as inadequate
    1. [ ] after having slided,
  • the correct answer(s) are shown:
    • Only (A,A’) or (B,B’) if that was the proposal
    • Both (A,A’) and (B,B’) if the proposal was a mix.
  • the graphic interface makes it clear if the learner’s answer was correct.
  • if the answer was incorrect, the interface waits for another click from the learner
    1. [ ] REFACTORING
    1. [ ] alternate “Memory” Game Play:
      1. [ ] Fix some parameters n,m
      2. [ ] Generate $nm$ flash cards in an array of n by m
      3. [ ] Draw a random permutation of [1..2nm] so that each position in a 2n by m array is mapped to a side A or A’ of one of the $nm$ flashcards.
      4. [ ] Display $2*nm$ rectangles representing hidden cards, with space for two close-ups below.
      5. [ ] Wait for the learner to click on a first rectangle,
  • [ ] identify which one, and
  • [ ] display the corresponding side of a flashcard
    1. [ ] Wait for the learner to click on a second rectangle.
  • [ ] identify which one, and
  • [ ] display the corresponding side of a flashcard;
    1. [ ] Check if the two cards match
  • [ ] if they are from the same pair, or
  • [ ] if they are from distinct pairs but are compatible:
  • [ ] display them in their minimized versions in their respective positions.
    1. [ ] If all cards have been discovered
    2. [ ] Show a screen of success,
    3. [ ] Print the number of cards discovered.