Download presentation
Presentation is loading. Please wait.
Published byDylan Greene Modified over 8 years ago
1
Georgia Institute of Technology Workshop for Programming And Systems Management Teachers Chapter 3 Introduction to Media Computation, Java, and DrJava
2
Georgia Institute of Technology Learning Goals Understand at a conceptual level –What can computers do? –What is DrJava? –What are Java math and conditional operators? –What can computers do better than humans? –What can humans do better than computers? –What is media computation? –How do digital pictures work? –How do digital sounds work?
3
Georgia Institute of Technology What Can Computers Do? Basically they can –Add, subtract, multiply, divide –Compare values –Move data They are amazingly fast –Millions to billions of instructions per second They can store a huge amount of data –Entire movies, photo albums, dictionaries, encyclopedias, complex games They keep getting faster, cheaper, and smaller
4
Georgia Institute of Technology Math Operators in Java (+ * / - %) Addition 3 + 4 Multiplication 3 * 4 Division 3 / 4 Subtraction 3 – 4 Negation -4 Modulo (Remainder) 10 % 2 and 11 % 2
5
Georgia Institute of Technology Math Operators Exercise Open DrJava and do the following in the interactions pane –Subtract 7 from 9 –Add 7 to 3 –Divide 3 by 2 –Divide 4.6 by 2 –Multiply 5 by 10 –Find the remainder when you divide 10 by 3
6
Georgia Institute of Technology Why is the result of 3 / 4 zero? Java is a strongly typed language –Each value has a type associated with it –Tells the computer how to interpret the number It is an integer, floating point, letter, etc The compiler determines the type if it isn’t specified (literals) –3 is an integer –3.0 is a floating point number (has a fractional part) The result of an operation is in the same type as the operands –3 and 4 are integers so the answer is an integer 0
7
Georgia Institute of Technology Casting There are other ways to solve the problem of 3 / 4 has a result of 0 You can make one of the values floating point by adding.0 –3.0 / 4 –3 / 4.0 The result type will then be floating point Or you can cast one of the values to the primitive types: float or double –(double) 3 / 4 –3 / (float) 4
8
Georgia Institute of Technology Casting Exercise Use casting to get the values right for a temperature conversion from Fahrenheit to Celsius –Celsius is 5/9 * (Fahrenheit – 32) Try it first with a calculator Try it in DrJava without casting Try it in DrJava with casting
9
Georgia Institute of Technology Java Primitive Types –Integers (numbers without fractional parts) are represented by The types: int or short or long 235, -2, 33992093, etc –Floating point numbers (numbers with fractional parts) are represented by The types: double or float 3.233038983 -423.9, etc –A single character is represented by The type: char ‘a’ ‘b’ ‘A’ etc –True and false values are represented by The type: boolean true or false
10
Georgia Institute of Technology Why so Many Different Types? They take up different amounts of space They have different precisions Usually use int, double, and boolean –byte uses 8 bits (1 byte) 2’s compliment –short uses 16 bits (2 bytes) 2’s compliment –int uses 32 bits (4 bytes) 2’s compliment –long uses 64 bits (8 bytes) 2’s compliment –float uses 32 bits (4 bytes) IEEE 754 –double uses 64 bits (8 bytes) IEEE 754 –char uses 16 bits (2 bytes) Unicode format
11
Georgia Institute of Technology Sizes of Primitive Types byte 8 bits short int float long 8 bits double 8 bits char 8 bits
12
Georgia Institute of Technology Floating Point Numbers Numbers with a fractional part –6170.20389 Stored as binary numbers in scientific notation -52.202 is -.52202 x 10 2 –The sign (1 bit) –The digits in the number (mantissa) –The exponent (8 bits) Two types –float – 6-7 significant digits accuracy –double – 14-15 significant digits accuracy
13
Georgia Institute of Technology Operator Order The default evaluation order is –Negation - –Multiplication * –Division / –Modulo (remainder) % –Addition + –Subtraction - The default order can be changed –By using parenthesis –(3 + 4) * 2 versus 3 + 4 * 2
14
Georgia Institute of Technology Math Operator Order Exercise Try 2 + 3 * 4 + 5 Add parentheses to make it clear what is happening first How do you change it so that 2 + 3 happens first? How do you change it so that it multiplies the result of 2 + 3 and the result of 4 + 5?
15
Georgia Institute of Technology Printing Output to the Console One of the things you often want to do in a program is output the value of some something In Java the way to print to the console is to use –System.out.print(thing to be printed); –System.out.println(thing to be printed);
16
Georgia Institute of Technology Console Output Exercise Use System.out.println() to print the results of expression to the console –System.out.println(3 * 28) –System.out.println(14 – 7) –System.out.println(10 / 2) –System.out.println(128 + 234) –System.out.println(“Hi “ + “There”); Try using System.out.print() instead –What is the difference?
17
Georgia Institute of Technology Strings Java has a type called: String A string is an object that has a sequence of characters in Unicode –It can have no characters (the null string “”) –It can have many characters “This is one long string with spaces in it.” Java knows how to add strings –It returns a new string with the characters of the second string after the characters of the first
18
Georgia Institute of Technology Methods Classes in Java define methods –Recipes or functions f(x) = x 2 –May take input –May produce an output Two Types –Object method Sent as a message to an object Implicitly passed the current object –Class method Sent as a message to a class
19
Georgia Institute of Technology Method Exercise In DrJava’s interaction pane try these –Object methods "HI".toLowerCase() "This is a string".indexOf("is") " This is ".trim() –Class methods Math.abs(13) Math.abs(-13) Math.min(3,4) Character.getNumericValue('A')
20
Georgia Institute of Technology Common Errors Did you make any mistakes when you typed in the examples? –If you use the wrong case it won’t work > math.abs(-3) Error: Undefined class 'math‘ –If you misspell something it won’t work > Mat.abs(-3) Error: Undefined class 'Mat‘ > Math.ab(-3) Error: No 'ab' method in 'java.lang.Math'
21
Georgia Institute of Technology “Hi” is a String Object The compiler turns literal strings into string objects –Objects of the String class Object methods are invoked by sending a message –with the same name as the method –the same type, number, and order of input parameters –to the object
22
Georgia Institute of Technology API Exercise The Classes defined as part of the Java language are documented in the API –http://java.sun.com/j2se/1.4.2/docs/api/ Find the documentation for the following classes –String and Math –Find documentation for the methods used in the previous exercise –Try out some other methods for these classes
23
Georgia Institute of Technology Java Packages Java groups related classes into packages Common Packages –java.lang Contains basic classes for the language –System, Math, Object, … –java.io Contains classes for input and output –java.awt Contains basic user interface classes –javax.swing Contains more advanced user interface classes
24
Georgia Institute of Technology Class Methods versus Object Methods In the API documentation how can you tell which are class methods and which are object methods? –Look for the keyword static on the method –If it has the keyword static then it is a class method –If there is no keyword static then it is an object method
25
Georgia Institute of Technology What do Objects Look Like? Objects are created with space for their data Object have a reference to the object that represents the class –Object of the class “Class” Name = Food Fields = Name, Price Methods = getName, setName, getPrice, setPrice, getCalories Food : Class Name = “Fries” Price = 1.99 Fries: FoodWaffles: Food Name =“Waffles” Price = 2.99
26
Georgia Institute of Technology Java is Case Sensitive Some programming languages are case sensitive –Meaning that double isn’t the same as Double –Or string isn’t the same as String In Java primitive types are all lowercase –double, float, int, Class names start with an uppercase letter –So String and System are the names of classes
27
Georgia Institute of Technology Java Naming Conventions In Java only Class names start with an uppercase letter –System, BufferedImage, Picture All other names start with lowercase letters but uppercase the first letter of each additional word –picture, fileName, thisIsALongName
28
Georgia Institute of Technology A Semicolon (;) ends a Statement Java programs are made up of statements –Like sentences in English Java statements end in a semicolon not a period –The period is used to send a message to an object System.out.println() –Or access data in the object System.out.println() DrJava prints the result of statements without a semicolon –but not the result of statements with a semicolon Use System.out.println(); to force output
29
Georgia Institute of Technology Message Always Have Parenthesis You can tell that out.println() is sending a message –Because of the () Messages always have () –Even if there are no parameters (arguments) If you are sending data along with a message it goes inside the parentheses –Separated by commas –Math.min(3,4);
30
Georgia Institute of Technology Comparison (Relational) Operators Greater than > –4 > 3 is true –3 > 3 is false –3 > 4 is false Less than < –2 < 3 is true –3 < 2 is false Equal == –3 == 3 is true –3 == 4 is false Not equal != –3 != 4 is true –3 != 3 is false Greater than or equal >= –3 >= 4 is true –3 >= 3 is true –2 >= 4 is false Less than or equal <= –2 <= 3 is true –2 <= 2 is true –4 <= 2 is false
31
Georgia Institute of Technology Comparison Operators Exercise In DrJava –Try out the comparison operators in the interactions pane with numbers –3 < 4 –4 <= 4 –5 < 4 –6 == 6.0 with characters (single alphabet letter) –Put single quote around a character –‘a’ < ‘b’ –‘b’ < ‘a’ –‘a’ == ‘a’
32
Georgia Institute of Technology Why Do Computers Keep Getting Cheaper? The number of transistors (a major component of processors) at the same price doubles every 18 monthstransistors –making computers faster, smaller, and cheaper over time This notion is know as Moore’s LawMoore’s Law –For Gordon Moore, a founder of Intel This “Law” has held true for decades –And is predicted to hold true at least one more
33
Georgia Institute of Technology What are Computers Good At? Producing the same answer every time –Like calculating the sum of hundreds of numbers Computer don’t tire of tedious tasks Storing information –They don’t forget information Looking up information quickly –Search through a phone book to find the customer name for a phone number
34
Georgia Institute of Technology What are People Good At? Being Creative –Computers can only do what they are programmed to do Doing Visual Processing –Reading someone else’s handwriting –Recognizing a face very quickly Understanding Natural Language –Understanding a variety of speakers Even if I never heard them speak before
35
Georgia Institute of Technology What is Media Computation? Processing millions to billions of –picture elements –sound fragments –movie frames The speed and storage capacity of modern computers makes this possible –Even for beginning students just learning to program
36
Georgia Institute of Technology How Does Color Vision Work? Our eyes and brain work together to make sense of what we see The cones in our eyes are what allow us to see in color The rods allow us to see black, white, and shades of gray Our cones are sensitive to red, green, and blue light –All other colors are combinations of these
37
Georgia Institute of Technology Red, Green and Blue Light White light is a combination of red, green, and blue –Full intensity red, green, and blue combined Black is the absence of all light –No red, green or blue light All other colors are combinations –Of red, green, and blue –Of different intensities
38
Georgia Institute of Technology Color Exercise Start DrJava –In the interactions pane type –ColorChooser.pickACo lor(); –Click on the RGB tab and move the sliders to change the intensity of red, green, and blue –Make white, black, red, blue, green, yellow, violet, and orange
39
Georgia Institute of Technology How do Digital Cameras Work? There are red, green, and blue filters that capture the amount of each color at a position –A part of a grid There are many positions –picture element or pixel –640 x 480 is low resolution –1600 x 1200 is high resolution The more pixels the better the picture –Can enlarge it without it looking grainy
40
Georgia Institute of Technology How do Computer Displays Work? A display has pixels (picture elements) Each pixel has a red, green, and blue component Combinations of red, green, and blue give the resulting color –Black is 0 red, 0 green and 0 blue –White is 255 red, 255 green, 255 blue
41
Georgia Institute of Technology Pictures are made up of Pixels Digital cameras record light at pixels Monitors display pictures using pixels Our limited vision acuity helps us to see the discrete pixels as a smooth picture –If we blow up the picture we can see the pixels
42
Georgia Institute of Technology Digital Pictures Capture the intensity of the red, green, and blue colors at each pixel Stored as a bunch of numbers –8 bits for red, 8 bits for green, 8 bits for blue –Need nearly 1 million bytes to store a 640 x 480 picture –Need 3 million bytes to store an image from a 1 megapixel (million pixel) camera Displayed as red, green, and blue colors on the computer display –Lots of them close together –Our brain sees a smooth color image
43
Georgia Institute of Technology Picking a File Name Use the class method pickAFile() on our FileChooser class to pick a file > System.out.println(FileChooser.pickAFile()) –Look for a file that holds a digital picture.jpg or.gif –Look for a file that holds a digital sound.wav or.aif or.aiff or.au –The result might look like C:\intro-prog-java\mediasources\cat.jpg
44
Georgia Institute of Technology Parts of a File Name Path separators ‘\’ Path – where on the hard disk the file is –C:\intro-prog-java\mediasources\ Base file name –cat.jpg File extension –.jpg
45
Georgia Institute of Technology Creating Objects Remember that a class is a factory that creates objects of that class We ask a class to create an object by using the keyword: new ClassName We also ask the class to initialize the object –And pass data to help initialize it
46
Georgia Institute of Technology Creating a Picture Object A picture needs data to use to create the picture –One way to create it is to give it the full path name of the file to read the data from –We know how to get the full path name Using FileChooser.pickAFile() > System.out.println(new Picture(FileChooser.pickAFile())) Picture, filename C:\intro-prog- java\mediasources\partFlagSmall.jpg height 217 width 139
47
Georgia Institute of Technology Where is the Picture? When you printed the result of –new Picture(FileChooser.pickAFile()) You got the file name, width, and height –So it looks like a picture object was created But, where is the picture? –To get it to display send the picture object the message “show()” –new Picture(FileChooser.pickAFile()).show()
48
Georgia Institute of Technology How did that work? The expression inside the parentheses is evaluated first –FileChooser.pickAFile() –This returns the full path name of a file as a String object “C:\intro-prog-java\mediasources\cat.jpg” Next the Picture class was asked to create and initialize a new object –using the full path name of the file as the place to read the picture data from new Picture(“C:\intro-prog-java\mediasources\cat.jpg”) Then we asked the new picture object to show itself –pictureObject.show()
49
Georgia Institute of Technology Naming the Results Another way to do the same thing is to name each of the results –Gives us a way to refer to the result again –Makes it easier to understand In Java we must give a type when we create a new name –This is called declaring a variable –Type name; or –Type name = something;
50
Georgia Institute of Technology Assignment Exercise Try some integer calculations using the assignment operator (‘=‘) int x = 3; int y =4; int z; z = x + y; // assign z to be x + y System.out.println(z); System.out.println(x); System.out.println(y);
51
Georgia Institute of Technology Working with Variables You must declare a variable before you can use it Declare a variable once and only once –You will get an error if you declare it more than once You can reuse variables –That you have declared
52
Georgia Institute of Technology Variables are Temporary Hold values until –Reassigned int x = 2; x = 3; –DrJava is exited –The interactions pane is reset You can force this by clicking the “Reset” button Or by right click and choose “Reset Interactions” Happens automatically when you compile
53
Georgia Institute of Technology Allowed Types in Java The type for a variable declaration can be –A primitive type: int, double, char, or boolean –The name of a Class in the Java language –String, JFrame, BufferedImage, etc or the name of a class created by you or someone else –Picture, Sound, FileChooser
54
Georgia Institute of Technology Object and Primitive Variables Primitive variables cause space allocation for their size –The contents of the space is set to the variable’s value Object type variables cause space allocation for an address –The contents of the space is the address of the referred to object –Or null if it isn’t referring to an object yet. int a = 3 String str =“Hi”; 3 a str “Hi” reference
55
Georgia Institute of Technology Memory Exercise Draw the memory used for the following: int x = 2; int y = 7; int z = x + y; Draw the memory used for the following: String fullName; String firstName = “James”; String lastName = “Clark”; fullName = firstName + lastName;
56
Georgia Institute of Technology Naming each Piece First let’s pick the file name and save a reference to the resulting String object –String fileName = FileChooser.pickAFile(); Next, let’s create the Picture object and save a reference to it. –Picture picture = new Picture(fileName); Now send the show() message to the picture object –picture.show();
57
Georgia Institute of Technology
58
Show Picture Exercise Try both ways of creating a picture object and showing it. –new Picture(FileChooser.pickAFile()).show() –And do each piece one step at a time naming the result of each method String fileName = FileChooser.pickAFile(); System.out.println(fileName); Picture picture = new Picture(fileName); System.out.println(picture); picture.show();
59
Georgia Institute of Technology Substitution and Evaluation In programming you can –Use a literal –Use a variable –Use an expression –Use the result of a method invocation Values get substituted for variable names when expressions are evaluated
60
Georgia Institute of Technology What is a Sound? Any object that produces vibrations in matter will make a sound The vibrations produce a sound wave The pitch is based on the frequency of the cycles in the sound wave The loudness is based on the amplitude (height) of the sound wave
61
Georgia Institute of Technology How does Hearing Work? The outer ear “catches” sounds The eardrum vibrates The inner ear translates the vibrations to nerve impulses for the brain to interpret
62
Georgia Institute of Technology How does Recorded Sound Work? Phonograph recordings capture sound continuously, as an analog signalPhonograph recordings CDs and DVDs sample sounds and record numbers that represent the sound at the time of the sampleCD –44,100 samples per second
63
Georgia Institute of Technology Why Digitize Sound? High fidelity –Reproduced sound is very similar to the original Perfect reproduction –Sounds the same every time Easy to transmit –Download as data Easier to manipulate on a computer –Even though there are billions of bits
64
Georgia Institute of Technology Playing a Sound We can create a Sound object just as we created a Picture object –Get a file name String fileName = FileChooser.pickAFile(); –Create the sound object by asking the class to create a new Sound object and initialize it by reading data from the given file name Sound sound = new Sound(fileName); –Play the Sound sound.play();
65
Georgia Institute of Technology Play Sound Exercise Try creating a Sound object and playing it by –Specifying it all at once –Specifying it in steps How would you play the same sound twice?
66
Georgia Institute of Technology Summary Computers can do math and make logical comparisons Computers can execute billions of instructions per second Computers keep getting faster, smaller, and cheaper Pictures, sounds, text and movies can be digitized Media computation can mean processing millions to billions of bytes The speed of modern computers makes media computation possible even for beginners
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.