Introduction to Computing and Programming in Python
Häftad, Engelska, 2015
3 609 kr
Social Computing and Programming with Python
Introduction to Computing and Programming in Python is a uniquely researched and up-to-date volume that is widely recognized for its successful introduction to the subject of Media Computation. Emphasizing creativity, classroom interaction, and in-class programming examples, Introduction to Computing and Programming in Python takes a bold and unique approach to computation that engages students and applies the subject matter to the relevancy of digital media. The Fourth Edition teaches students to program in an effort to communicate via social computing outlets, providing a unique approach that serves the interests of a broad range of students.
Produktinformation
- Utgivningsdatum2015-01-26
- Mått10 x 10 x 10 mm
- Vikt694 g
- FormatHäftad
- SpråkEngelska
- Antal sidor528
- Upplaga4
- FörlagPearson Education
- ISBN9780134025544
Tillhör följande kategorier
Mark Guzdial is a professor in the School of Interactive Computing in the College of Computing at Georgia Institute of Technology. He is one of the founders of the ACM’s International Computing Education Research workshop series. Dr. Guzdial’s research focuses on learning sciences and technology, specifically, computing education research. His first books were on the programming language Squeak and its use in education. He was the original developer of “Swiki” (Squeak Wiki), the first wikideveloped explicitly for use in schools. Mark has published several books on the use of media as a context for learning computing, which have influenced undergraduate computing curricula around the world. He is on the editorial boards of the Journal of the Learning Sciences and Communications of the ACM. He was a recipient of the 2012 IEEE Computer Society Undergraduate Teaching Award. He is a Senior Member of the ACM.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 since 2004. She has served as the teacher education representative on the Computer Science Teachers Association board, the co-chair of the K-12 Alliance for the National Center for Women in Information Technology, and as a reader for the Advanced Placement Computer Science exams. 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 and Barbara received the 2010 ACM Karl V. Karlstrom Award for Outstanding Computer Educator for their work on Media Computation including this book. They led a project called “Georgia Computes!” for six years, which had a significant impact in improving computing education in the US state of Georgia [3]. Together, they Mark and Barbara are leaders in the Expanding Computing Education.
- Introduction 11 Introduction to Computer Science and Media Computation 31.1 What Is Computer Science About? 31.2 Programming Languages 61.3 What Computers Understand 91.4 Media Computation: Why Digitize Media? 111.5 Computer Science for Everyone 131.5.1 It’s About Communication 131.5.2 It’s About Process 131.5.3 You Will Probably Need It 142 Introduction to Programming 182.1 Programming Is About Naming 182.2 Programming in Python 212.3 Programming in JES 222.4 Media Computation in JES 232.1.1 Files and Their Names 202.5 Making a Program 332.4.1 Showing a Picture 272.4.2 Playing a Sound 302.4.3 Naming Values 302.5.1 Variable Recipes: Real Math-Like Functions That Take Input 373 Creating and Modifying Text 443.1 Strings: Making Strings 443.2 Taking Strings Apart with For 493.1.1 Making Strings from Strings: Telling Stories 463.2.1 Testing the Pieces 513.2.2 Taking String Apart, and Putting Strings Together 543.2.3 Taking Strings Apart with Indices 573.2.4 Mirroring, Reversing, and Separating Strings with Index 593.2.5 Encoding and Decoding Strings Using a Keyword Cipher 613.3 Taking Strings Apart by Words 633.4 What’s Inside a String 663.5 What a Computer Can Do 674 Modifying Pictures Using Loops 744.1 How Pictures Are Encoded 754.2 Manipulating Pictures 804.3 Changing Color Values 864.2.1 Exploring Pictures 844.3.1 Using Loops in Pictures 864.3.2 Increasing/Decreasing Red (Green, Blue) 884.3.3 Testing the Program: Did That Really Work? 934.3.4 Changing One Color at a Time 944.4.1 Making Sense of Functions 954.4 Creating a Sunset 954.5 Lightening and Darkening 1004.6 Creating a Negative 1014.7 Converting to Grayscale 1024.8 Specifying Pixels by Index 1045 Picture Techniques with Selection 1145.1 Replacing Colors: Red-Eye, Sepia Tones, and Posterizing 1145.1.1 Reducing Red-Eye 1185.1.2 Sepia-Toned and Posterized Pictures: Using Conditionals to Choose the Color 1205.2 Comparing Pixels: Edge Detection 1265.3 Background Subtraction 1295.4 Chromakey 1325.5 Coloring in ranges 1375.5.1 Adding a Border 1375.5.2 Lightening the Right Half of a Picture 1385.6 Selecting without Retesting 1396 Modifying Pixels by Position 1456.1 Processing Pixels Faster 1456.1.1 Looping across the Pixels with Range 1476.1.2 Writing Faster Pixel Loops 1496.2 Mirroring a Picture 1516.3 Copying and Transforming Pictures 1586.3.1 Copying 1596.3.2 Copying Smaller and Modifying 1656.3.3 Copying and Referencing 1676.3.4 Creating a Collage 1696.3.5 General Copying 1726.3.6 Rotation 1736.3.7 Scaling 1766.4 Combining Pixels: Blurring 1816.5 Blending Pictures 1846.6 Drawing on Images 1866.7 Programs as Specifying Drawing Process 1916.6.1 Drawing with Drawing Commands 1886.6.2 Vector and Bitmap Representations 1896.7.1 Why Do We Write Programs? 192Sounds 2017 Modifying Sounds Using Loops 2037.1 How Sound Is Encoded 2037.2 Manipulating Sounds 2157.3 Changing the Volume of Sounds 2207.1.1 The Physics of Sound 2037.1.2 Investigating Different Sounds 2067.1.3 Encoding the Sound 2117.1.4 Binary Numbers and Two’s Complement 2127.1.5 Storing Digitized Sounds 2137.2.1 Open Sounds and Manipulating Samples 2157.2.2 Using the JES MediaTools 2187.2.3 Looping 2197.3.1 Increasing Volume 2207.3.2 Did That Really Work? 2217.3.3 Decreasing Volume 2257.3.4 Using Array Index Notation 2267.3.5 Making Sense of Functions in Sounds 2277.4.1 Generating Clipping 2297.4 Normalizing Sounds 2278 Modifying Samples in a Range 2358.1 Manipulating Different Sections of the Sound Differently 2358.2 Splicing Sounds 2388.3 General Clip and Copy 2458.4 Reversing Sounds 2478.5 Mirroring 2498.6 On Functions and Scope 2499 Making Sounds by Combining Pieces 2559.1 Composing Sounds Through Addition 2559.2 Blending Sounds 2569.3 Creating an Echo 2588.1.1 Revisiting Index Array Notation 2369.4 How Sampling Keyboards Work 2619.5 Additive Synthesis 2659.6 Modern Music Synthesis 2739.3.1 Creating Multiple Echoes 2599.3.2 Creating Chords 2609.4.1 Sampling as an Algorithm 2659.5.1 Making Sine Waves 2659.5.2 Adding Sine Waves Together 2679.5.3 Checking Our Result 2689.5.4 Square Waves 2699.5.5 Triangular Waves 2729.6.1 MP3 2749.6.2 MIDI 27410 Building Bigger Programs 27910.1 Designing Programs Top-Down 28010.1.1 A Top-Down Design Example 28110.1.2 Designing the Top-Level Function 28210.2 Designing Programs Bottom-Up 28810.3 Testing Your Program 29010.4 Tips on Debugging 29210.1.3 Writing the Subfunctions 28510.2.1 An Example Bottom-Up Process 28910.3.1 Testing the Edge Conditions 29110.4.1 Finding Which Statement to Worry About 29310.4.2 Seeing the Variables 29310.4.3 Debugging the Adventure Game 29610.5 Algorithms and Design 29910.6 Connecting to Data outside a Function 29910.7 Running Programs Outside of JES 30311 Manipulating Text with Methods and Files 31011.1 Text as Unimedia 31011.2 Manipulating Parts of Strings 31111.3 Files: Places to Put Your Strings and Other Stuff 31711.4 The Python Standard Library 32711.2.1 String Methods: Introducing Objects and Dot Notation 31211.2.2 Lists: Powerful, Structured Text 31411.2.3 Strings Have No Font 31611.3.1 Opening and Manipulating Files 31811.3.2 Generating Form Letters 32011.3.3 Reading and Manipulating Data from the Internet 32111.3.4 Scraping Information from a Web Page 32311.3.5 Reading CSV Data 32411.3.6 Writing Out Programs 32611.4.1 More on Import and Your Own Modules 32811.4.2 Adding Unpredictably toYour Program with Random 32911.4.3 Reading CSV Files with a Library 33111.4.4 A Sampling of Python Standard Libraries 33112 Advanced Text Techniques: Web and Information 33712.1 Networks: Getting Our Text from the Web 33712.1.1 Automating Access to CSV Data 34112.1.2 Accessing FTP 34312.2 Using Text to Shift Between Media 34412.3 Moving Information Between Media 34712.4 Using Lists as Structured Text for Media Representations 34912.5 Hiding Information in a Picture 35112.5.1 Hiding a Sound Inside a Picture 35313 Making Text for the Web 35913.1 HTML: The Notation of the Web 35913.2 Writing Programs to Generate HTML 36413.3 Databases: A Place to Store Our Text 36913.2.1 Making Home Pages 36613.3.1 Relational Databases 37113.3.2 An Example Relational Database Using HashTables 37213.3.3 Working with SQL 37513.3.4 Using a Database to Build Web Pages 37714 Creating and Modifying Movies 38214.1 Generating Animations 38314.2 Working with Video Source 39214.3 Building a Video Effect Bottom-Up 39615 Speed 40315.1 Focusing on Computer Science 40315.2 What Makes Programs Fast? 40314.2.1 Video Manipulating Examples 39215.3 What Makes a Computer Fast? 41715.2.1 What Computers Really Understand 40415.2.2 Compilers and Interpreters 40515.2.3 What Limits Computer Speed? 40915.2.4 Does It Really Make a Difference? 41115.2.5 Making Searching Faster 41315.2.6 AlgorithmsThat Never Finish or Can’t BeWritten 41515.2.7 Why Is Photoshop Faster than JES? 41715.3.1 Clock Rates and Actual Computation 41715.3.2 Storage: What Makes a Computer Slow? 41915.3.3 Display 42016 Functional Programming 42316.1 Using Functions to Make Programming Easier 42316.2 Functional Programming with Map and Reduce 42716.3 Functional Programming for Media 43016.4 Recursion: A Powerful Idea 43216.3.1 Media Manipulation Without Changing State 43116.4.1 Recursive Directory Traversals 43816.4.2 Recursive Media Functions 44017 Object Oriented Programming 44417.1 History of Objects 44417.2 Working with Turtles 44617.3 Teaching Turtles New Tricks 45117.2.1 Classes and Objects 44617.2.2 Sending Messages to Objects 44717.2.3 Objects Control Their State 44917.3.1 Overriding an Existing Turtle Method 45317.3.2 Working with Multiple Turtles at Once 45417.3.3 Turtles with Pictures 45617.3.4 Dancing Turtles 45817.3.5 Recursion and Turtles 46017.4.1 Making the Slide Class More Object-Oriented 46517.4 An Object-Oriented Slide Show 46117.5 Object-Oriented Media 46617.6 Joe the Box 47117.7 Why Objects? 473Bibliography 480