Automata, Computability, and Complexity

advertisement
Automata, Computability,
and Complexity
Lecture 1
Section 0.1
Wed, Aug 22, 2007
Basic Questions
• What are the fundamental
capabilities and limitations of
computers?
• What makes some problems
computationally hard and
others easy?
• What do we mean by “hard?”
Automata Theory
• Mathematical models of
computation.
• Finite automata
• Push-down automata
• Turing machines
Computability Theory
• What does it mean to
“compute?”
• Are there things that cannot be
computed?
Complexity Theory
• What makes a problem hard?
• Can a problem’s requirements
be relaxed to make the solution
“easy?”
Computer Science as a
Curriculum
• Computing Curricula 2005 – The
Overview Report
Computing Curricula
2005 Overview Report
• You might be a computer
scientist if…
• You design and implement
software.
• You devise new ways to use
computers.
• You develop effective ways to
solve computing problems.
Computing Curricula
2005 Overview Report
• “While other disciplines may
produce graduates with more
immediately relevant job-related
skills, computer science offers
a comprehensive foundation
that permits graduates to adapt
to new technologies and new
ideas.”
Major Knowledge Areas
• Computing Topics
• Programming fundamentals
• Algorithms and complexity
• Operating Systems Principles &
Design
• Theory of Programming Languages
• Software Design
Major Knowledge Areas
• Non-computing Topics
• Mathematical foundations
• A distant second
• Interpersonal communication
Degree Expectations
• “Computer scientists should be
prepared to work in a broad
range of positions involving
tasks from theoretical work to
software development.”
Degree Expectations –
Which is CS?
• Work effectively at planning, implementation,
configuration, and maintenance of an
organization’s computing infrastructure.
• Work in a broad range of positions involving
tasks from theoretical work to software
development.
• Design and implement systems that involve the
integration of software and hardware devices.
• Perform and manage activities at every stage
of the life cycle of large-scale software
systems.
• Analyze information requirements and
business processes and be able specify and
design systems.
Degree Expectations –
Which is CS?
• Work effectively at planning, implementation,
configuration, and maintenance of an
organization’s computing infrastructure.
• Work in a broad range of positions involving
tasks from theoretical work to software
development.
• Design and implement systems that involve the
integration of software and hardware devices.
• Perform and manage activities at every stage
of the life cycle of large-scale software
systems.
• Analyze information requirements and
business processes and be able specify and
design systems.
The CS Degree
• “In general, a CS degree from a
respected program is the most
flexible of degrees and can
open doors into the professional
worlds of CS, SE, IT, and
sometimes CE.”
• In other words, you can do
anything with a degree in CS.
Computer Science
• “Computer Science is no more
about computers than
astronomy is about telescopes.”
-- E. W. Dijkstra
Computer Science
• One more thing…
Download