Computer Science: A Whirlwind Tour - PowerPoint PPT Presentation

computer science a whirlwind tour n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Computer Science: A Whirlwind Tour PowerPoint Presentation
Download Presentation
Computer Science: A Whirlwind Tour

play fullscreen
1 / 81
Computer Science: A Whirlwind Tour
277 Views
Download Presentation
Philip
Download Presentation

Computer Science: A Whirlwind Tour

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Computer Science:A Whirlwind Tour • Jacob Whitehill (jake@mplab.ucsd.edu) • Machine Perception Laboratory,http://mplab.ucsd.edu • UCSD

  2. Goals of This Talk • Introduce you to the science of computers & computation. • Give a super-fast tour of various sub-areas of computer science. • Tell you a little about our lab’s research. • Show some demos.

  3. Finding the science in Computer Science

  4. Computer Science: Misconceptions • Computer science is related to, but distinct from, the following fields: • Information Technology (IT). • Computer & network management • Computer programming

  5. Computer Science: Misconceptions • Information Technology (IT): • The study, development, and management of information systems - computer & software systems that manage large amounts of information. • Example: design an efficient database for Verizon to handle billing information for 100 million customers.

  6. Computer Science: Misconceptions • Computer & network management - set up and maintain computers & computer networks • Example: figure out why the Internet is not accessible from a particular school classroom, and fix the problem.

  7. Computer Science: Misconceptions • Computer programming - create software for a computer to execute to perform a useful task. • Example: write software to automatically download music by your favorite artist on iTunes.

  8. My definition of Computer Science • My definition: the development of new techniques using computers & computation to solve problems that were fundamentally not solvable before. • Contrast with IT: there are no fundamental challenges in setting up a billing system for Verizon that have not yet been solved - it’s clear that it’s achievable. • Contrast with programming: though programming is by no means trivial, it is usually clear at the onset that the program can be written.

  9. My definition of Computer Science • Computer programming represents the means by which (empirical) computer science research is conducted. • Analogous to conducting an assay, using a microscope, staining DNA, etc.

  10. Computer Science • Computer science is (for the most part) an engineering science: • We have a task we’d like to accomplish. • We don’t know if it’s solvable, let alone how to solve it. • We (try to ) find computational methods to accomplish our task.

  11. Computer Science • Contrast with the natural sciences (e.g., biology, chemistry, physics, mathematics): • We are interested in discovering how the world works, without necessarily accomplishing a concrete task.

  12. Sample of Various Computer Science Research Problems

  13. Computer Vision • Google Earth - How do you “stitch together” satellite photographs taken above the Earth into a navigable 3-D “world” (Google Earth)?

  14. Graphics • Pixar - How do you animate a graphical video character (e.g., Shrek) so that it looks alive?

  15. Cryptography and Security • How do you encrypt a message so that only the “intended persons” can read it and eavesdroppers cannot? • How do you prevent people from copying movies & music illegally?

  16. Networking • How can you transmit data reliably and at high-speed using ordinary power-line cables?(this is important in developing countries without telephone infrastructure)

  17. Machine Learning • Can computers learn to recognize the same kinds of patterns in nature that humans can? • Example: where are the faces in the video?

  18. Bioinformatics and Computational Biology • How can we analyze human DNA sequences to determine the risk factors of certain diseases?

  19. Complexity Theory • How can we use quantum computers to solve mathematical problems more quickly than with conventional machines?

  20. Computer Science:Sub-areas (many) • These are all the ones I can think of off-hand: • GraphicsVisionMachine learningDatabasesCompilersNetworkingOperating systemsDistributed systemsSoftware engineeringRoboticsNumerical computingHuman-computer interactionGraphicsComputer architectureSecurityCryptographyAlgorithmsImage & video processingBioinformaticsComplexity theoryComputational geometry • By the way - some of these areas also fit into Electrical Engineering (EE). Some of these are mostly empirical, some are mostly theoretical, and some are both.

  21. Theoretical vs. Empirical Research • Theoretical research - use mathematics/logical reasoning to prove what you are saying is definitely true. • Empirical research - research through observation - run many experiments to show that what you are saying is probably true.

  22. Theoretical vs. Empirical Research • Example: • Theoretical proof that a particular casino gambling strategy will give you the highest possible winnings. • Demonstration over many experiments that a particular strategy works better than others. • Important: It’s not always easy/possible to prove something mathematically.

  23. Algorithms - the foundation of computer science

  24. Algorithms • The notion of algorithm is fundamental to all of computer science. • An algorithm is a step-by-step procedure (“recipe”) for how to complete a particular task. • Computers can perform tasks very quickly, but they require a very precise description of what to do.

  25. Algorithms • Example: • INPUT: flour, eggs, milk, butter, baking powder, salt, chocolate chips • PROCEDURE: • Beat eggs. • Add all other ingredients. • Stir everything until smooth. • Drop in 5” circles on hot frying pan. • Fry on both sides until brown.

  26. Algorithms • Example (continued): • OUTPUT: chocolate chip pancakes

  27. Algorithms • More interesting algorithms: • If you type a phrase into Google, what is the fastest way of finding all of the webpages (on the whole Internet!) that contain that phrase? • How do you automatically find the faces in a digital video? • How do you animate Shrek’s mouth to match his speech?

  28. Algorithms • Algorithm descriptions are typically written in a computer programming language (e.g., C, Java, Python). (This is where programming comes in.) • Algorithm descriptions are called code. • They are then converted (by a compiler or interpreter) into machine language (the computer’s native language, written in 0’s and 1’s).

  29. Algorithms • Example: counting from 1 to 100. • PROCEDURE (in English): • Start with the number 1. • Print the number. • Add 1 to the number. • Go back to Step (2) until we’ve reached 100.

  30. Algorithms • Example: counting from 1 to 100. • PROCEDURE (in C, a programming language): • int number = 1;while (number <= 100) {printf(“%d\n”, number);number += 1;}

  31. Algorithms • Example: counting from 1 to 100. • PROCEDURE (in PowerPC G5 machine language, binary): • 111111101110110111111010110011100000000000000000000000000001001000000000000000000000000000001010000000000000000000000000000000100000000000000000000000000000101000000000000000000000010000010100000000000000000000000000100001010000000000000000000000000000000100000000000000000000000000111000010111110101111101010000010000010100011101000101010110100100010101010010010011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000...

  32. Algorithms • Several sub-areas of computer science study the science of algorithms: • Algorithm design • Come up with new fundamental algorithms. • Complexity & computability theory • Study the kinds of algorithms that can be written, and how fast they are.

  33. Computability Theory • There are some tasks which are fundamentally impossible to solve. • One of the most famous is the “halting problem”. • It is possible to write a program that never ends. Consider: • Print out “hello”. • Go back to step 1.

  34. The “Halting Problem” • It would be useful to know whether a particular computer program will ever finish. • What we would like is the following: • INPUT: any computer program. • OUTPUT: either Yes or No according to whether the specified computer program will (eventually) come to an end.

  35. The “Halting Problem” • It is provably impossible to create such an algorithm. • Hence, no such algorithm can ever be created, no matter how sophisticated computers ever become. • This research result comes from the field of computability theory. • Determining whether any computer program will terminate is incomputable.

  36. Complexity Theory • Some computer science tasks, even if there exists algorithms to solve them, may take prohibitively long to finish - for instance, a google-google-google years (this is a long time). • Other algorithms may finish their work in less than a second. • Which tasks can be solved quickly, and which take more time? • The amount of time that an algorithm takes to finish is called the complexity of that algorithm.

  37. Two Algorithms -Which takes longer to finish? • “Stable Marriage”: How can we pair n men with n women so that divorces their spouse for someone else? • “Graph 3-Coloring”: How can we color the circles in a graph so that connected circles have different colors?

  38. Stable Marriage Algorithm • Suppose we have 10 men and 10 women who wish to marry each other (heterosexual). • Each person ranks all 10 persons of the opposite gender in order of preference. • We want to pair people so that no one will divorce their current spouse to marry someone else. Show on board.

  39. Graph 3-Coloring • A “graph” has circles and lines. • Some circles are connected to others by lines. • If two circles are connected by a line, then the circles cannot have the same color. • Can we color all the circles in the graph using just 3 different colors?

  40. Algorithmic Complexity • Which problem is harder? “Stable Marriage”, or “Graph 3-Coloring”? • These algorithms may seem contrived, but they actually find many uses in computer science.

  41. Algorithmic Complexity • It turns out that the problem of “Stable Marriage” has a very efficient algorithm. • Finding marriages for, say, 1000 people will take a fraction of a second. • Graph 3-Coloring is a hard problem - no known efficient algorithm exists (although slow ones do exist). • For a graph with 1000 circles, finding a 3-coloring will take longer than the universe will continue to exist!

  42. Algorithmic Complexity • Let n describe the “size” of the problem. • n men/women who wish to marry. • n circles in the graph we wish to color. • The Stable Marriage algorithm is quadratic in n. • The best known Graph 3-coloring algorithm is exponential in n.

  43. Machine Learning

  44. My Research:Machine Learning • “Machine learning” - the study of algorithms that enable computers to “learn” the same things that humans can do easily (and not so easily). • Machine learning is similar to pattern recognition.

  45. My Research:Machine Learning • Examples: • How to hear & understand speech. • How to see & recognize people. • How to determine whether an email contains a virus. • The science involved in machine learning is coming up with ways to perform such tasks (or to improve their performance).

  46. My Research:Machine Learning • My work: • Automatic facial expression recognition (and other kinds of face processing). • Automated teaching systems.

  47. Automatic Facial Expression Recognition • INPUT: an image/video containing faces. • OUTPUT: the locations of all faces in the image, along with their facial expressions. • PROCEDURE: unknown (but we’re working on it)

  48. Automatic Facial Expression Recognition • Let’s define “facial expression” more clearly: • One definition is the emotion - happy, sad, angry, etc. • Another definition (ours) is the kinds of facial muscle movements that occur in the face.

  49. Facial Muscle Movements • There are 46 independent muscle groups in the face. Here are a few examples: Source: http://www.cs.cmu.edu/afs/cs/project/face/www/facs.htm

  50. Automatic Facial Expression Recognition • Why would we want to recognize facial muscle movements? • Psychological research - how do people respond to certain stimuli? • Computer games - make the game responsive to how the user is feeling. • Lie detection. • Perceptual computer interfaces (more later). • Remote control using the face (more later).