Giter Club home page Giter Club logo

paideia's Introduction

Paideia
v. 0.4 (alpha)

# Overview

Paideia is a dynamic, interactive application for learning New Testament Greek written in Python (along with some JavaScript) using the web2py framework (http://www.web2py.com). 

# License

Copyright 2011โ€”2014 Ian W. Scott ([email protected])
The Paideia platform is free open-source software, licensed under GPL version 3, with the one additional condition that it may not be used for instruction in ancient Greek (whether Koine/Hellenistic or Classical/Attic). In other words, you may re-use any part of this application framework to build instructional applications for other languages, and you may use pieces of the application code for other kinds of software application. You just can't use it to compete against my own Greek instructional app. 

The platform may be freely re-used and distributed in applications for teaching any modern language and for any ancient Asian, sub-saharan African, or North or South American languages. Along with ancient Greek, I also reserve the exclusive right to use Paideia for teaching other ancient European and Semitic languages ("reserved" languages). At present I have no plans to develop applications for these other ancient languages, and I will happily consider opening up permissions for specific "reserved" languages if and when individual developers are prepared to start work on them. For the present, though, I want to leave myself the option of working on other Paideia-based language applications without competition.  This category of "reserved" languages includes (but is not limited to) Latin, Classical Hebrew, Classical Aramaic, Classical Syriac, Coptic, and Ethiopic (Ge'ez). If you are interested in developing a Paideia app for one of these languages, you must contact Ian W. Scott to obtain prior written permission.

While the platform is free software, the instructional content specific to the Greek language is not. I include it along with the source code (a) because it's practically simpler, and (b) because it may help others to see how the platform can be used. But the instructional content may not be reproduced or redistributed in any form without the express written permission of its creator, Ian W. Scott. By "instructional content" I mean:

- the contents of any database fields
- all images and audio recordings included in the folders "static/images," and "static/audio" and its subfolders.

Although the content of the database fields are non-free, the database structure (arrangement of tables and fields as defined in "model" files) is considered part of the platform and is thus included under the GPL-3 licensed material.

Since Paideia is build on top of other open-source tools, those tools are subject to their own varied licenses (even where they are distributed with the Paideia code). These include:

- web2py application framework (http://www.web2py.com)
- jquery and jquery-ui libraries
- d3.js, crossfilter.js, and dc.js data visualization libraries
- bootstrap css framework
- all included fonts

# Terminology

The basic metaphor for this educational game is that of a character exploring a new town. Hence the name "exploring" for this controller. That same metaphor is followed through in the naming of other functions here and (especially) in the module paideia_exploring.

:path:
The game is built on a quest-like model, but each quest or task is called a "path." This term does not refer in most cases to a file path but to a discrete set of interactions that the student must perform in sequence. In the rare case where a file path is intended this will be clear both from context and in the docstring. 

:step:
A path (i.e., quest or task) consists of several individual "steps." Each "step" is a single user interaction involving
- a prompt (an npc question or other stimulus calling for user response),
- a user response (entered as form data, through a number of possible widgets)
- a reply (feedback presented to the user, along with the user's next
    navigation options)
A single step is represented by the Step class in the paideia_exploring module.  Some paths may include just a single step, while others may include a sequence of several steps.

The base Step class involves a simple question prompt, calling for a text response entered in a regular text input field. This class is extended by
several other classes, allowing for different kinds of user response. These class names each begin with Step.

:walking:
Following the same metaphor, the movement through the steps of a path (and from one path to the next) is referred to as a "walk." So the controller function handling this movement is called walk() and the module includes a Walk class that holds logic related to transitions from one step to the next.

These transitions are complicated because the steps in a path often have to be completed in different locations around the fictional town of the game setting. Since the user is free to move as they choose from one town location to another, they may sometimes begin a second path in a new location before moving on to the location where the original path can be completed.

paideia's People

Contributors

iijaachok avatar jboakye avatar monotasker avatar oldiijaachok avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.