[Level 1] Programming: Alice

What is this Resource?

This document was prepared by Sumant Murugesh and Tim Bell at the University of Canterbury. It is not an official document, but is offered as an evolving guide to the resources that are available for teaching the new material in NCEA Digital Technologies (currently focussed on the Programming and Computer Science strand). The structure has been based on various versions of the Body of Knowledge, proposed Standards, and Teaching and Learning guide; the material comes from an extensive search for relevant resources. It is our hope that this resource will evolve based on feedback from teachers, and ultimately end up as teaching plans that are built on the resources. Feedback can be sent to tim.bell [at] canterbury.ac.nz.

Achievement Standard
These resources relate mostly to the proposed Digital Technologies Achievement Standard AS91076 / 1.46 (Construct a basic computer program for a specified task)

Objectives
Be able to read, understand, write, and debug simple software programs

Context
At this level students will learn to read, write and debug simple programs. A programming language could be a drag-and-drop language (Scratch, Alice) or any general purpose programming language (Java, Python). It could also be done in the context of electronics (programming microcontrollers), animation (e.g. using Flash or Alice), or web programming (e.g. JavaScript or PHP). Students can be given the task to be solved and also an algorithmic structure is provided for use.

Ideas for Teaching and Learning Activities
This page is dedicated to resources suitable for teaching Alice. Please see The Programming Introduction Section that gives an extensive overview of general programming resources, as well as thoughts about choosing which language to choose.

Note that the Alice language has many more features than are needed to cover the standard, and consequently many of the Alice tutorials and resources go a lot further than needed. You will need to check that students focus on the key elements of the language rather than getting too distracted (at least in class time) with some of the cool things that can be done that won't help them achieve the requirements of the standard.

Our Picks
Here is a shortlist of resources we have picked from the comprehensive list below. These are generic resources aimed at teaching or learning programming.


Comprehensive list of resources that relate to this standard

The resources below are a mixture that were developed for a varied audience ranging from high school students to university undergraduates, therefore we have attempted to classify the resources in terms of their readiness to be used by teachers. There are those that aim to convey a Basic understanding of the concepts and those that are Advanced and therefore might assist teachers with their professional development activities.

 


Online Guides

  • Learning to Program with Alice by Wanda Dann, Stephen Cooper and Randy Pausch is well known for exercises in Alice and also for project ideas. There is a set of instructor materials there, including sample syllabi, projects and solutions, quizzes, assignments, test banks and solutions, some student example worlds… These materials are designed for use with the "Learning to Program with Alice" textbook by Dann, Cooper and Pausch, but they are freely available to school instructors to be used with any textbook, as their development was supported by NSF funding. They are password protected to preserve the integrity of the solutions so that teachers may use the exercises and exams, with some confidence that students will not have access to these answers and solutions. You may apply for the login and password by contacting Steve Cooper at Stanford University or Barbara J Conover.
  • Mike Scott has a complete course in Visual Programming with Alice. This course schedule has links to useful lecture notes and class work exercises which are subject to change, so teachers may please check regularly for updates.

 


Classroom Activities and Games

  • University of Texas Outreach has a presentation from a workshop in Alice: This presentation of Alice begins with a description of Alice and how it's used to support various CS concepts. Starting at slide 15 there is a "folllow along" type of lesson where an Alice program is built and modified over the course of the presentation. Participants can follow along at their computers

 


Videos

  • Media Computation, Georgia Tech has the following Videos on Alice Tips and Techniques:
    1. Getting started with Storytelling Alice StorytellingStart.mp4. Creating objects, positioning them, and invoking methods on them.
    2. mutlipleScenes.mp4: This video shows how to create multiple scenes in Storytelling Alice.
    3. AliceCameraManip.mp4: This video shows how to drop a dummy at a camera position, use the camera controls, zoom in on an Alice object, and then reset the camera position to a dummy object. Students should already know how to create objects and invoke methods on objects.
    4. creatingAMethod.mp4: This video shows how to create a method in order to teach a bunny how to hop, how to make a copy of code, and how to use a "Do Together".
    5. clipboard.mp4:This video shows how to copy code to the clipboard and how to fix the mistake of creating a method on the wrong object such as creating a hop method on the world instead of on a bunny.
    6. addingParameters.mp4: This video shows how to add parameters to methods and then how to specify the value of the arguments when you call the method. It adds the paraemters height and length to the bunny's hop method.
    7. duration.mp4: This video shows how to change the duration of an Alice statement or command. The default is always 1 second.
    8. SaveClassWithNewName.mp4: This video shows how to rename the object and then save out the object as a new class. Then it shows how to import the new class into Alice to use it in another world.
    9. AddTitle.mp4: This video shows how to add a title (3D text) to your movie that disappears after a certain amount of time (using wait and set visible to false). It also shows manipulating the object with the mouse controls and how to set a property in a method.