Preface
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
Appendices
A. Using Alice — a tutorial
B. Alice tips & techniques
C. Quick reference to Java
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.
![]() |
Ask a Question About this Product More... |
![]() |