Title: Core Technologies of Computing
1Core Technologies of Computing
Algorithms Artificial Intelligence Compilers Compu
tational Science Computer Architecture Data
Mining Data Security Databases E-Commerce Graphics
Human-Computer Interaction Information Retrieval
Natural-Language Processing Networks Operating
Systems Parallel Computation Programming
Languages Real-Time Systems Robots Software
Engineering Virtual Reality Vision Visualization
2Algorithms
To get a computer to perform a complex task, a
programmer must plan a sequence of steps that the
computer must take to get the job done.
Example Looking Up A Word In An Alphabetized
Dictionary
- Define the unsearched part of the dictionary as
the whole dictionary.
- If the unsearched part is empty, terminate with
a NOT FOUND output.
- Split the unsearched part in half, opening to
its middle pair of pages.
- If the sought word is on the open pair of pages,
output the words definition and terminate.
- If the sought word alphabetically precedes the
words on the open pair of pages, restrict the
unsearched part to the unsearched pages
before that pair. Return to Step 2.
- If the sought word alphabetically follows the
words on the open pair of pages, restrict the
unsearched part to the unsearched pages after
that pair. Return to Step 2.
3Artificial Intelligence
Computations have been designed to make it
possible for a machine to perceive, reason, and
act is a manner consistent with human behavior.
Example Teaching a truck to back into a loading
dock
The trucks physical characteristics are
programmed, with the relationship between the
steering wheel, the tires, the cab, and the
trailer formally calculated.
Starting at some initial position, the truck is
backed up one meter at a time, with programmed
steering the error in the result is measured and
factored into the next attempt, until the error
is zero.
4Compilers
Special programs are designed to translate other
software into the hardware-based language
understood by the host computer.
Source Program (in High-Level Language)
Lexical Analysis The compiler takes the
high-level program (called the source program)
and determines which strings of characters form
separate items (e.g., if (count gt 100) is split
into if, (, count, gt, 100, and )),
deleting all comments and white space (blanks,
line feeds, etc.).
Parsing The compiler then analyzes the
grammatical syntax of the program (e.g., if,
(, count, gt, 100, ) is determined to
make sense, but a syntax error would be noticed
in if, count, gt, 100, ).)
Code Generation Once the program has been
satisfactorily parsed, the compiler generates an
equivalent program in the machines inherent
language (called the object program).
5Computational Science
Complex physical phenomena (e.g., chemical
reactions, gelogical disturbances, meteorological
occurrences) are mathematically modeled and
analyzed via elaborate numerical methods.
6Computer Architecture
To effectively implement algorithms on a
computer, the programmer must understand the
fundamental operation of the machines hardware.
Instruction Unit Prefetches decodes instructions
Code Cache Fast storage for instructions
Branch Predictor Guesses next instruction to be
executed
The Central Processing Unit
Integer ALU Handles integer arithmetic
Registers Stores data instructions
Execution Unit Manages instruction traffic
32-Bit Buses Simultaneously pipelines 2 data
streams
Floating-Point ALU Handles non-integer arithmetic
64-Bit Bus Conduit through which CPU/RAM traffic
travels
Data Cache Fast storage for data
Primary Cache Fast memory for data instructions
that are anticipated to be needed
Bus Interface Separates and forwards incoming
data instructions collates outgoing data
instructions
7Data Mining
Extracting hidden predictive information from
large sets of data is done to enable decisions to
be made concerning appropriate future actions.
Example Nearest-Neighbor Age-Based Medical
Dosages
By automating the examination of patient
reactions to various drug dosages, medical
personnel can estimate the likely effectiveness
of the drug on a new patient.
8Data Security
Due to the relatively open access of most data
communication environments (e.g., public
telephone systems, wireless relays), it is often
prudent to take measures to secure data
transmissions.
Example Public-Key Encryption
Special mathematical keys are devised for every
receiving station. A receivers public key is
freely available to anyone wishing to contact
that receiver, but messages encrypted with that
key can only be decrypted via the receivers
private key, which no one else possesses.
9Databases
Database management systems are used to
efficiently retrieve specific elements of large
data sets from one or more tables of related
information.
Example SQL (Structured Query Language)
SELECT customers.customerid, customers.firstname,
customers.lastname, items_ordered.order_date,
items_ordered.item, items_ordered.price FROM
customers, items_ordered WHERE
customers.customerid items_ordered.customerid
AND items_ordered.price gt 100.00
10E-Commerce
The ubiquity of the World Wide Web has
facilitated on-line business, but privacy and
security concerns persist.
11Graphics
Advances in display technology, as well as
processor and memory speeds, have enables
programmers to develop software that produces
realistic entertainment images and animations.
12Human-Computer Interaction
Designing computer interfaces that are customized
for particular sets of end users is a very
challenging task for software developers.
Example Which Design Is Better?
13Information Retrieval
A particular challenge when accessing massive
data sets is the automatic retrieval of specific
information requested by the user by means of
relatively imprecise instructions.
Example Web Browsing
17th Century Mayflower Passenger
U.S. President William McKinley
Cornell Professor William Strunk
U.S. President William Clinton
Theatrical Equipment Supply Company
Science Fiction Author William Gibson
14Natural-Language Processing
Speech recognition and text parsing software has
been developed to enable humans to communicate
with machines without resorting to specialized
computer languages.
Example Determining Possession
John saw the boy in the park with the telescope.
Question Whose telescope is it?
Answer Johns
John saw the boy in the park with the puppy.
Question Whose puppy is it?
Answer The boys
John saw the boy in the park with the statue.
Question Whose statue is it?
Answer The parks
15Networks
Advances in wired and wireless technologies, as
well as creative algorithms for coding and
protecting data, have made it possible for
elaborate communication networks to relay vast
amounts of data.
Example Cellular Hand-Off
The two base stations coordinate with each other
through a Mobile Telephone Switching Office, and
at some point, the users phone gets a signal on
a control channel telling it to change
frequencies.
As a user moves toward the edge of a cell, the
local base station notes that the users signal
strength is diminishing. Meanwhile, the base
station in the cell towards which the user is
moving (which is listening and measuring signal
strength on all frequencies, detects the users
signal strength increasing.
16Operating Systems
Serving as the interface between the computer
hardware and the application software, a
machines operating system converts electronic
signals into coded instructions and vice versa.
Application Software
I/O Management
Device Drivers
Memory Management
CPU Management
Hardware
17Parallel Computation
In order to improve the efficiency of massive
computing problems, computer architectures have
been developed that simultaneously process
separate portions of the problems on separate
CPUs.
Example Massively Parallel Querying
- A large retailer queries the system concerning
the number of camcorders sold last year. - A coordinating processor breaks the query down by
date and vendor and forwards it. - Each processor searches its portion of the
overall database for its specific sub-query. - The processors send their sub-query responses
back to the coordinating processor. - The coordinator collates the responses and sends
a final response to the retailer.
18Programming Languages
From COBOL and Fortran to Java and Python,
computer languages enable programmers to direct
processors to perform sophisticated tasks.
qsort( a, lo, hi ) int a, hi, lo int h, l,
p, t if (lo lt hi) l lo h hi p
ahi do while ((l lt h) (al
lt p)) l l1 while ((h gt
l) (ah gt p)) h h-1
if (l lt h) t al al ah
ah t while (l lt h) t
al al ahi ahi t qsort( a, lo,
l-1 ) qsort( a, l1, hi )
Example C vs. Haskell C is an imperative
language, using a sequence of commands to perform
a task. Haskell is a functional language, using a
single mathematical expression to represent the
task to be performed.
qsort qsort (xxs) qsort elts_lt_x
x qsort elts_greq_x where
elts_lt_x y y lt- xs, y lt x
elts_greq_x y y lt- xs, y gt
x
19Real-Time Systems
With tremendous increases in processor speed and
the development of extremely fast memory devices,
it has become feasible to produce computer
applications that respond to human interactions
in real time.
Example Handheld Games
- Sony PSP
- Fast processors/memory
- Wireless networking
- Nintendo DS
- Dual-screen
- Touch screen
20Robots
Used to perform tasks that humans are unable or
unwilling to perform, robots utilize specialized
mechanical devices and electronic sensors to
interact with their physical environment.
Example Mars Rover
21Software Engineering
The complexity of modern software has dictated
that systematic methodologies be established for
software development teams to design, prototype,
implement, test, and document their projects.
Example The Waterfall Model This classic
software life cycle model defines a sequence of
processes that are used to produce a succession
of products, resulting ultimately in a finished
software product. Verification that each product
works correctly and validation that each product
performs its proper task are part of the overall
process.
22Virtual Reality
By surrounding users in computer-generated
animations, with auditory, tactile, and olfactory
stimuli, realistic training simulations, in-depth
scientific visualizations, and immersive
entertainments are explored.
Example University of Iowas National Advanced
Driving Simulator
23Vision
Advances in image processing and digital camera
technology have enabled the development of
computer vision algorithms that facilitate
automated visual analysis and recognition
techniques.
Example Facial Recognition
24Visualization
By assigning various graphical characteristics
(e.g., color, transparency, reflectivity,
animation) to particular features of a large data
set, the data set may be visually analyzed for
outstanding features.
Example Crystal Lattice Analysis for Copper-Gold
Alloys