Always Learning

Advanced Search

Exploring Wonderland

Exploring Wonderland

Java Programming Using Alice and Media Computation

Wanda Dann, Stephen Cooper, Barbara Ericson

Nov 2009, Paperback, 672 pages
ISBN13: 9780136001591
ISBN10: 0136001599
For orders to USA, Canada, Australia, New Zealand or Japan visit your local Pearson website
This title is ordered on demand which may result in extended delivery times.
Special online offer - Save 10%
Was £105.99, Now £89.99Save: £16.00
  • Print pagePrint page
  • Email this pageEmail page
  • Share

For introductory computing and programming courses at four-year and community colleges.

This new text uses Alice and Media Computation to introduce students to the #1 programming language in use today.

Exploring Wonderland: Java Programming Using Alice and Media Computation, uses Alice to introduce the fundamental concepts of programming, thereby decreasing early frustration with syntax errors usually encountered in a text editor. The concepts introduced in Alice are then applied in Java using Media Computation examples (working with sound samples and pictures). This approach is highly motivating to students, especially for those without prior programming experience.


Chapter 1 Getting Started with Alice

1-1 Introduction to Alice

1-2 Alice concepts

Chapter 2 Program Design and Implementation in Alice

2-1 Scenarios and storyboard design

2-2 Translating a storyboard to program code

Chapter 3 Object Oriented Concepts in Alice

3-1 Classes, objects, and methods

3-2 Creating object methods and inheritance

3-3 Using parameters for passing information to a method

Chapter 4 Working with Objects in Java

4-1 Introduction to DrJava

4-2 Working with turtles

4-3 Creating methods in Java

4-4 Passing parameters to methods

4-5 Concepts summary

Chapter 5 Drawing in Java

5-1 Working with Media

5-2 Drawing using the Graphics class

5-3 Using Graphics2D for advanced drawing

5-4 Using Media Computation with Alice Pictures

5-5 Concepts Summary

Chapter 6 Functions and Conditionals in Alice

6-1 Functions and abstraction

6-2 Conditional execution with If/Else and Boolean functions

Chapter 7 Repetition: Loops in Alice

7-1 For loops and nested for loops

7-2 While ó a conditional loop

7-3 Lists and looping

7-4 List search

Chapter 8 Modifying all samples in a sound in Java

8-1 How sound is encoded as a 1D array

8-2 Manipulating sounds

8-3 Changing the volume of sounds with loops

8-4 Conditionally modifying sounds

8-5 Using Media Computation with Alice

8-6 Concepts summary

Chapter 9 Modifying samples using ranges

9-1 Manipulating different sections of a sound differently

9-2 Creating a sound clip

9-3 Splicing sounds

9-4 Reversing a sound

9-5 Mirroring a sound

9-6 Blending sounds

9-7 Creating an echo

9-8 How sampling keyboards work

9-9 Using Alice with Media Computation

9-10 Concepts summary

Chapter 10 Modifying pictures using loops

10-1 How pictures are encoded

10-2 Manipulating pictures

10-3 Changing color values

10-4 Using Media Computation with Alice

10-5 Concepts summary

Chapter 11 Modifying pixels in a matrix

11- 1 Copying pixels using a nested loop

11-2 Copying and transforming pictures

11-3 Using Media Computation with Alice

11-4 Concepts summary

Chapter 12 Conditionally modifying pixels

12-1 Conditional pixel changes

12-2 Simple edge detection, conditionals with two options

12-3 Sepia-toned and posterized pictures, multiple conditionals

12-4 Highlighting extremes

12-5 Combing pixels: Blurring

12-6 Background subtraction

12-7 Chromakey

12-8 Using Media Computation with Alice

12-9 Concepts summary

Chapter 13 Creating classes

13-1 Identifying the objects and the fields

13-2 Defining a class

13-3 Overloading constructors

13-4 Working with arrays

13-5 Creating accessors (getters) and modifiers (setters)

13-6 Creating a main method

13-7 Javadoc comments

13-8 Reusing a class via inheritance

13-9 Using Media Computation with Alice

13-10 Concepts summary

Chapter 14 Creating and modifying text

14-1 Text as unimedia

14-2 Strings: character sequences

14-3 Files: places to put your strings and other stuff

14-4 Other useful classes: Random

14-5 Networks: getting our text from the web

14-6 Using text to shift between media

14-7 Concepts Summary

Chapter 15 Repetition: recursion in Alice

15-1 Introduction to recursion

15-2 Another flavor of recursion

Chapter 16 Speed

16-1 Focusing on Computer Science

16-2 What makes programs fast?

16-3 What makes a computer fast?

16-4 Concepts summary

Chapter 17 Encoding, manipulating, and creating movies

17-1 Generating Frame-based Animations

17-2 Working with video frames

17-3 Using Media Computation with Alice

17-4 Concepts summary

Chapter 18 Abstract Classes, Polymorphism, and Inheritance

18-1 Object Oriented Analysis

18-2 Generalization / Specialization

18-3 Polymorphism

18-4 Shape example

18-5 Interfaces

18-6 Interfaces and Abstract Classes

18-7 Concept summary


A. Using Alice ó a tutorial

B. Alice tips & techniques

C. Quick reference to Java

A unique approach and a high-impact, motivating context for learning: Instructors who teach Alice have shared with us their concerns about how to transition students from Alice to programming in Java. This book’s unique combined approach motivates beginners to learn computing concepts in Alice and then see how to implement them in Java using Media Computation.

  • First the authors show students how to program in Alice by dragging and dropping tiles to create 3D movies and/or games.
  • Then, in Media Computation, students learn to program by writing textual programs that manipulate media: pictures, sounds, movies, and text.
Mediated transfer: The authors' experience is that students “get” the concept by seeing very similar examples presented “side by side” in Alice and then in Java and by the instructor making an effort to emphasize the similarities and explain the differences. Mediated transfer between Alice and Media Computation in Java is the underlying approach of this text and instructional materials. The Tea Party website, maintained by Barb Ericson, provides some support to assist teachers in making the transition.

Widespread Appeal: By blending Alice with Media Computation the authors take advantage of the interest and motivation students find in video games and animated films. They believe that this approach will appeal to a wide range of students while covering all the same skills and concepts mandated by curriculum standards.


Highly Accessible: Alice has a wide, established audience in colleges and universities in courses for non-majors.¿


Dr. Wanda Dann recently accepted the Directorship of the Alice Research Project at Carnegie Mellon University. She has been an active member of the Alice team for the last decade. Wanda's research interests include visualization in programming and programming languages and innovative approaches to introductory programming. She has published multiple papers on the use of program visualization in programming languages and its use in teaching and learning introductory computer programming. Dannís papers and articles have appeared in ACM's Special Interest Group on Computer Science Education (SIGCSE) Inroads, the Computer Science Education Journal, and other related publications. Dr. Dann is the lead author of Learning to Program with Alice (2006, Prentice-Hall) and Learning to Program with Alice, Brief Edition (2007, Prentice Hall). She is also a distinguished contributor to professional Computer Science educator groups and has served as ACMís SIGCSE Technical Symposium publications editor and as ACMís SIGCSE Symposium chair. She was recently elected to serve as a member of the SIGCSE Board and is the SIGCSE-CSTA liaison. Dr. Dann received a Ph.D. in Computer Science at Syracuse University.

Stephen Cooper is an Associate Professor of Computer Science and the Director for the Center for Visualization at Saint Joseph's University. He taught previously at Rivier College, serving as Computer Science program director. He has also worked at IBM as a systems programmer. Dr. Cooper's research interests lie in the semantics of programming languages as well as in program visualization. He is the author or co-author of a dozen articles, and has been the principal investigator for several National Science Foundation and private grants.

Barbara Ericson is a research scientist and the Director of Computing Outreach for the College of Computing at Georgia Tech. She has been working on improving introductory computing education for over 5 years. She is currently the teacher education representative on the Computer Science Teachers Association board and the co-chair of the K-12 Alliance for the National Center for Women in Information Technology. She enjoys the diversity of the types of problems she has worked on over the years in computing including computer graphics, artificial intelligence, medicine, and object-oriented programming.