Actions for Introduction to computing and programming in Python : a multimedia approach
Introduction to computing and programming in Python : a multimedia approach / Mark J. Guzdial and Barbara Ericson, College of Computing/GVU, Georgia Institute of Technology
- Author
- Guzdial, Mark
- Published
- Boston : Pearson, [2016]
- Edition
- Fourth edition.
- Physical Description
- xxiv, 499 pages : color illustrations ; 24 cm
- Additional Creators
- Ericson, Barbara
- Contents
- Machine generated contents note: 1.Introduction to Computer Science and Media Computation -- 1.1.What Is Computer Science About? -- 1.2.Programming Languages -- 1.3.What Computers Understand -- 1.4.Media Computation: Why Digitize Media? -- 1.5.Computer Science for Everyone -- 1.5.1.It's About Communication -- 1.5.2.It's About Process -- 1.5.3.You Will Probably Need It -- 2.Introduction to Programming -- 2.1.Programming Is About Naming -- 2.1.1.Files and Their Names -- 2.2.Programming in Python -- 2.3.Programming in JES -- 2.4.Media Computation in JES -- 2.4.1.Showing a Picture -- 2.4.2.Playing a Sound -- 2.4.3.Naming Values -- 2.5.Making a Program -- 2.5.1.Functions: Real Math-Like Functions That Take Input -- 3.Creating and Modifying Text -- 3.1.Strings: Making Human Text in a Computer -- 3.1.1.Making Strings from Strings: Telling Stories -- 3.2.Taking Strings Apart with For -- 3.2.1.Testing the Pieces -- 3.2.2.Taking String Apart, and Putting Strings Together -- 3.2.3.Taking Strings Apart with Indices -- 3.2.4.Mirroring, Reversing, and Separating Strings with Index -- 3.2.5.Encoding and Decoding Strings Using a Keyword Cipher -- 3.3.Taking Strings Apart by Words -- 3.4.What's Inside a String -- 3.5.What a Computer Can Do -- 4.Modifying Pictures Using Loops -- 4.1.How Pictures Are Encoded -- 4.2.Manipulating Pictures -- 4.2.1.Exploring Pictures -- 4.3.Changing Color Values -- 4.3.1.Using Loops in Pictures -- 4.3.2.Increasing/Decreasing Red (Green, Blue) -- 4.3.3.Testing the Program: Did That Really Work? -- 4.3.4.Changing One Color at a Time -- 4.4.Creating a Sunset -- 4.4.1.Making Sense of Functions -- 4.5.Lightening and Darkening -- 4.6.Creating a Negative -- 4.7.Converting to Grayscale -- 4.8.Specifying Pixels by Index -- 5.Picture Techniques with Selection -- 5.1.Replacing Colors: Red-Eye, Sepia Tones, and Posterizing -- 5.1.1.Reducing Red-Eye -- 5.1.2.Sepia-Toned and Posterized Pictures: Using Conditionals to Choose the Color -- 5.2.Comparing Pixels: Edge Detection -- 5.3.Background Subtraction -- 5.4.Chromakey -- 5.5.Coloring in ranges -- 5.5.1.Adding a Border -- 5.5.2.Lightening the Right Half of a Picture -- 5.6.Selecting without Retesting -- 6.Modifying Pixels by Position -- 6.1.Processing Pixels Faster -- 6.1.1.Looping across the Pixels with Range -- 6.1.2.Writing Faster Pixel Loops -- 6.2.Mirroring a Picture -- 6.3.Copying and Transforming Pictures -- 6.3.1.Copying -- 6.3.2.Copying Smaller and Modifying -- 6.3.3.Copying and Referencing -- 6.3.4.Creating a Collage -- 6.3.5.General Copying -- 6.3.6.Rotation -- 6.3.7.Scaling -- 6.4.Combining Pixels: Blurring -- 6.5.Blending Pictures -- 6.6.Drawing on Images -- 6.6.1.Drawing with Drawing Commands -- 6.6.2.Vector and Bitmap Representations -- 6.7.Programs as Specifying Drawing Process -- 6.7.1.Why Do We Write Programs? -- 7.Modifying Sounds Using Loops -- 7.1.How Sound Is Encoded -- 7.1.1.The Physics of Sound -- 7.1.2.Investigating Different Sounds -- 7.1.3.Encoding the Sound -- 7.1.4.Binary Numbers and Two's Complement -- 7.1.5.Storing Digitized Sounds -- 7.2.Manipulating Sounds -- 7.2.1.Open Sounds and Manipulating Samples -- 7.2.2.Using the JES MediaTools -- 7.2.3.Looping -- 7.3.Changing the Volume of Sounds -- 7.3.1.Increasing Volume -- 7.3.2.Did That Really Work? -- 7.3.3.Decreasing Volume -- 7.3.4.Using Array Index Notation -- 7.3.5.Making Sense of Functions in Sounds -- 7.4.Normalizing Sounds -- 7.4.1.Generating Clipping -- 8.Modifying Samples in a Range -- 8.1.Manipulating Different Sections of the Sound Differently -- 8.1.1.Revisiting Index Array Notation -- 8.2.Splicing Sounds -- 8.3.General Clip and Copy -- 8.4.Reversing Sounds -- 8.5.Mirroring -- 8.6.On Functions and Scope -- 9.Making Sounds by Combining Pieces -- 9.1.Composing Sounds Through Addition -- 9.2.Blending Sounds -- 9.3.Creating an Echo -- 9.3.1.Creating Multiple Echoes -- 9.3.2.Creating Chords -- 9.4.How Sampling Keyboards Work -- 9.4.1.Sampling as an Algorithm -- 9.5.Additive Synthesis -- 9.5.1.Making Sine Waves -- 9.5.2.Adding Sine Waves Together -- 9.5.3.Checking Our Result -- 9.5.4.Square Waves -- 9.5.5.Triangular Waves -- 9.6.Modern Music Synthesis -- 9.6.1.MP3 -- 9.6.2.MIDI -- 10.Building Bigger Programs -- 10.1.Designing Programs Top-Down -- 10.1.1.A Top-Down Design Example -- 10.1.2.Designing the Top-Level Function -- 10.1.3.Writing the Subfunctions -- 10.2.Designing Programs Bottom-Up -- 10.2.1.An Example Bottom-Up Process -- 10.3.Testing Your Program -- 10.3.1.Testing the Edge Conditions -- 10.4.Tips on Debugging -- 10.4.1.Finding Which Statement to Worry About -- 10.4.2.Seeing the Variables -- 10.4.3.Debugging the Adventure Game -- 10.5.Algorithms and Design -- 10.6.Connecting to Data Outside a Function -- 10.7.Running Programs Outside of JES -- 11.Manipulating Text with Methods and Files -- 11.1.Text as Unimedia -- 11.2.Manipulating Parts of Strings -- 11.2.1.String Methods: Introducing Objects and Dot Notation -- 11.2.2.Lists: Powerful, Structured Text -- 11.2.3.Strings Have No Font -- 11.3.Files: Places to Put Your Strings and Other Stuff -- 11.3.1.Opening and Manipulating Files -- 11.3.2.Generating Form Letters -- 11.3.3.Reading and Manipulating Data from the Internet -- 11.3.4.Scraping Information from a Web Page -- 11.3.5.Reading CSV Data -- 11.3.6.Writing Out Programs -- 11.4.The Python Standard Library -- 11.4.1.More on Import and Your Own Modules -- 11.4.2.Adding Unpredictably to Your Program with Random -- 11.4.3.Reading CSV Files with a Library -- 11.4.4.A Sampling of Python Standard Libraries -- 12.Advanced Text Techniques: Web and Information -- 12.1.Networks: Getting Our Text from the Web -- 12.1.1.Automating Access to CSV Data -- 12.1.2.Accessing FTP -- 12.2.Using Text to Shift Between Media -- 12.3.Moving Information Between Media -- 12.4.Using Lists as Structured Text for Media Representations -- 12.5.Hiding Information in a Picture -- 12.5.1.Hiding a Sound Inside a Picture -- 13.Making Text for the Web -- 13.1.HTML: The Notation of the Web -- 13.2.Writing Programs to Generate HTML -- 13.2.1.Making Home Pages -- 13.3.Databases: A Place to Store Our Text -- 13.3.1.Relational Databases -- 13.3.2.An Example Relational Database Using Hash Tables -- 13.3.3.Working with SQL -- 13.3.4.Using a Database to Build Web Pages -- 14.Creating and Modifying Movies -- 14.1.Generating Animations -- 14.2.Working with Video Source -- 14.2.1.Video Manipulating Examples -- 14.3.Building a Video Effect Bottom-Up -- 15.Speed -- 15.1.Focusing on Computer Science -- 15.2.What Makes Programs Fast? -- 15.2.1.What Computers Really Understand -- 15.2.2.Compilers and Interpreters -- 15.2.3.What Limits Computer Speed? -- 15.2.4.Does It Really Make a Difference? -- 15.2.5.Making Searching Faster -- 15.2.6.Algorithms That Never Finish or Can't Be Written -- 15.2.7.Why Is Photoshop Faster than JES? -- 15.3.What Makes a Computer Fast? -- 15.3.1.Clock Rates and Actual Computation -- 15.3.2.Storage: What Makes a Computer Slow? -- 15.3.3.Display -- 16.Functional Programming -- 16.1.Using Functions to Make Programming Easier -- 16.2.Functional Programming with Map and Reduce -- 16.3.Functional Programming for Media -- 16.3.1.Media Manipulation without Changing State -- 16.4.Recursion: A Powerful Idea -- 16.4.1.Recursive Directory Traversals -- 16.4.2.Recursive Media Functions -- 17.Object-Oriented Programming -- 17.1.History of Objects -- 17.2.Working with Turtles -- 17.2.1.Classes and Objects -- 17.2.2.Sending Messages to Objects -- 17.2.3.Objects Control Their State -- 17.3.Teaching Turtles New Tricks -- 17.3.1.Overriding an Existing Turtle Method -- 17.3.2.Working with Multiple Turtles at Once -- 17.3.3.Turtles with Pictures -- 17.3.4.Dancing Turtles -- 17.3.5.Recursion and Turtles -- 17.4.An Object-Oriented Slide Show -- 17.4.1.Making the Slide Class More Object-Oriented -- 17.5.Object-Oriented Media -- 17.6.Joe the Box -- 17.7.Why Objects? -- A.Quick Reference to Python -- A.1.Variables -- A.2.Function Creation -- A.3.Loops and Conditionals -- A.4.Operators and Representation Functions -- A.5.Numeric Functions -- A.6.Sequence Operations -- A.7.String Escapes -- A.8.Useful String Methods -- A.9.Files -- A.10.Lists -- A.11.Dictionaries, Hash Tables, or Associative Arrays -- A.12.External Modules -- A.13.Classes -- A.14.Functional Methods.
- Subject(s)
- ISBN
- 9780134025544
0134025547 - Bibliography Note
- Includes bibliographical references (pages 488-490) and index.
View MARC record | catkey: 18372296