Computer Science:
A Whirlwind Tour
Goals of This Talk
1. Introduce you to the science of computers
& computation.
2. Give a super-fast tour of various sub-areas
of computer science.
3. Tell you a little about our lab’s research.
Finding the science in
Computer Science
My definition of Computer
Science
• My definition: the development of new techniques using
computers & computation to solve problems that were
fundamentally not solvable before.
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.
Sample of Various
Computer Science
Research Problems
Computer Vision
• Google Earth - How do you “stitch
together” satellite photographs
taken above the Earth into a
navigable 3-D “world” (Google
Earth)?
Graphics
• Pixar - How do you
animate a graphical
video character (e.g.,
Shrek) so that it looks
alive?
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?
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)
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?
Bioinformatics and
Computational Biology
• How can we analyze human DNA
sequences to determine the risk
factors of certain diseases?
Complexity Theory
• How can we use quantum
computers to solve
mathematical problems
more quickly than with
conventional machines?
Computer Science:
Sub-areas (many)
• These are all the ones I can think of off-hand:
• Graphics
Vision
Machine learning
Databases
Compilers
Networking
Operating systems Some of these are mostly
Distributed systems
Software engineering empirical, some are
Robotics
Numerical computing mostly theoretical, and
Human-computer interaction
Graphics some are both.
Computer architecture
Security
Cryptography
Algorithms
Image & video processing
Bioinformatics
Complexity theory
Computational geometry
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.
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.
Algorithms - the
foundation of computer
science
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.
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?
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).
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.
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.
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?
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.
Machine Learning
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.
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).
Machine Learning
• Example:
• Automatic facial expression recognition
(and other kinds of face processing).
• Automated teaching systems.
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)
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.
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
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).
Automatic Facial Expression
Recognition
• The basic flow of how things work:
1. Find all the faces in the image (face
detection).
2. For each face you find, determine its facial
expression (expression recognition).
Face Detection
• Contrast face detection and face recognition.
• Detection - where are the faces in the image?
• Recognition - whose face is that?
Face Detection
• In 2001, Paul Viola and Michael Jones (from
Mitsubishi Electric Research Labs) revolutionized the
field of face detection.
• Their design is now called the Viola-Jones Face
Detector.
• PROCEDURE:
1. Divide the image into thousands of different square
regions.
2. For each square region, check if it contains a face.
Does the region contain a
face?
• We must classify each square region as either a
face, or a non-face. This is performed by a
classifier.
• Classifiers: examines a square region of an
image, and outputs either 1 (“face”) or 0 (“non-
face”).
• Must operate extremely quickly!
Classifying a region as
face/non-face
• We must “train” a face classifier using many
“training examples”.
• ~10,000 examples of faces.
• ~1,000,000,000 examples of non-faces.
• The classifier training algorithm compares the
faces to the non-faces and finds the image
properties which distinguish these two kinds of
images.
Classifying a region as
face/non-face
•The classifier training algorithm
automatically finds “features” of
the image that distinguish faces
from non-faces.
•Once trained, the classifier can
decide (very quickly) whether
the square region contains a face.
Expression Recognition
• Now that we’ve found the faces, we must
determine their facial expressions.
• We examine each facial muscle movement
separately:
• Is the person wrinkling their nose? Yes/No.
• Is the person smiling? Yes/No.
• Is the person blinking? Yes/No.
• ...
Expression Recognition
• To detect expressions, we use a similar approach as for
face detection:
• Train a classifier to distinguish between smile/non-
smile, frown/non-frown, etc.
• For each classifier, we need many examples for both
the presence, and the absence, of the expression.
• The classifier examines the face and determines
whether a particular expression occurred or not.
Scientific Research: My
Personal Perspective
• In research, you will never stop learning, by
definition.
• Usually lots of freedom: the emphasis is on
getting results.
• You will expand the frontiers of human
knowledge (but usually only in small ways).
• You will become an “expert” in something.
Scientific Research: My
Personal Perspective
• Greed for money is replaced by greed for
prestige.
• Research can be lonely - you will (often) spend
lots of time in the lab.
• You won’t get rich (unless you start a company).
The End