| |
| |
Preface | |
| |
| |
| |
Introduction | |
| |
| |
| |
Introduction to Computer Science and Media Computation | |
| |
| |
| |
What is Computer Science About? | |
| |
| |
| |
What Computers Understand | |
| |
| |
| |
Media Computation: Why Digitize Media? | |
| |
| |
| |
Computer Science for Everyone | |
| |
| |
| |
Introduction to Java | |
| |
| |
| |
Java | |
| |
| |
| |
Introduction to DrJava | |
| |
| |
| |
Java Basics | |
| |
| |
| |
Variables | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Introduction to Programming | |
| |
| |
| |
Programming is About Naming | |
| |
| |
| |
Files and Their Names | |
| |
| |
| |
Class and Object Methods | |
| |
| |
| |
Working with Turtles | |
| |
| |
| |
Creating Methods | |
| |
| |
| |
Working with Media | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Pictures | |
| |
| |
| |
Modifying Pictures Using Loops | |
| |
| |
| |
How Pictures are Encoded | |
| |
| |
| |
Manipulating Pictures | |
| |
| |
| |
Changing Color Values | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Modifying Pixels in a Matrix | |
| |
| |
| |
Copying Pixels | |
| |
| |
| |
Copying and Transforming Pictures | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Conditionally Modifying Pixels | |
| |
| |
| |
Conditional Pixel Changes | |
| |
| |
| |
Simple Edge Detection: Conditionals with Two Options | |
| |
| |
| |
Sepia-Toned and Posterized Pictures: Using Multiple Conditionals to Choose the Color | |
| |
| |
| |
Highlighting Extremes | |
| |
| |
| |
Combining Pixels: Blurring | |
| |
| |
| |
Background Subtraction | |
| |
| |
| |
Chromakey | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Drawing | |
| |
| |
| |
Drawing Using the Graphics Class | |
| |
| |
| |
Programs as Specifying Drawing Process | |
| |
| |
| |
Using Graphics2D for Advanced Drawing | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Sounds | |
| |
| |
| |
Modifying All Samples in a Sound | |
| |
| |
| |
How Sound is Encoded | |
| |
| |
| |
Manipulating Sounds | |
| |
| |
| |
Changing the Volume of Sounds | |
| |
| |
| |
Normalizing Sounds | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Modifying Samples Using Ranges | |
| |
| |
| |
Manipulating Different Sections of a Sound Differently | |
| |
| |
| |
Create a Sound Clip | |
| |
| |
| |
Splicing Sounds | |
| |
| |
| |
Reversing a Sound | |
| |
| |
| |
Mirroring a Sound | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Making Sounds by Combining Pieces | |
| |
| |
| |
Composing Sounds Through Addition | |
| |
| |
| |
Blending Sounds | |
| |
| |
| |
Creating an Echo | |
| |
| |
| |
How Sampling Keyboards Work | |
| |
| |
| |
Additive Synthesis | |
| |
| |
| |
Modern Music Synthesis | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Creating Classes | |
| |
| |
| |
Identifying the Objects and Fields | |
| |
| |
| |
Defining a Class | |
| |
| |
| |
Overloading Constructors | |
| |
| |
| |
Creating and Initializing an Array | |
| |
| |
| |
Creating Accessors (Getters) and Modifiers (Setters) | |
| |
| |
| |
Creating a Main Method | |
| |
| |
| |
Javadoc Comments | |
| |
| |
| |
Creating Another Class | |
| |
| |
| |
Reusing a Class Via Inheritance | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Text, Files, Networks, Databases, and Unimedia | |
| |
| |
| |
Creating and Modifying Text | |
| |
| |
| |
Text as Unimedia | |
| |
| |
| |
Strings: Character Sequences | |
| |
| |
| |
Files: Places to Put Your Strings and Other Stuff | |
| |
| |
| |
Other Useful Classes | |
| |
| |
| |
Networks: Getting Our Text from the Web | |
| |
| |
| |
Using Text to Shift Between Media | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Making Text for the Web | |
| |
| |
| |
HTML: The Notation of the Web | |
| |
| |
| |
Writing Programs to Generate HTML | |
| |
| |
| |
Databases: A Place to Store Our Text | |
| |
| |
| |
Relational Databases | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Movies | |
| |
| |
| |
Encoding, Manipulating, and Creating Movies | |
| |
| |
| |
Generating Frame-Based Animations | |
| |
| |
| |
Working with Video Frames | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
Topics in Computer Science | |
| |
| |
| |
Speed | |
| |
| |
| |
Focusing on Computer Science | |
| |
| |
| |
What Makes Programs Fast? | |
| |
| |
| |
What Makes a Computer Fast? | |
| |
| |
| |
Concepts Summary | |
| |
| |
| |
JavaScript: A Web Page Programming Language | |
| |
| |
| |
JavaScript Syntax | |
| |
| |
| |
JavaScript Inside of Web Pages | |
| |
| |
| |
User Interfaces in JavaScript | |
| |
| |
| |
Multimedia in JavaScript | |
| |
| |
| |
Concepts Summary | |
| |
| |
Appendices | |
| |
| |
| |
Quick Reference to Java | |
| |
| |
| |
Variables | |
| |
| |
| |
Method Declarations | |
| |
| |
| |
Loops | |
| |
| |
| |
Conditionals | |
| |
| |
| |
Operators | |
| |
| |
| |
String Escapes | |
| |
| |
| |
Classes | |
| |
| |
| |
Fields | |
| |
| |
| |
Constructors | |
| |
| |
| |
Packages | |
| |
| |
Bibliography | |
| |
| |
Index | |