Alice (software)

Last updated
Alice
Developer(s) Carnegie Mellon University
Initial release1998
Stable release
3.6.0.3 / October 25, 2021;2 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">Software</span> Non-tangible executable component of a computer

Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.

<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">Carnegie Mellon School of Computer Science</span> School for computer science in the United States

The School of Computer Science (SCS) at Carnegie Mellon University in Pittsburgh, Pennsylvania, US is a school for computer science established in 1988. It has been consistently ranked among the top computer science programs over the decades. As of 2022 U.S. News & World Report ranks the graduate program as tied for second with Stanford University and University of California, Berkeley. It is ranked second in the United States on Computer Science Open Rankings, which combines scores from multiple independent rankings.

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

In computing, a visual programming language 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.

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

Processing is a free graphical 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.

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> 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 today's 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.

<span class="mw-page-title-main">3D computer graphics</span> Graphics that use a three-dimensional representation of geometric data

3D computer graphics, sometimes called CGI, 3-D-CGI or three-dimensional computer graphics, are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering digital images, usually 2D images but sometimes 3D images. The resulting images may be stored for viewing later or displayed in real time.

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

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>

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. It provides a WYSIWYG front-end for editing graphics, effects and logic of the user interface and generates ANSI C code for particular target hardware. Embedded Wizard is independent of a specific graphics hardware or color format and supports object oriented programming.

<span class="mw-page-title-main">Mobile 3D Graphics API</span>

The Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an API for writing Java programs that produce 3D computer graphics. It extends the capabilities of the Java ME, a version of the Java platform tailored for embedded devices such as mobile phones and PDAs. The object-oriented interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes. M3G was developed under the Java Community Process as JSR 184. As of 2007, the current version of M3G is 1.1, but version 2.0 is in development as JSR 297.

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

<span class="mw-page-title-main">Cloud9 IDE</span> Online integrated development environment

Cloud9 IDE is an Online IDE, published as open source from version 2.0, until version 3.0. It supports multiple programming languages, including C, C++, PHP, Ruby, Perl, Python, JavaScript with Node.js, and Go.

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