did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780131496989

Introduction to Computing and Programming with Java A Multimedia Approach

by ;
  • ISBN13:

    9780131496989

  • ISBN10:

    0131496980

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2006-04-07
  • Publisher: Pearson

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Buyback Icon We Buy This Book Back!
    In-Store Credit: $0.11
    Check/Direct Deposit: $0.10
List Price: $173.32 Save up to $74.53
  • Rent Book $98.79
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE
    USUALLY SHIPS IN 24-48 HOURS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

New computer science students are far more motivated when they are creating programs they care about. Reflecting that insight, this complete first course in Java introduces each new concept in the context of programs that manipulate students' own sounds, pictures, web pages, and video: programs that help them communicate.

Author Biography

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 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.

¿

Mark Guzdial is a Professor in the School of Interactive Computing at Georgia Tech. ¿An award-winning teacher and active researcher in computing education, he holds a joint Ph.D. In Education and Computer Science from the University of Michigan. Dr. Guzdial directs Project “Georgia Computes!” which is an NSF funded alliance to improve computing education from pre-teen years to undergraduates. ¿He is a member of the ACM Education Board and is a frequent contributor to the ACM SIGCSE (Computer Science Education) Symposium.

¿

¿

Barbara Ericson and Mark Guzdial are recipients of the 2010 Karl V. Karlstom Outstanding Educator Award for their contributions to broadening participation in computing. They created the Media Computation (MediaComp) approach, which motivates students to write programs that manipulate and create digital media, such as pictures, sounds, and videos.¿Now in use in nearly 200 schools around the world, this contextualized approach to introductory Computer Science attracts students not motivated by classical algorithmic problems addressed in traditional computer science education.¿They also lead “Georgia Computes!” an NSF-funded statewide alliance to increase the number and diversity of students in computing education across all of Georgia.¿ Barbara Ericson directs the Institute for Computing Education at Georgia Tech. Mark Guzdial is director of the Contextualized Support for Learning at Georgia Tech.¿ Together they have written three textbooks using the MediaComp approach to engage and inspire student learning in computing.¿The Karlstrom Award recognizes educators who advanced new teaching methodologies; effected new curriculum development in Computer Science and Engineering; or contributed to ACM’s educational mission.

Table of Contents

Preface xxi
Part 1 INTRODUCTION
1(74)
Introduction to Computer Science and Media Computation
2(12)
What is Computer Science About?
2(5)
What Computers Understand
7(2)
Media Computation: Why Digitize Media?
9(1)
Computer Science for Everyone
10(4)
It's About Communication
10(1)
It's About Process
11(3)
Introduction to Java
14(24)
Java
14(2)
History of Java
14(1)
Introduction to Objects and Classes
15(1)
Introduction to Dr Java
16(3)
Starting Dr Java
17(2)
Java Basics
19(6)
Math Operators
19(1)
Printing the Result of a Statement
20(2)
Data Types in Math Expressions
22(1)
Casting
22(1)
Relational Operators
22(1)
Strings
23(2)
Variables
25(8)
Declaring Variables
25(1)
Using Variables in Calculations
26(1)
Memory Maps of Variables
27(1)
Object Variables
28(2)
Reusing Variables
30(2)
Multiple References to an Object
32(1)
Concepts Summary
33(5)
Statements
33(1)
Relational Operators
33(1)
Types
34(1)
Casting
34(1)
Variables
35(3)
Introduction to Programming
38(37)
Programming is About Naming
38(2)
Files and Their Names
40(1)
Class and Object Methods
41(2)
Invoking Class Methods
41(1)
Executing Object Methods
42(1)
Working with Turtles
43(7)
Defining Classes
43(1)
Creating Objects
43(3)
Sending Messages to Objects
46(2)
Objects Control Their State
48(1)
Additional Turtle Capabilities
49(1)
Creating Methods
50(9)
Methods that Take Input
57(2)
Working with Media
59(10)
Creating a Picture Object
59(2)
Showing a Picture
61(2)
Variable Substitution
63(2)
Object References
65(1)
Playing a Sound
66(1)
Naming Your Media (and other Values)
67(1)
Naming the Result of a Method
67(2)
Concepts Summary
69(6)
Invoking Object Methods
69(1)
Invoking Class Methods
69(1)
Creating Objects
69(1)
Creating New Methods
69(6)
Part 2 PICTURES
75(176)
Modifying Pictures Using Loops
76(55)
How Pictures are Encoded
76(9)
Color Representations
81(4)
Manipulating Pictures
85(6)
Exploring Pictures
89(2)
Changing Color Values
91(33)
Using a For-Each Loop
92(1)
Using While Loops
93(4)
Increasing/Decreasing Red (Green, Blue)
97(12)
Creating a Sunset
109(1)
Making Sense of Methods
110(3)
Variable Name Scope
113(4)
Using a For Loop
117(2)
Lightening and Darkening
119(2)
Creating a Negative
121(1)
Converting to Grayscale
122(2)
Concepts Summary
124(7)
Arrays
124(1)
Loops
124(2)
Comments
126(5)
Modifying Pixels in a Matrix
131(42)
Copying Pixels
131(11)
Looping Across the Pixels with a Nested Loop
131(3)
Mirroring a Picture
134(8)
Copying and Transforming Pictures
142(25)
Copying
143(6)
Creating a Collage
149(6)
Blending Pictures
155(2)
Rotation
157(4)
Scaling
161(6)
Concepts Summary
167(6)
Two-Dimensional Arrays
168(1)
Nested Loops
168(1)
Returning a Value from a Method
169(1)
Method Overloading
170(3)
Conditionally Modifying Pixels
173(39)
Conditional Pixel Changes
173(9)
Comparing Colors
175(1)
Replacing Colors
175(4)
Reducing Red-Eye
179(3)
Simple Edge Detection: Conditionals with Two Options
182(4)
Negation
182(1)
Testing for Both Conditions
182(1)
Conditionals with Two Options
183(1)
Simple Edge Detection
183(3)
Sepia-Toned and Posterized Pictures: Using Multiple Conditionals to Choose the Color
186(7)
Highlighting Extremes
193(1)
Combining Pixels: Blurring
194(3)
Background Subtraction
197(5)
Chromakey
202(3)
Concepts Summary
205(7)
Boolean Expressions
206(1)
Combining Boolean Expressions
206(1)
Conditional Execution
206(6)
Drawing
212(39)
Drawing Using the Graphics Class
212(14)
Drawing with Graphics Methods
214(7)
Vector and Bitmap Representations
221(2)
Drawing Text (Strings)
223(3)
Programs as Specifying Drawing Process
226(4)
Why Do We Write Programs?
230(1)
Using Graphics2D for Advanced Drawing
230(15)
Setting the Brush Width
231(1)
Copying Pictures by Drawing Images
232(3)
General Scaling
235(2)
Shearing
237(1)
Drawing with a GradientPaint
238(1)
Interfaces
239(2)
Blending Pictures Using AlphaComposite
241(2)
Clipping
243(2)
Concepts Summary
245(6)
Packages
245(1)
Predefined Java Classes
246(1)
Inheritance
246(1)
Interfaces
246(5)
Part 3 SOUNDS
251(134)
Modifying All Samples in a Sound
252(41)
How Sound is Encoded
252(10)
The Physics of Sound
252(4)
Exploring Sounds
256(3)
Encoding Sounds
259(3)
Manipulating Sounds
262(9)
Opening Sounds and Manipulating Samples
263(3)
Using MediaTools for Looking at Sounds
266(2)
Introducing Loops
268(3)
Changing the Volume of Sounds
271(9)
Increasing Volume
271(2)
Did that Really Work?
273(4)
Decreasing Volume
277(1)
Using a for Loop
278(1)
Making Sense of Methods
279(1)
Normalizing Sounds
280(4)
Generating Clipping
283(1)
Concepts Summary
284(9)
Arrays
284(1)
Loops
285(1)
Conditional Execution
286(7)
Modifying Samples Using Ranges
293(19)
Manipulating Different Sections of a Sound Differently
293(2)
Create a Sound Clip
295(2)
Splicing Sounds
297(7)
Reversing a Sound
304(2)
Mirroring a Sound
306(1)
Concepts Summary
307(5)
Ranges in Loops
307(1)
Returning a Value from a Method
307(5)
Making Sounds by Combining Pieces
312(31)
Composing Sounds Through Addition
312(1)
Blending Sounds
313(2)
Creating an Echo
315(3)
Creating Multiple Echoes
317(1)
How Sampling Keyboards Work
318(7)
Sampling as an Algorithm
324(1)
Additive Synthesis
325(8)
Making Sine Waves
325(1)
Creating Sounds Using Static Methods
326(2)
Adding Sine Waves Together
328(1)
Checking our Result
329(1)
Square Waves
330(2)
Triangle Waves
332(1)
Modern Music Synthesis
333(6)
MP3
334(1)
MIDI
334(2)
Private Methods
336(3)
Concepts Summary
339(4)
Class Methods
339(1)
Private Methods
339(1)
Build a Program from Multiple Methods
340(3)
Creating Classes
343(42)
Identifying the Objects and Fields
344(1)
Defining a Class
344(12)
Defining Fields
345(2)
Inherited Methods
347(1)
Overriding Inherited Methods
348(2)
Default Field Initialization
350(1)
Declaring Constructors
350(2)
Using a Debugger
352(4)
Overloading Constructors
356(1)
Creating and Initializing an Array
356(7)
Calculating the Grade Average
358(1)
Using Step Into in the Debugger
359(4)
Creating Accessors (Getters) and Modifiers (Setters)
363(3)
Creating Accessors (Getters)
364(1)
Creating Modifiers (Setters)
364(2)
Creating a Main Method
366(1)
Javadoc Comments
367(2)
Class Comment
367(1)
Method Comments
368(1)
Constructor Comments
368(1)
Generating the Documentation
368(1)
Creating Another Class
369(4)
Adding Constructors
371(1)
Adding Accessors and Modifiers
371(2)
Reusing a Class Via Inheritance
373(6)
Dynamic (Runtime) Binding
378(1)
Concepts Summary
379(6)
Declaring a Class
379(1)
Fields
380(1)
Constructors
380(1)
Arrays
381(1)
Using a Debugger
381(1)
Javadoc Comments
381(4)
Part 4 TEXT, FILES, NETWORKS, DATABASES, AND UNIMEDIA
385(98)
Creating and Modifying Text
386(56)
Text as Unimedia
387(1)
Strings: Character Sequences
387(7)
Unicode
388(1)
String Methods
389(3)
Processing Delimited Strings Using Split
392(1)
Strings Don't Have a Font
393(1)
Files: Places to Put Your Strings and Other Stuff
394(23)
Reading from Files
395(1)
Handling Exceptions
395(4)
Working with an ArrayList
399(5)
Writing to a File
404(2)
Generating a Form Letter
406(1)
Modifying Programs
407(10)
Other Useful Classes
417(4)
Another Fun Class: Random
419(2)
Networks: Getting Our Text from the Web
421(6)
Using Text to Shift Between Media
427(6)
Concepts Summary
433(9)
Exceptions
433(1)
Reading and Writing Files
434(1)
Reading from the Internet
434(1)
Import Statements
435(1)
While Loops
435(7)
Making Text for the Web
442(41)
HTML: The Notation of the Web
442(5)
Writing Programs to Generate HTML
447(12)
Creating a Web Page from a Directory
453(2)
Creating a Web Page from other Web Pages
455(2)
Adding Randomness to a Homepage
457(2)
Databases: A Place to Store Our Text
459(7)
Key and Value Maps
459(1)
Downcasting
460(3)
Generics
463(3)
Relational Databases
466(11)
SQL
467(1)
Getting Started: Drivers and Connections
468(4)
Querying the Database
472(4)
Using a Database to Build Web Pages
476(1)
Concepts Summary
477(6)
HTML
477(1)
Helper Methods
478(1)
Throwing an Exception
478(1)
The ``Unnamed'' Package
478(1)
HashMap
478(1)
Generics
478(1)
Iterators
479(1)
JDBC and SQL
479(4)
Part 5 MOVIES
483(20)
Encoding, Manipulating, and Creating Movies
484(19)
Generating Frame-Based Animations
485(9)
Working with Video Frames
494(7)
Video-Manipulating Examples
494(7)
Concepts Summary
501(2)
Part 6 TOPICS IN COMPUTER SCIENCE
503(48)
Speed
504(25)
Focusing on Computer Science
504(1)
What Makes Programs Fast?
504(18)
What Computers Really Understand
505(1)
Compilers and Interpreters
506(8)
The Special Case of Java
514(1)
How Fast Can We Really Go?
515(2)
Making Searching Faster
517(3)
Algorithms that Never Finish or Can't Be Written
520(2)
Why Is Photoshop Faster than Our Programs in Java?
522(1)
What Makes a Computer Fast?
522(3)
Clock Rates and Actual Computation
523(1)
Storage: What Makes a Computer Slow?
523(2)
Display
525(1)
Concepts Summary
525(4)
JavaScript: A Web Page Programming Language
529(22)
JavaScript Syntax
529(2)
JavaScript Inside of Web Pages
531(3)
User Interfaces in JavaScript
534(6)
Multimedia in JavaScript
540(1)
Concepts Summary
541(2)
APPENDICES
A. Quick Reference to Java
543(8)
A.1 Variables
543(1)
A.2 Method Declarations
544(2)
A.3 Loops
546(1)
A.4 Conditionals
547(1)
A.5 Operators
547(1)
A.6 String Escapes
548(1)
A.7 Classes
548(1)
A.8 Fields
549(1)
A.9 Constructors
549(1)
A10. Packages
549(2)
Bibliography 551(2)
Index 553

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program