Learn Alice in FREE step-by-step lessons.
Alice Programming

In Alice3 you will create virtual 3D worlds. You will add characters, animate them, and interact with the user to create games and tell stories. You will create programs by dragging and dropping graphic tiles. By animating and manipulation the 3D characters in the virtual world, you will learn to use the same programming tools that are typically taught in a beginning programming course.
Unit I: Introduction: Installation and Alice Navigation
In this chapter, you will download and install the latest version of Alice and learn how to run the program. You will become familiar with the Alice user interface and learn how to navigate its major tools and features. You will also explore some of the 3D models available in Alice and begin learning how these objects can be used to create interactive scenes and animations.
In this chapter, you will write your first program in Alice 3 and begin creating your own 3D world. You will learn how to create a scene by selecting a template and adding characters and other objects to the scene. You will then create and edit code to control the actions of those objects. You will also learn how to add comments to your code and understand why comments are important for explaining and organizing a program. Finally, you will practice identifying and debugging simple errors so that your program works as intended.
In this chapter, you will learn how to use planning tools and techniques to design and manage larger software projects. You will explore how programmers plan a solution before writing code and how top-down design breaks a complex program into smaller, more manageable parts. By organizing a project into individual tasks and components, you can make the program easier to develop, test, debug, and maintain.
In this chapter, you will learn different ways to start a new project in Alice and become familiar with the basic steps for managing your work. You will learn how to modify, save, use Save As, and reopen an existing project so that you can continue working on it later. You will also explore how to set preferences to customize the Alice environment and make it better suited to the way you work.
In this chapter, you will learn how objects view and move within the Alice virtual world. You will explore how an object’s position, orientation, and sense of direction affect the way it moves. You will learn how to use actions such as move, turn, and roll to control the objects that make up a scene. Through these activities, you will develop a deeper understanding of how 3D objects behave and how their movements can be controlled to create effective animations.
In this chapter, you will learn how to change the properties and positions of objects in the Alice virtual world. You will also explore how to adjust the camera’s properties and position to control what the viewer sees in a scene. Through practice with Alice’s positioning and design tools, you will develop greater precision in placing, orienting, and arranging objects and the camera to create effective 3D scenes and animations.
Unit II: Creating Code
In this chapter, you will learn how to create realistic poses for 3D characters by positioning subparts, such as the arms, legs, head, and hands. You will create poses using both the scene editor and program code and learn to position subparts using methods such as turn and roll. You will explore how subparts can be positioned during scene design as well as while a program is running. Because a subpart is connected to its parent object, you will learn why it should not be moved in a way that separates it from the body. You will also examine how each subpart has its own orientation and sense of direction, which may differ from that of its parent object. Finally, you will learn how several subparts can be coordinated to create more natural poses and complex character actions.
In this chapter, you will learn how to create and use scene procedures in Alice to organize a program using top-down design. You will learn how to begin with the overall task a program must accomplish and then break that task into smaller, more manageable procedures. By using scene procedures to organize related actions, you can create programs that are easier to understand, develop, test, debug, and modify.
In this chapter, you will learn about variables and how they are used to store information in an Alice program. You will learn how to declare variables, choose appropriate data types, and assign values to them. You will also explore how the values stored in variables can be changed and used throughout a program to control actions, perform calculations, and make your programs more flexible.
In this chapter, you will learn how to make an Alice program more interactive by getting input from the user and storing that information in variables. You will learn how to ask the user for information, such as a name or age, and save the responses so they can be used later in the program. By combining user input with variables, you can create programs that respond to individual users and produce different actions or results based on the information provided.
In this chapter, you will learn how to perform simple mathematical calculations in Alice using arithmetic operators. You will also learn how to create and use a counter to keep track of how many times an action occurs and how to calculate a total by adding values as a program runs. These skills will help you use numbers and calculations to control and add functionality to your Alice programs.
Unit III: Control Structures
In this chapter, you will learn how to use Boolean expressions to make comparisons and decisions in an Alice program. You will use the if/else control structure to create different paths, or branches, in the code based on whether a condition is true or false. You will apply these concepts to interactive tasks, such as asking the user a question and determining whether the answer is correct. You will also develop a deeper understanding of objects in the Alice virtual world and how their properties and behaviors can be used to create interactive 3D animations.
In this chapter, you will learn how to use several important control structures in Alice to control the sequence and repetition of actions. You will use doInOrder to perform actions one after another and doTogether to perform actions at the same time. You will also work with the count and while loops to repeat actions and learn how to combine these control structures to create more complex 3D animations. In addition, you will learn how to create and edit markers and use them in animation code. Finally, you will explore object subparts and learn how they can be used to create more detailed and realistic movements in your animations.
In this chapter, you will learn how to create class procedures that allow objects to perform actions such as walking or jumping. You will explore the advantages of procedures and learn how they make it possible to organize a program into smaller, functional subprograms that can be reused many times and with different objects. You will also learn how to use parameters to provide information to a procedure, allowing the same procedure to perform an action at different speeds, distances, or numbers of repetitions. In addition, you will use parameters to pass objects, such as markers or other 3D objects, to a procedure. These techniques will help you create programs that are more organized, flexible, and easier to modify.
In this chapter, you will learn how to use built-in functions, such as getHeight, to retrieve information about objects in the Alice virtual world. You will use functions in calculations and learn how they can be used to create counters and determine totals. You will also learn how to create your own functions, allowing you to organize code, perform specific calculations, and return information that can be used elsewhere in an Alice program.
Unit IV: Advanced Techniques
In this chapter, you will learn how to use random numbers in Alice programs to create actions and outcomes that are less predictable. You will explore how random numbers can be used in games to vary events, choices, and results, making each experience different. You will also learn how randomness can make the movements and behaviors of 3D characters appear more varied and natural, helping you create more engaging animations and interactive programs.
In this chapter, you will learn how to declare and use arrays, (lists) to organize and work with groups of data and objects. You will explore how lists can be used to perform actions on groups of objects and learn to create lists containing different types of data, including 3D objects. You will also use control structures designed to operate on lists and examine how parallel lists can store related information. Finally, you will learn how to use lists of segments to organize and control parts of an animation.
In this module, you will use several advanced techniques. In order to create interesting programs, you will add things like sound, text, background pictures, and other special effects. You will practice working with larger projects and designing, coding, and testing procedures. You will be using many of these techniques in your final project.
In this chapter, you will learn how to make Alice programs more interactive by using events. You will explore how an event represents something that happens during a program and how listeners can be used to specify what should happen when an event occurs. You will learn how to allow users to control actions with the keyboard and mouse, detect collisions between objects, and determine what the program should do when a collision occurs. You will also use timers to control when actions take place and learn how to add background sounds and animations to create more engaging and interactive 3D worlds.