CS1315 Introduction to Media Computation

CS1315 Introduction to Media Computation

Chapter 1: Introduction to Computer Science and Media Computation Story What is computer science about? What computers really understand, and where Programming Languages fit in Media Computation: Why digitize media? How can it possibly work? Computer Science for Everyone

Its about communications and process Whats computation good for Computer science is the study of recipes Computer scientists study How the recipes are written (algorithms, software engineering) The units used in the recipes (data structures, databases) What can recipes be written for (systems, intelligent systems, theory) How well the recipes work (human-computer interfaces)

Specialized Recipes Some people specialize in crepes or barbeque Computer scientists can also specialize on special kinds of recipes Recipes that create pictures, sounds, movies, animations (graphics, computer music) Still others look at emergent properties of computer recipes What happens when lots of recipes talk to one

another (networking, non-linear systems) Defining terms Beyond recipes A program is a description in a programming language of a process that achieves some result. An algorithm is a description of a process in a step-by-step manner. The same algorithm could be written in many languages.

Key concept: The COMPUTER does the recipe! Make it as hard, tedious, complex as you want! Crank through a million genomes? No problem! Find one person in a 30,000 campus? Yawn! Process a million dots on the screen or a bazillion sound samples? Thats media computation What computers understand Its not really multimedia at all. Its unimedia (said Nicholas Negroponte, founder of MIT Media

Lab) Everything is 0s and 1s Computers are exceedingly stupid The only data they understand is 0s and 1s They can only do the most simple things with those 0s and 1s Move this value here Add, multiply, subtract, divide these values Compare these values, and if one is less than the other, go follow this step rather than that one. Done fast enough, those simple things can be

amazing. Programming Languages Different programming languages are different ways (encodings) that turn into (same/similar) commands for the computer Python Python is a popular programing language, which is designed to be easy to read. Used by many companies. Also used to make application software

flexible and expendable. For example, can be used to program GIMP or Blender A word about Jython Jython is Python Python is a language implemented in C. Jython is the same language implemented in Java. Is the pizza different if a different company

makes the flour? If so, not by much. Key Concept: Encodings We can interpret the 0s and 1s in computer memory any way we want. We can treat them as numbers. We can encode information in those numbers Even the notion that the

computer understands numbers is an interpretation We encode the voltages on wires as 0s and 1s, eight of these defining a byte Which we can, in turn, interpret as a decimal number How a computer works The part that does the adding and comparing is the Central

Processing Unit (CPU). The CPU talks to the memory Think of it as a sequence millions of mailboxes, each one byte in size, each of which has a numeric address The hard disk provides 10 times or more storage than in memory (20 billion bytes versus 128 million bytes), but is millions of times slower The display is the monitor or LCD (or whatever)

Layer the encodings as deep as you want One encoding, ASCII, defines an A as 65 If theres a byte with a 65 in it, and we decide that its a string, POOF! Its an A! We can string together lots of these numbers together to make usable text 77, 97, 114, 107 is Mark 60, 97, 32, 104, 114, 101, 102, 61 is

encodings? A number is just a number is just a number If you have to treat it as a letter, theres a piece of software that does it For example, that associates 65 with the graphical representation for A If you have to treat it as part of an HTML document, theres a piece of software that does it That understands that

That part that knows HTML communicates with the part that knows that 65 is an A Multimedia is unimedia But that same byte with a 65 in it might be interpreted as A very small piece of sound (e.g., 1/44100-th of a second) The amount of redness in a single dot in a larger picture The amount of redness in a single dot in a

larger picture which is a single frame in a fulllength motion picture Software (recipes) defines and manipulates encodings Computer programs manage all these layers How do you decide what a number should mean, and how you should organize your numbers to represent all the data you want? Thats data structures If that sounds like a lot of data, it is To represent all the dots on your screen probably takes more than 3,145,728 bytes Each second of sound on a CD takes 44,100 bytes

The Power of Moores Law Gordon Moore, one of the founders of Intel, made the claim that (essentially) computer power doubles for the same dollar every 18 months. This has held true for over 30 years. Go ahead! Make your computer do the same thing to everyone of 3 million dots on your screen! It doesnt care! And it wont take much time either! Why digitize media? Digitizing media is encoding media into

numbers Real media is analogue (continuous). To digitize it, we break it into parts where we cant perceive the parts. By converting them, we can more easily manipulate them, store them, transmit them without error, etc. How can it work to digitize media? Why does it work that we can break media

into pieces and we dont perceive the breaks? We can only do it because human perception is limited. We dont see the dots in the pictures, or the gaps in the sounds. We can make this happen because we know about physics (science of the physical world) and psychophysics (psychology of how we perceive the physical world) Why should you need to study recipes?

To understand better the recipe-way of thinking Its influencing everything, from computational science to bioinformatics Eventually, its going to become part of everyones notion of a liberal education youll probably need it Thats the process argument ANDto communicate! Writers, marketers, producers communicate through computation

Well take these in opposite order Computation for Communication All media are going digital Digital media are manipulated with software You are limited in your communication by what your software allows What if you want to say something that Microsoft or Adobe or Apple doesnt provide a

tool/filter/feature to say? Programming is a communications skill If you want to say something that your tools dont allow, program it yourself If you want to understand what your tools can or cannot do, you need to understand what the programs are doing If you care about preparing media for the Web, for marketing, for print, for broadcast then its worth your while to understand how the media are and can be manipulated. Knowledge is Power,

Knowing how media work is powerful and freeing Were not going to replace PhotoShop Nor ProAudio Tools, ImageMagick and the GIMP, and Java and Visual Basic But if you know what these things are doing, you have something that can help you learn new tools Knowing about programming is knowing about process Alan Perlis One of the founders of computer science

Argued in 1961 that Computer Science should be part of a liberal education: Everyone should learn to program. Perhaps computing is more critical to a liberal education than Calculus Calculus is about rates, and thats important to many. Computer science is about process, and thats important to everyone. Automating process changes everything. Everyone will likely need this

A study a Carnegie-Mellon University found that there were at least 4 end-user programmers for every 1 professional software developer in the world. End-user programmers create programs to solve problems of their own, not to create software products. That number is increasing. More and more professionals are going to need some aspect of programming as part of their work.

A Recipe is a Statement of Process A recipe defines how something is done In a programming language that defines how the recipe is written When you learn the recipe that implements a Photoshop filter, you learn how Photoshop does what it does. And that is powerful. Finally: Programming is about Communicating Process A program is the most

concise statement possible to communicate a process Thats why its important to scientists and others who want to specify how to do something understandably in as few words as possible Python The programming language we will be using is called Python http://www.python.org Its used by companies like Google, Industrial

Light & Magic, Pixar, Nextel, and others The kind of Python were using is called Jython Its Java-based Python http://www.jython.org

Recently Viewed Presentations

  • englishsnowyrange.weebly.com

    englishsnowyrange.weebly.com

    Concrete Detail. The concrete details is the textual evidence from your novel that supports the topic sentence of your body paragraph and helps prove your thesis statement. Always include a lead in. Make sure to mention the speaker (if applicable)...
  • Agenda 11-20  BW  Pick up Notes sheet, answer

    Agenda 11-20 BW Pick up Notes sheet, answer

    In 1854, Commodore Matthew Perry and four U.S. warships arrived in previously isolated Japan. Commodore Matthew Perry Perry forced open Japan, and started trade between Japan and the West, ending Japanese isolation. In response, the Japanese restored Emperor Meiji to...
  • The Rise of Absolute Monarchies (1400's-1700's)

    The Rise of Absolute Monarchies (1400's-1700's)

    The Rise of Absolute Monarchies (1400's-1700's) First things first… What is an Absolute Monarchy? Absolute = All Powerful Monarch = King or Queen Absolute Monarch= An all-powerful king or queen Also, kings and queens handed their power down to their...
  • Anesthesia Manager Training Basic Navigation Objectives By the

    Anesthesia Manager Training Basic Navigation Objectives By the

    Hit OK Main Toolbar-Demographics "ASA" Click on ASA Level Main Toolbar-Demographics "ASA" ASA will migrate across to OR Manager (nursing documentation) Nurses will inform you if you have forgotten to complete this task as they cannot close their chart if...
  • The Reading Tool Kit  Essential strategies for Years

    The Reading Tool Kit Essential strategies for Years

    Homophone Hunt '. Once they have finished reading the story, they scan back through the text writing down all the words that have a matching homophone e.g. ... Collate the questions and use them to conduct a trivia quiz. Email:...
  • Working together for Springer: The Orphan Orca Fund

    Working together for Springer: The Orphan Orca Fund

    Reduced contact with people No direct feeding High borders around pen Observed through camera NOAA Journey to Health How the team kept her wild -Feeding Salmon put in pen through tube Variable feeding schedule Number and size of fish Time...
  • ES BELIEVER HIGH ROAD BIBLE DOCTRINE LOW ROAD

    ES BELIEVER HIGH ROAD BIBLE DOCTRINE LOW ROAD

    By analogy, when someone says, "All hands on deck!" the speaker wants bodies attached to the hands. Save your souls stands for saving the lives of wandering believers. In this passage, the meaning is to save the person's life from...
  • Processes and Lawmaking - Stingray Civics

    Processes and Lawmaking - Stingray Civics

    Processes and Lawmaking. Students will learn about the specific processes for each branch of government and how laws are made at each level of government. It is important to know who represents you, what these representatives do, ...