This document provides an overview of computer science by Michael Soltys. It discusses the history of computer science from the 1930s to present day. It outlines Soltys' research interests, which include linear algebra, 0-1 matrices, strings, and the fundamental P vs NP problem in computer science. The document also discusses why computer science is an exciting field to study due to open problems still remaining, its multidisciplinary nature, and the excellent job outlook for computer science careers.
Oppenheimer Film Discussion for Philosophy and Film
An algorithmic view of Computer Science
1. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
An Algorithmic View of Computer Science
Michael Soltys
My Research
Linear Algebra
0-1 Matrices
Strings
msoltys@gmail.com
@MichaelMSoltys
Security
Cryptography
Applications
McMaster University, Canada
November 1, 2013
1/42
2. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
2/42
3. An Algorithmic
View of
Computer
Science
Outline
Michael Soltys
1 Why Study Computer Science?
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
2 My Research
Linear Algebra
0-1 Matrices
Strings
3 Security
Cryptography
Applications
3/42
4. An Algorithmic
View of
Computer
Science
Prehistory
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Engraved ocher plaque
Blombos Cave, South Africa
77,000–75,000 years old
Ishango bone
Congo, 25,000–20,000 years old leg
bone from a baboon; 3 rows of tally
marks, to add or multiply (?)
Reindeer antler with tally marks
La Madeleine, France
17,000–11,500 years old
4/42
5. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
5/42
1930s: Math models of computation (Turing machine)
6. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
5/42
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
7. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
5/42
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
8. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
5/42
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
4
1960s: Integrated circuits and Unix operating system
9. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
5/42
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
4
1960s: Integrated circuits and Unix operating system
5
1970s: Internet and personal computers (ARPANET and
Commodore PET)
10. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
4
1960s: Integrated circuits and Unix operating system
5
1970s: Internet and personal computers (ARPANET and
Commodore PET)
6
1980s: Computers with a mouse and a graphical user
interface (Apple Macintosh, Microsoft Windows)
Security
Cryptography
Applications
5/42
11. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
1930s: Math models of computation (Turing machine)
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
4
1960s: Integrated circuits and Unix operating system
5
1970s: Internet and personal computers (ARPANET and
Commodore PET)
6
1980s: Computers with a mouse and a graphical user
interface (Apple Macintosh, Microsoft Windows)
7
Why Study
Computer
Science?
1990s: World Wide Web (web browsers and search
engines)
Security
Cryptography
Applications
5/42
12. An Algorithmic
View of
Computer
Science
History
Michael Soltys
1
My Research
Linear Algebra
0-1 Matrices
Strings
2
1940s: First electronic computers (ENIAC)
3
1950s: First programming languages (Fortran and Lisp)
4
1960s: Integrated circuits and Unix operating system
5
1970s: Internet and personal computers (ARPANET and
Commodore PET)
6
1980s: Computers with a mouse and a graphical user
interface (Apple Macintosh, Microsoft Windows)
1990s: World Wide Web (web browsers and search
engines)
8
History
Exciting field
Lots of Jobs
1930s: Math models of computation (Turing machine)
7
Why Study
Computer
Science?
2000s: Social media and smart phones (Facebook and
Apple iPhone)
Security
Cryptography
Applications
5/42
13. An Algorithmic
View of
Computer
Science
Today
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6/42
We use computers to:
1
Solve problems (computer shortest path from A to B)
14. An Algorithmic
View of
Computer
Science
Today
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
We use computers to:
1
Solve problems (computer shortest path from A to B)
2
Managing information (Cloud, Search Engine, eHealth)
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6/42
15. An Algorithmic
View of
Computer
Science
Today
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
We use computers to:
1
Solve problems (computer shortest path from A to B)
2
Managing information (Cloud, Search Engine, eHealth)
3
Create smart products (iPhone, iPad, embedded systems)
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6/42
16. An Algorithmic
View of
Computer
Science
Today
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
We use computers to:
1
Solve problems (computer shortest path from A to B)
2
Managing information (Cloud, Search Engine, eHealth)
3
Create smart products (iPhone, iPad, embedded systems)
4
Explore our world (Google maps, Yelp)
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6/42
17. An Algorithmic
View of
Computer
Science
Today
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
We use computers to:
1
Solve problems (computer shortest path from A to B)
2
Managing information (Cloud, Search Engine, eHealth)
3
Create smart products (iPhone, iPad, embedded systems)
4
Explore our world (Google maps, Yelp)
5
Connect (Date, Facebook, Twitter, Wordpress)
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6/42
18. An Algorithmic
View of
Computer
Science
Young Field
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
Fundamental problems still unsolved
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
7/42
1
Engineering: How to write correct programs?
19. An Algorithmic
View of
Computer
Science
Young Field
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
Fundamental problems still unsolved
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
7/42
1
Engineering: How to write correct programs?
2
Science: Why are some problems computationally
difficult?
20. An Algorithmic
View of
Computer
Science
A vast multi-disciplinary field
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
8/42
1
Mathematics, Engineering, and Science
21. An Algorithmic
View of
Computer
Science
A vast multi-disciplinary field
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
8/42
1
Mathematics, Engineering, and Science
2
Linguistics: Context-Free Grammars, Wordnet
22. An Algorithmic
View of
Computer
Science
A vast multi-disciplinary field
Michael Soltys
Why Study
Computer
Science?
1
Mathematics, Engineering, and Science
History
Exciting field
Lots of Jobs
2
Linguistics: Context-Free Grammars, Wordnet
My Research
3
Psychology: Human-Computer Interaction, Web Design
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
8/42
23. An Algorithmic
View of
Computer
Science
A vast multi-disciplinary field
Michael Soltys
Why Study
Computer
Science?
1
Mathematics, Engineering, and Science
History
Exciting field
Lots of Jobs
2
Linguistics: Context-Free Grammars, Wordnet
My Research
3
Psychology: Human-Computer Interaction, Web Design
Linear Algebra
0-1 Matrices
Strings
4
Sociology: Crowd mining
Security
Cryptography
Applications
8/42
24. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
9/42
Sociology of CS
25. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
10/42
Excellent Job Outlook
26. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
11/42
27. An Algorithmic
View of
Computer
Science
Job Outlook Numbers1
Michael Soltys
Area
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Employment
2010
2020
Change
2010–20 %
Median
Salary
11
22
$83,340
$73,710
30
12
22
22
28
31
$90,530
$71,380
$75,660
$75,660
$69,160
$73,490
Engineering jobs
Computing jobs
Software Developers
Comp. Programmers
Security & Networks
Comp. Syst. Analyst
Syst. Admin.
Database Admin.
913,100
363,100
302,300
544,400
347,200
110,800
1,184,000
406,800
368,000
664,800
443,800
144,700
270,900
43,700
65,700
120,400
96,600
33,900
Employers favor graduates who can communicate!
[Barrett 2013]
1
12/42
United States Department of Labor Occupational Outlook Handbook,
2012-13 Edition, http://www.bls.gov/oco/
28. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
13/42
My Research
29. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
14/42
P vs NP
30. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
14/42
P vs NP
31. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
14/42
P vs NP
32. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
15/42
• Perhaps there is a better way of doing this than “Brute
Force”?
This is the P vs NP problem
[Cook]
33. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
15/42
• Perhaps there is a better way of doing this than “Brute
Force”?
This is the P vs NP problem
[Cook]
• This problem is very difficult.
34. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
• Perhaps there is a better way of doing this than “Brute
Force”?
This is the P vs NP problem
[Cook]
• This problem is very difficult.
• A related problem is
the NP vs co-NP question, which can be restated as follows:
Is there a formal proof system where every true
statement has a short proof?
Security
Cryptography
Applications
15/42
An answer to this questions would have very interesting
implications for Logic & Epistemology
35. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
• Perhaps there is a better way of doing this than “Brute
Force”?
This is the P vs NP problem
[Cook]
• This problem is very difficult.
• A related problem is
the NP vs co-NP question, which can be restated as follows:
Is there a formal proof system where every true
statement has a short proof?
Security
Cryptography
Applications
An answer to this questions would have very interesting
implications for Logic & Epistemology
• Cook’s program for the NP vs co-NP is a systematic study
of “reverse mathematics”
15/42
36. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
• Perhaps there is a better way of doing this than “Brute
Force”?
This is the P vs NP problem
[Cook]
• This problem is very difficult.
• A related problem is
the NP vs co-NP question, which can be restated as follows:
Is there a formal proof system where every true
statement has a short proof?
Security
Cryptography
Applications
An answer to this questions would have very interesting
implications for Logic & Epistemology
• Cook’s program for the NP vs co-NP is a systematic study
of “reverse mathematics”
• My contribution is the “mapping out” of Linear Algebra
[Cook Soltys 2004]
15/42
37. An Algorithmic
View of
Computer
Science
Statistical Archeology
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
16/42
• Sequence dating: Flinders Petrie, 1899
38. An Algorithmic
View of
Computer
Science
Statistical Archeology
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
• Sequence dating: Flinders Petrie, 1899
• 900 pre-dynastic Egyptian graves containing 800
representatives of pottery
16/42
39. An Algorithmic
View of
Computer
Science
Statistical Archeology
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
• Sequence dating: Flinders Petrie, 1899
• 900 pre-dynastic Egyptian graves containing 800
representatives of pottery
• The “graves-versus-varieties” matrix contains vast amount
of information, such as sequential ordering [Kendall 1969]
16/42
40. An Algorithmic
View of
Computer
Science
Paleogenomics
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
DNA sequence organization of ancient living organisms using
similarities and differences between chromosomes of extant
organisms [Chauve et al 2008]
17/42
41. An Algorithmic
View of
Computer
Science
Consecutive-1 Property: C1P
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Consider a slight relaxation, (k, δ)-C1P: each row has at most k
blocks of 1s and the gap between any two blocks is at most δ.
So (1, 0)-C1P is C1P, and deciding if an A has (k, δ)-C1P is:
• polytime for (1, 0)
• NP-hard for every k ≥ 2, δ ≥ 1 except (2, 1)
What about (2, 1)? [Patterson 2012]
18/42
42. An Algorithmic
View of
Computer
Science
K¨nig’s Min-Max
o
Michael Soltys
Why Study
Computer
Science?
1
0
1
1
History
Exciting field
Lots of Jobs
0
0
1
0
0
1
1
0
0
1
0
0
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
[Fernandez Soltys 2013]
19/42
43. An Algorithmic
View of
Computer
Science
Smart bacteria
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Ehrenfeucht-Mycielski Sequence
• 011010101010111010011111001100011010101010
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
[Herman Soltys 2009]
20/42
44. An Algorithmic
View of
Computer
Science
Smart bacteria
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Ehrenfeucht-Mycielski Sequence
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010
Security
Cryptography
Applications
[Herman Soltys 2009]
20/42
45. An Algorithmic
View of
Computer
Science
Smart bacteria
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Ehrenfeucht-Mycielski Sequence
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010
Cryptography
Applications
[Herman Soltys 2009]
20/42
46. An Algorithmic
View of
Computer
Science
Smart bacteria
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Ehrenfeucht-Mycielski Sequence
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010
• 011010101010111010011111001100011010101010 1
[Herman Soltys 2009]
20/42
47. An Algorithmic
View of
Computer
Science
Do the shuffle
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
21/42
• w is the shuffle of u, v : w = u
v
48. An Algorithmic
View of
Computer
Science
Do the shuffle
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
21/42
• w is the shuffle of u, v : w = u
• w = 0110110011101000
u = 01101110
v = 10101000
w = 0110110011101000
v
49. An Algorithmic
View of
Computer
Science
Do the shuffle
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
21/42
• w is the shuffle of u, v : w = u
v
• w = 0110110011101000
u = 01101110
v = 10101000
w = 0110110011101000
• w is a shuffle of u and v provided:
u = x1 x2 · · · xk
v = y1 y2 · · · yk
and w obtained by “interleaving” w = x1 y1 x2 y2 · · · xk yk .
50. An Algorithmic
View of
Computer
Science
Square Shuffle
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
w is a square provided it is equal to a shuffle of a u with itself,
i.e., ∃u s.t. w = u u
The string w = 0110110011101000 is a square:
Linear Algebra
0-1 Matrices
Strings
w = 0110110011101000
Security
Cryptography
Applications
and
u = 01101100 = 01101100
22/42
51. An Algorithmic
View of
Computer
Science
Result
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
given an alphabet Σ, |Σ| ≥ 7,
Square = {w : ∃u(w = u u)}
is NP-complete.
What we leave open:
• What about |Σ| = 2 (for |Σ| = 1, Square is just the set
of even length strings)
• What about if |Σ| = ∞ but each symbol cannot occur
more often than, say, 6 times (if each symbol occurs at
most 4 times, Square can be reduced to 2-Sat – see
P. Austrin Stack Exchange post)
23/42
52. An Algorithmic
View of
Computer
Science
Bipartite graph
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
w = (c1 x 3 c2 )2 (c1 x 2 c2 )2 (c1 xc2 )2 is a square:
w = u u where u = c1 xxxc2 xc2 c1 xc1 xc2 .
Bipartite graph G associated with particular solution
w = u u:
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
We also have w = v v with v = c1 x 3 c2 c1 x 2 c2 c1 xc2
which would have its associated bipartite graph
24/42
53. An Algorithmic
View of
Computer
Science
Nesting
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
25/42
G has the “non-nesting” property: if G contains an edge from
wk to w and an edge from wp to wq , then it is not the case
that k < p < q <
Claim: There is a complete bipartite graph G of degree one
(i.e., a perfect matching) on the symbols of w which is
non-nesting, iff w can be expressed as a square shuffle.
54. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
26/42
• Formal languages
• Ginsburg & Spanier in ’65
• Modelling sequential execution of concurrent processes
• Riddle (’73 & ’79), Shaw (’78), Hoare
• Shuffle on its own
• Mansfield (’82 & ’83; polytime dynamic prog. alg. for
w = u1 u2 · · · uk for constant k; when k varies,
NP-complete)
• Warmuth & Haussler (’84; show w = u u · · · u
NP-complete by reduction from 3-Partition)
• More complexity
• Buss & Yianilos (’98; “Monge condition”)
• Erickson (2010; how hard is ∃u, w = u u?); as
mentioned, Austrin gives polytime algorithm when each
symbol occurs at most 4 times. Problem of the year on
Stack Exchange.
• Soltys (2012; shuffle in AC1 but not AC0 .)
55. An Algorithmic
View of
Computer
Science
PDA
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
A queue automaton is a PDA but with a queue instead of a
stack.
Reads the input w from
left to right.
Pop
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Queue is initially empty
and supports the
operations push-bottom
and pop-top.
Automaton accepts if its
queue is empty after the
last symbol of w has
Push
been read.
27/42
w
56. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
28/42
w = 0110110011101000
and
u = 01101100 = 01101100
57. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
0110110011101000
58. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
110110011101000
59. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
1
10110011101000
60. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
1
1
0110011101000
61. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
1
1
110011101000
62. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
1
10011101000
63. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
0011101000
64. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
011101000
65. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
11101000
66. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
1
1101000
67. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
101000
68. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
1
01000
69. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
1
0
1000
70. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
000
71. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
00
72. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
0
0
73. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
29/42
ε
ε
accepted
74. An Algorithmic
View of
Computer
Science
Reduction
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
The many-one reduction to Square constructs a string wS
over the alphabet
Σ = {a1 , a2 , b, e0 , e, c1 , c2 , x, y },
such that wS is a square iff S is a “yes” instance of
3-Partition.
The string wS consists of three parts:
wS :=
30/42
loaderS distributorS verifierS .
75. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
31/42
Security
76. An Algorithmic
View of
Computer
Science
Enigma machine
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
32/42
http://enigmaco.de/enigma/enigma.html
77. An Algorithmic
View of
Computer
Science
Uses of Crypto
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
SSL/SSH
WEP, WPA/WPA2
My Research
PGP/GPG
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
33/42
RSA Encryption
BE 89 0E A1 AD
3B ED 75 E4 3E
EF 62 10 52 7B
1B 50 60 2E 2E
8D 37 F9 EE 6E
AF 57 69 94 8C
5B 5F 62 58 5E
B6 82 D7 86 E5
5A 65 AA 9E 20
45 80 A8 D5 24
62 A5 1F 26 5E
128 bytes:
FA 7D 58 6A
F2 19 F7 F3
FC DD 94 96
79 AC 7C 2E
4F 82 C7 E4
EF 2E 50 7A
CF F2 DF F4
4F 77 E4 91
4F 38 5E B4
5C 46 9D F1
AE 17 47
A1
0F
A8
A3
12
6D
4D
AA
8B
80
6A
FA
35
81
04
53
CE
E4
E0
C0
E4
D9
6B
DE
55
0F
71
BD
36
6B
DRM
FairPlay
MD5
5c3079df8a48623f5aa10f0181a7ab03
78. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Cryptography is the art of computing & communicating in the
presence of an adversary
cryptography = κρυπτ o (hidden or secret) + γραφη (writing)
Three broad applications:
• encryption
• authentication
• integrity checking
Not all security is an application of crypto, e.g., Firewalls.
34/42
79. An Algorithmic
View of
Computer
Science
Michael Soltys
• Noisy channel
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
• Obfuscation
• Password login
• Client-server secure communication
• Non-repudiation
• Electronic voting
• Digital cash
• Secure storage on insecure media
35/42
80. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
36/42
Fundamental THEOREM of cryptography
The following are all equivalent:
• Secure shared-private-key cryptosystems exist.
• Secure signature schemes exist.
• Pseudo-random number generators exist.
• One-way functions exist.
81. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
Fundamental TENET of cryptography
Lots of smart people have been trying to figure out how
to break X ,
but so far they have not been able to come up with anything
yet.
Therefore X is “secure” . . .
37/42
82. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Fundamental ASSUMPTION of cryptography
Everybody knows how it works, i.e., the algorithm is public
knowledge.
The secret is the “key”.
Security
Cryptography
Applications
38/42
In principle it can always be broken; but in practice it is too
much work for the “bad guy.”
83. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
Amazing free tools:
History
Exciting field
Lots of Jobs
My Research
GnuPG (http://www.gnupg.org)
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
39/42
OpenSSL (http://www.openssl.org)
84. An Algorithmic
View of
Computer
Science
In practice Crypto not the problem
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
• We know how to do crypto scientifically
→ and it is a huge help
• But, in practice most security problems due to buggy code
→ writing software that is not buggy is the problem of
CS/SE
• Challenge 1: build secure systems with insecure
components
→ similar to building reliable systems with unreliable
components
• Challenge 2: the art of making the right trade-offs to
satisfy contradictory objectives (e.g., security & speed)
40/42
85. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
86. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
87. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
3
User discipline is 90% of any security policy
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
88. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
3
User discipline is 90% of any security policy
4
My main focus is network security
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
89. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
3
User discipline is 90% of any security policy
4
My main focus is network security
Consulting work:
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
5
• Forensic work — chain of evidence
• Network Penetration Detection
90. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
3
User discipline is 90% of any security policy
4
My main focus is network security
Consulting work:
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
5
• Forensic work — chain of evidence
• Network Penetration Detection
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
41/42
6
Recent masters theses:
• With Dragan Rakas: Homomorphic encryption
• With Sabry Aly: GGH
91. An Algorithmic
View of
Computer
Science
1
Same problem as software engineering: how to check
whether a program conforms to its specifications?
2
How to “specify” security?
3
User discipline is 90% of any security policy
4
My main focus is network security
Consulting work:
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
5
• Forensic work — chain of evidence
• Network Penetration Detection
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
6
• With Dragan Rakas: Homomorphic encryption
• With Sabry Aly: GGH
7
41/42
Recent masters theses:
Cybersecurity field not ready to be professionalized
[The National Academies Press 2013]
Ad hoc solutions; best approach is “case based”
92. An Algorithmic
View of
Computer
Science
Michael Soltys
Why Study
Computer
Science?
History
Exciting field
Lots of Jobs
My Research
Linear Algebra
0-1 Matrices
Strings
Security
Cryptography
Applications
42/42
Thank You!
Questions?