Alice (software)

Last updated
Alice
Developer(s) Carnegie Mellon University
Initial release1998
Stable release
3.6.0.3 / October 25, 2021;3 years ago (2021-10-25)
Written in Java
Platform Java platform
Type Educational
License Some parts released under an open-source license, source code is available [1]
Website www.alice.org

Alice is an object-based educational programming language with an integrated development environment (IDE). Alice uses a drag and drop environment to create computer animations using 3D models. The software was developed first at University of Virginia in 1994, then Carnegie Mellon (from 1997), by a research group led by Randy Pausch.

Contents

Origin of name

According to Randy Pausch, the name “Alice” comes from author Lewis Carroll, who wrote Alice’s Adventures in Wonderland.

"Carroll was a mathematician, novelist, and photographer. Most important, he could do intellectually difficult things but also realized the most powerful thing was to be able to communicate clearly and in an entertaining way. This inspires our efforts to make something as complex as computer programming easy and fun."

Purpose

Alice was developed to address four core problems in educational programming: [2]

  1. Alice is designed solely to teach programming theory without the complex semantics of production languages such as C++. Users can place objects from Alice's gallery into the virtual world that they have imagined, and then they can program by dragging and dropping tiles that represent logical structures. Additionally, the user can manipulate Alice's camera and lighting to make further enhancements. Alice can be used for 3D user interfaces.
  2. Alice is conjoined with its IDE. There is no syntax to remember. However, it supports the full object-based programming, event driven model of programming.
  3. Alice is designed to appeal to specific subpopulations not normally exposed to computer programming, such as students of middle school age, by encouraging storytelling. Alice is also used at many colleges and universities in Introduction to Programming courses.
  4. Alice can be used with Netbeans to convert the Alice file into Java. [3]

Alice 3 is released under an open-source license allowing redistribution of the source code, with or without modification. [4]

Research

In controlled studies at Ithaca College and Saint Joseph's University looking at students with no prior programming experience taking their first computer science course, the average grade rose from C to B, and retention rose from 47% to 88%, exceeding even the 75% retention rate of students with prior programming experience. [5]

In a second study at Carnegie Mellon University, students taking their first computer science course with a mediated transfer approach that transitioned from Alice 3 to Java scored an average of 84.96% and 81.52% in two semesters of testing this approach, compared to an average of 60.8% before the mediated transfer approach. [6]

Screenshot of Alice 3.7 Alice 3.7 Screenshot.png
Screenshot of Alice 3.7

Variant

A variant of Alice 2.0 called Storytelling Alice [7] was created by Caitlin Kelleher for her PhD dissertation. [8] It includes three main differences:

  1. High-level animations that enable users to program social interactions between characters.
  2. A story-based tutorial that introduces users to programming through building a story.
  3. A gallery of 3D characters and scenery with custom animations designed to spark story ideas.

In a study performed on middle-school girls in the United States, Storytelling Alice appeared to increase interest compared to generic Alice, with a 42% increase in programming time, with students three times as likely to do additional work on their projects, with no reduction in basic programming concepts learned. [9]

Storytelling Alice was succeeded by the interactive storytelling application Looking Glass, developed at Washington University in St. Louis. [10]

See also

Related Research Articles

<span class="mw-page-title-main">NetBeans</span> Integrated development environment software for software development

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript. Applications based on NetBeans, including the NetBeans IDE, can be extended by third party developers.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

<span class="mw-page-title-main">Processing</span> Free graphics library

Processing is a free graphics library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming in a visual context.

<span class="mw-page-title-main">WIMP (computing)</span> Style of human-computer interaction

In human–computer interaction, WIMP stands for "windows, icons, menus, pointer", denoting a style of interaction using these elements of the user interface. Other expansions are sometimes used, such as substituting "mouse" and "mice" for menus, or "pull-down menu" and "pointing" for pointer.

GameMaker is a series of cross-platform game engines created by Mark Overmars in 1999 and developed by YoYo Games since 2007. The latest iteration of GameMaker was released in 2022.

<span class="mw-page-title-main">Andries van Dam</span> Dutch-American computer scientist

Andries "Andy" van Dam is a Dutch-American professor of computer science and former vice-president for research at Brown University in Providence, Rhode Island. Together with Ted Nelson he contributed to the first hypertext system, Hypertext Editing System (HES) in the late 1960s. He co-authored Computer Graphics: Principles and Practice along with J.D. Foley, S.K. Feiner, and John Hughes. He also co-founded the precursor of the ACM SIGGRAPH conference.

Rich Gossweiler is a research scientist with Google whose area of expertise is in HCI, interaction design, front-end web development, and System architecture.

Open Source Physics, or OSP, is a project sponsored by the National Science Foundation and Davidson College, whose mission is to spread the use of open source code libraries that take care of a lot of the heavy lifting for physics: drawing and plotting, differential equation solvers, exporting to animated GIFs and movies, etc., tools, and compiled simulations for physics and other numerical simulations. The OSP collection provides curriculum resources that engage students in physics, computation, and computer modeling. The core library is in the Java programming language and licensed with GNU General Public License licenses. The site now serves over 10,000 visitors per month. The Open Source Physics Project is an extension of the Physlet Project.

<span class="mw-page-title-main">Randy Pausch</span> American professor of computer science, human-computer interface and design (1960–2008)

Randolph Frederick Pausch was an American educator, a professor of computer science, human–computer interaction, and design at Carnegie Mellon University (CMU) in Pittsburgh, Pennsylvania.

<span class="mw-page-title-main">Really Achieving Your Childhood Dreams</span> Viral video of a 2007 lecture by Randy Pausch

"Really Achieving Your Childhood Dreams" was a lecture given by Carnegie Mellon University computer science professor Randy Pausch on September 18, 2007, that received widespread media coverage, and was the basis for The Last Lecture, a New York Times best-selling book co-authored with Wall Street Journal reporter Jeffrey Zaslow. Pausch had been diagnosed with pancreatic cancer in September 2006. On September 19, 2006, Pausch underwent a pancreaticoduodenectomy to remove the malignant tumor from his pancreas. In August 2007, doctors discovered that the cancer had recurred. Pausch was given a terminal diagnosis and told to expect that three to six months of good health remained.

Web-based simulation (WBS) is the invocation of computer simulation services over the World Wide Web, specifically through a web browser. Increasingly, the web is being looked upon as an environment for providing modeling and simulation applications, and as such, is an emerging area of investigation within the simulation community.

Joyce Farrell is the author of many programming books for Course Technology, a part of Cengage Learning. Her books are widely used as textbooks in higher education institutions. She was formerly a professor of computer information systems at Harper College in Palatine, Illinois, US, and earlier taught computer information systems at the University of Wisconsin–Stevens Point and McHenry County College in Crystal Lake, Illinois.

<span class="mw-page-title-main">Mama (software)</span> Programming language

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.

Embedded Wizard is a graphical user interface tool developed and distributed by TARA Systems GmbH for creating graphical user interface (GUI) applications mainly for embedded systems, including microcontroller and microprocessor units. It provides a WYSIWYG front-end for editing graphics, effects and logic of the user interface and generates source code for particular target hardware. Embedded Wizard is independent of a specific graphics hardware, color format or input mechanism. It supports object oriented programming and does not require a Real-time operating system/Operating system, allowing GUIs to run on bare metal.

The Mobile 3D Graphics API, commonly referred to as M3G, is an open source graphics API and file format specification for developing Java ME applications that produce 3D computer graphics on embedded devices such as mobile phones and PDAs.

<span class="mw-page-title-main">Computer-generated imagery</span> Application of computer graphics to create or contribute to images

Computer-generated imagery (CGI) is a specific-technology or application of computer graphics for creating or improving images in art, printed media, simulators, videos and video games. These images are either static or dynamic. CGI both refers to 2D computer graphics and 3D computer graphics with the purpose of designing characters, virtual worlds, or scenes and special effects. The application of CGI for creating/improving animations is called computer animation, or CGI animation.

Snap<i>!</i> (programming language) Block-based programming language

Snap! is a free block-based educational graphical programming language and online community. Snap allows students to explore, create, and remix interactive animations, games, stories, and more, while learning about mathematical and computational ideas. While inspired by Scratch, Snap! has many advanced features. The Snap! editor, and programs created in it, are web applications that run in the browser without requiring installation. It is built on top of Morphic.js, a Morphic GUI, written by Jens Mönig as 'middle layer' between Snap! itself and 'bare' JavaScript.

References

  1. Alice 3's license
  2. "What is Alice?". Archived from the original on 2017-05-20. Retrieved 2021-04-21.
  3. Daly, Tebring (2015). Learning Java through Alice 3: 3rd Edition. CreateSpace Independent Publishing Platform; 3 edition. ISBN   978-1514278901.
  4. "Alice 3 End User License Agreement". alice3.pbworks.com. Retrieved 31 January 2015.
  5. B. Moskal, D. Lurie, and S. Cooper, Evaluating the Effectiveness of a New Instructional Approach.
  6. W. Dann, D. Cosgrove, D. Slater, and D. Culyba, Mediated Transfer: Alice 3 to Java.
  7. Storytelling Alice
  8. Motivating Programming: using storytelling to make computer programming attractive to middle school girls
  9. Kelleher, Caitlin; Pausch, Randy; Kiesler, Sara (2007). "Storytelling alice motivates middle school girls to learn computer programming". Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. pp. 1455–1464. doi:10.1145/1240624.1240844. ISBN   9781595935939. S2CID   3910027.
  10. Looking Glass

Further reading