ArticleslgStudy

computer science

Mama (software)

Mama (software) is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Mama (software) rather than just read about it. In short: Mama is an object-oriented educational 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.

Mama (software) — main illustration
Mama (software) — illustration

Key takeaways

  • Mama (software) belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Mama (software) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Mama (software) from memory before moving on to harder problems.

Reference excerpt

Mama is an object-oriented educational 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:

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. 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:

added Mama programming language as a (rich) scripting language - 3D scene objects can be manipulated using this scripting mechanism full Unicode support creation and editing of 3D objects support uploading movies to YouTube and publishing in Facebook support for scenery and characters tutorial editor tool for instructors movie export with audio user standalone executables better menu logic many bug fixes

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:

object tree - contains the object list in the current world. 3D window - this is where objects are positioned, moved, turned, etc. events area - lets you edit what happens upon occur of certain event. details area - contains information about the currently selected object in 3 tabs: properties, methods and functions. editor area (at the bottom) - that's where the program code is written, using drag and drop of instructions. When in scene editing mode, two of the above parts are replaced:

control panel - replaces the events area, and displays various controls that help manipulating objects in the 3D window. object gallery - replaces the editor area, and displays objects in hierarchic folders to be selected and embedded in the 3D window. Following are the basic types available in Alice IDE:

Number - a numeric type, represents both integers and reals Boolean - a boolean value, accepting either true or false Object - a general Mama object String - a string, a collection of characters Color - an RGB color TextureMap - a texture map Sound - a sound Pose - a captured pose of an object Position - a 3D array defining a position in the 3D space Orientation - a 3D array defining the orientation in the 3D space PointOfView - a combination of a Position and Orientation The control instructions available in the bottom of the editor area are:

doInOrder - execute a sequence of instructions sequentially doTogether - execute a sequence of instructions simultaneously if - execute a sequence of instructions sequentially only under a given condition while - execute a sequence of instructions sequentially while a given condition holds for - execute a sequence of instructions sequentially a given number of times forAllInOrder - execute a sequence of instructions sequentially iterating over the given collection forAllTogether - execute a sequence of instructions simultaneously iterating over the given collection wait - wait a given number of seconds print - print the given data to the output console assert - assert that a condition is true, display a message if the condition is false (new in Mama 1.5) Script - add a free Mama script to the program # - add a comment to the program

See also Visual programming language Very high-level programming language

References

Further reading

External links Official website

Illustrations

Mama (software) illustration

Worked examples

Example 1 — a first encounter with Mama (software)

Start with the simplest possible case. Write down what Mama (software) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Mama (software) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Mama (software) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Mama (software)

In research
Mama (software) appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Mama (software) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Mama (software) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Educational programming languages, Pedagogic integrated development environments, Visual programming languages, so understanding it makes those chapters shorter.
In everyday life
Look for Mama (software) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Mama (software)” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Mama (software) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Mama (software) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Mama (software) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Mama (software) in simple terms?

Mama is an object-oriented educational 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…

Why does Mama (software) matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Mama (software)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Mama (software).

Tags

  • Educational programming languages
  • Pedagogic integrated development environments
  • Visual programming languages

Keep exploring