Mama (software)

Mama

Mama development environment
Original author(s) Eytam Computer Science
Stable release
1.5.2 / February 22, 2010
Development status Active
Operating system Microsoft Windows
Type Educational
License Proprietary
Website http://www.eytam.com/mama

Mama is an educational object-oriented programming language designed to help young students start programming by providing all language elements in the student mother tongue. Mama programming language is available in several languages, with both left-to-right (LTR) and right-to-left (RTL) language direction support.

A new variant of Mama was built on top of Carnegie Mellon's Alice development environment, supporting scripting of the 3D stage objects. This new variant of Mama was designed to help young students start programming by building 3D animations and games.

History

The first versions of Mama - 1.0, 1.1 and 1.2 - provided simple integrated development environment (IDE) which contained support to standard elements such as text editor with syntax highlighting, compiler, debugger, output window, etc. Starting at version 1.5, Mama was integrated with the open source Alice IDE to support drag and drop programming and 3D animating. Mama versions are implemented in Java.

The current release of Mama, version 1.5.4, is available both in English and in Hebrew, and it runs on Microsoft Windows.

Design

Mama was designed to address the following problems in educational programming:

  1. Industrial programming languages are designed to be usable for production code, thus introducing additional complexity. Mama is designed solely to teach programming concepts, providing simple and quick development of programs.
  2. Syntax errors frustrate students when start learning programming - Mama's variant over Alice uses a drag and drop environment to create computer animations using 3D models.

Mama language is a pure object-oriented language, while the Alice IDE is object based. That implies that while writing textual scripts with Mama language supports all object oriented elements (inheritance, polymorphism, generic programming, Observer pattern style event handling), creating objects and methods with the drag and drop interface is object based - there is no inheritance (and thus no polymorphism). The last observation may confuse beginners - thus it is suggested to use Mama scripts only as advance topics in CS courses.

Mama 1.5 main improvements over Alice version 2.2:

IDE Basics

There are several parts in IDE window: at the top you'll find the main menu and the toolbar, which let you execute commands such as create/open a worlds, import 3D objects into the world, create a standalone application, export the animation to YouTube, etc.


The five windows contained in the main window are:

When in scene editing mode, two of the above parts are replaced:

Following are the basic types available in Alice IDE:

The control instructions available in the bottom of the editor area are:

See also

References

    • Mama language reference manual
    • Mama IDE reference manual
    • Learning to Program with Alice, Wanda P. Dann, Stephen Cooper, Randy Pausch: ISBN 0-13-187289-3
    • Virtual World Design and Creation for Teens; Charles R. Hardnett; Course Technologies PTR, 2009; ISBN 1-59863-850-5, ISBN 978-1-59863-850-9
    This article is issued from Wikipedia - version of the 5/1/2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.