The following people wish to thank you for attending the AT
fair on Wednesday evening: DO-IT: Disability, Opportunities,
Internetworking, and Technology AccessSTEM Hagget People's Council
2012-02-15Katherine Deibel, Fluency in Information Technology1
Slide 2
In the US (according to one study): 16% of ages 15 to 64 is
disabled 10% of the workforce is disabled 5% of the STEM workforce
is disabled 1% of PhDs in STEM are disabled Disability digital
divide (another study): 20% report having a disability or chronic
condition 51% of disabled go online 74% of not disabled go online
Cause: Barriers to access and use of technology 2012-02-15Katherine
Deibel, Fluency in Information Technology2 Sources: Ladner CSEP590A
Talk (2008), Pew Internet Study E-patients With a Disability or
Chronic Disease
Slide 3
Using technology to augment one's abilities Utilize personal
strengths to compensate for personal weaknesses Wide range of
technologies Simple technology: canes, wheelchairs Complex
technology: computer tools 2012-02-15Katherine Deibel, Fluency in
Information Technology3
Slide 4
Susumu Harada Using ones voice to control a mouse
2012-02-15Katherine Deibel, Fluency in Information Technology4
Slide 5
Jacob Wobbrock Text entry for people with motor difficulties
PDAs Trackballs Etc. Simple solution: Edges limit stylus / cursor
movement 2012-02-15Katherine Deibel, Fluency in Information
Technology5
Slide 6
Jeff Bigham Web-based screen reader Free to use Runs on any
machine Works in the browser
http://webanywhere.cs.washington.edu/wa.php 2012-02-15Katherine
Deibel, Fluency in Information Technology6
Slide 7
Creative thinking +Flexibility of technology +Awareness of
issues No problem is beyond solution 2012-02-15Katherine Deibel,
Fluency in Information Technology7 COMPUTERS HAVE NO LIMITS!
Slide 8
Apollo Guidance Computer: 2.048 MHz processor 32KB of RAM 4KB
of ROM 4 16-bit registers for computation 4 16-bit memory registers
in CPU 2012-02-15Katherine Deibel, Fluency in Information
Technology8 THIS GOT US TO THE MOON!?! COMPUTERS MUST HAVE NO
LIMITS!
Slide 9
Fluency with Information Technology INFO100 and CSE100
Katherine Deibel 2012-02-15Katherine Deibel, Fluency in Information
Technology9
Slide 10
Physical Limits Number of transistors we can fit on a chip
Speed of light limits transmission Philosophical Limits Can a
computer reason like a human? Can a computer be conscious/sentient?
Mathematical Limits Some problems are intractable Some problems are
just really hard Exactness is a problem 2012-02-15Katherine Deibel,
Fluency in Information Technology10
Slide 11
Understanding the limits of computers is a tale of three
brilliant minds 2012-02-15Katherine Deibel, Fluency in Information
Technology11 David Hilbert Kurt Gdel Alan Turing
Slide 12
The end of the nineteenth century was a celebration of new
science and the belief that everything would be solved.
2012-02-15Katherine Deibel, Fluency in Information Technology12
Charles Duell, U.S. Patent Commissioner "Everything that can be
invented has been invented." Apocryphal quote misattributed to him
but indicative of mindset of that era.
Slide 13
In 1900, Hilbert proposed a list of 23 key unsolved problems in
mathematics and logic 2. Prove that the axioms of arithmetic are
logically consistent. 10. Design an algorithm to solve any
Diophantine equation with rational coefficients. Everyone was
certain that both questions had positive answers to be discovered.
2012-02-15Katherine Deibel, Fluency in Information Technology13
David Hilbert
Slide 14
In 1931, Gdel answered if it was possible to prove arithmetic
to be logical consistent The answer was NO. Two Incompleteness
Theorems: Any sufficiently complex axiomatic system cannot be used
to prove that itself is: Complete Consistent 2012-02-15Katherine
Deibel, Fluency in Information Technology14 Kurt Gdel
Slide 15
Gdel's theorems awoke the idea that systems of mathematics and
logic are inherently limited Maybe some problems (like problem 10)
have no algorithmic solutions Problem 10 proven in 1910 to
2012-02-15Katherine Deibel, Fluency in Information Technology15
Gdel, Escher, Bach by Douglas Hofstadter
Slide 16
Turing worked for the British in WWII to break Nazi Germany's
Enigma encryption scheme Earlier graduate work extended Gdel's
theorems to computers Developed a mathematical model of a
computerthe Turing Machine His Turing Machine Could simulate any
computer system Demonstrated that some problems are intractable
(unsolvable) 2012-02-15Katherine Deibel, Fluency in Information
Technology16 Alan Turing
Slide 17
Mathematical model of a computer consisting of An infinite tape
A read-write head that handles one cell at a time A fixed alphabet
of symbols A fixed set of possible states A set of rules governing
writing, reading, head movement, state changes, etc.
2012-02-15Katherine Deibel, Fluency in Information Technology17
UW's CSE's Steam-Powered Turing Machine
Slide 18
Everything but the infinite tape:
http://www.youtube.com/watch?v=E3keLeMwfHY 2012-02-15Katherine
Deibel, Fluency in Information Technology18
Slide 19
The Turing Machine is the basis for all theoretical computer
science Church-Turing Thesis: All functions that can be computed
can be done so on a Turing Machine. This allows for us to theorize
about computation without programming! 2012-02-15Katherine Deibel,
Fluency in Information Technology19
Slide 20
Can we write a program to determine if another program will
ever finish? function willItHalt(program) { } 2012-02-15Katherine
Deibel, Fluency in Information Technology20
Slide 21
If we could write willItHalt() Easy to determine if complex
problems have a solution Prevent infinite loops Would actually
allow us to detect any virus or malware It is too bad that we can
never write such a program 2012-02-15Katherine Deibel, Fluency in
Information Technology21
Slide 22
HALT(p, i) returns true if program p halts on input i, false
otherwise function TRICK(p, i) { if(HALT(p,i) == true) loop
forever; else return true; } What happens with TRICK(TRICK,TRICK)?
2012-02-15Katherine Deibel, Fluency in Information
Technology22
Slide 23
Assume HALT(TRICK, TRICK) returns true TRICK does not loop
forever But look at the code: if(HALT(TRICK,TRICK) == true) loop
forever; Therefore, TRICK loops forever CONTRADICTION!
2012-02-15Katherine Deibel, Fluency in Information
Technology23
Slide 24
Assume HALT(TRICK, TRICK) returns false TRICK does loop forever
But look at the code: if(HALT(TRICK,TRICK) == true) loop forever;
else return true; Therefore, TRICK halts CONTRADICTION!
2012-02-15Katherine Deibel, Fluency in Information
Technology24
Slide 25
TRICK cannot halt because of the contradiction it creates TRICK
cannot loop forever because of the contradiction it creates
Therefore, TRICK is impossible Therefore, HALT is impossible
2012-02-15Katherine Deibel, Fluency in Information
Technology25
Slide 26
A Turing Machine is so powerful that it cannot be applied to
itself The self-reference problem The Barber Paradox: The town
barber shaves only those men in town who do not shave themselves.
Who shaves the barber? 2012-02-15Katherine Deibel, Fluency in
Information Technology26
Slide 27
The intractability of the Halting Problem leads to Many
problems that cannot be solved Imperfect protection against "bad"
programs 2012-02-15Katherine Deibel, Fluency in Information
Technology27
Slide 28
Interesting Problems Can Be Hard 2012-02-15Katherine Deibel,
Fluency in Information Technology28
Slide 29
Fortunately, there are plenty of problems that Turing Machines
(and computers) can solve The question is: How efficiently can we
solve them? 2012-02-15Katherine Deibel, Fluency in Information
Technology29
Slide 30
We have mathematical models of the complexity of problems to
solve Big O notation: O( f(n) ) means a program will take f(n)
steps Basic idea for this class: Fast, easy problems take
polynomial time: O(n), O(n 2 ), O(n 3 ), O(n log n) Harder problems
are exponential: O(2 n ) 2012-02-15Katherine Deibel, Fluency in
Information Technology30
Slide 31
Sorting a list Finding the max, min, median, etc. Determining
if a number is prime Finding the shortest road distance between two
cities 2012-02-15Katherine Deibel, Fluency in Information
Technology31
Slide 32
There is a difference between solving a problem and checking a
solution Checking a solution may take only polynomial time Finding
the solution is the problem, especially if you have to try all the
possibilities 2012-02-15Katherine Deibel, Fluency in Information
Technology32
Slide 33
A salesman has to visit n cities Some cities are connected by
airplane trips Each trip has a cost associated with it The salesman
wants to visit each city exactly ONE time Can he do this? What is
the minimum cost if he can? 2012-02-15Katherine Deibel, Fluency in
Information Technology33 We have no efficient algorithm for
this!
Slide 34
NP-Complete problems Can be checked in polynomial time Have no
known efficient algorithm All NP-Complete problems are related If
we figure out how to solve one in polynomial time, we can solve ALL
of them in polynomial time Known as the "Does NP = P" problem
2012-02-15Katherine Deibel, Fluency in Information
Technology34
Slide 35
Traveling Salesman Graph Coloring Subset Sum Boolean
Satisfiability Clique finding Knapsack problems 2012-02-15Katherine
Deibel, Fluency in Information Technology35 All have useful
applications in the real world
Slide 36
Approximation algorithms Give us near-optimal solutions
Probabilistic algorithms Use random numbers to get us a chance at
having the best answer 2012-02-15Katherine Deibel, Fluency in
Information Technology36
Slide 37
The Limits are Closer than You Think 2012-02-15Katherine
Deibel, Fluency in Information Technology37
Slide 38
Remember, every number in a computer is represented in binary
We have discussed how to represent nonnegative integers But what
about negative integers? What about real numbers?
2012-02-15Katherine Deibel, Fluency in Information
Technology38
Slide 39
Computers have to play tricks with binary to represent numbers
Negative numbers are done through having a bit for indicating sign
plus some other tricks Floating point numbers (decimals) are only
approximations based on binary fractions and rounding rules
2012-02-15Katherine Deibel, Fluency in Information
Technology39
Slide 40
If you have to compare decimal numbers, do the following:
function fuzzyEqual(x, y, err) { if ( Math.abs(x-y)