Upload
jerod
View
70
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Introduction to Computer Science. CS 21a: Introduction to Computing I First Semester, 2013-2014. Outline. Computer Science from a Philosophical Standpoint Computer Science from a Pragmatic Standpoint A Brief History of Computer Science. Computer Science from a Philosophical Standpoint. - PowerPoint PPT Presentation
Citation preview
Introduction to Computer Science
CS 21a: Introduction to Computing I
First Semester, 2013-2014
Outline►Computer Science from a
Philosophical Standpoint►Computer Science from a Pragmatic
Standpoint►A Brief History of Computer Science
Computer Science from a Philosophical Standpoint
What Is Computer Science?►It’s not about computers.►Any more than astronomy is about
telescopes►It’s not a science (yet).► In the strict sense of developing a
theory and testing the theory with experiment
If Not A Science, Then What?
►A kind of esoteric philosophy?►Physics is to matter as computer
science is to mind►Think about the terms associated
with computer science:►Information►Memory►Languages
If Not A Science, Then What?
►A way of looking at the world?►Objects in the world have
information, or some state that can change over time.
►Objects in the world change their state by doing something or by having something done to them, or by going through an algorithm.
If Not Computers, Then What?
►Data and Algorithms►Like particles and physical laws in
physics►Notes and music theory in music►Cells and biological processes in
biology►People and culture in anthropology
If Not Computers, Then What?
►Atoms (quarks) are the stuff of the universe. Data is the stuff of whatever it is that CS studies.
►Physical laws determine how universes unfold. Algorithms determine how whatever it is that CS studies unfolds.
Whatever It Is That CS Studies?
►It’s a difficult question to answer, because the field is relatively young.
►Preliminary Answer: Intelligent processes and systems
So Does That Mean We Aren’t Going to Study About Computers?►No, because the computers will be
our platform for studying these higher ideas.
►Computer programs will be the concrete ground for the more abstract idea of an algorithm.
Philosophical Questions For CS►What is a number? What do addition,
subtraction, multiplication, division mean? Can all of mathematics be automated?
►What is language? How does a choice of language determine the kinds of ideas that can be easily expressed? How do intelligent beings communicate with one another?
►Are there inherent limitations in the processes of the universe? If so, what and why?
Short Summary of What’s Been Said So Far
►We’re going to study computers and programs, but ultimately, there are things more abstract and meaningful that computer science is all about – data and algorithms.
Outline►Computer Science from a
Philosophical Standpoint►Computer Science from a
Pragmatic Standpoint►A Brief History of Computer Science
Computer Science from a
Pragmatic Standpoint
What Is Computer Science?►A problem arises because there is a
chasm between what we desire and what is real.
►The “Eastern” way to solve problems is to eliminate the desire.
►The “Western” way to solve problems is to translate the desire into reality.
►Computer Science is a kind of “Western” problem solving.
How Does This Problem Solving Work Out?
►There are things that we’d like to have or do.►A house►A cake►Go to outer space
How Does This Problem Solving Work Out?
►There are things that we already have.►Wood, nails, steel, concrete, etc.►Eggs, sugar, whipped cream, etc.►Powerful engines, fuel, the escape
velocity for the earth, oxygen tanks, etc.
How Does This Problem Solving Work Out?
►There are things that we already know how to do.►Hammer the nails into the wood, solder the
steel together, mix and pour concrete, etc.►Beat eggs, measure a specific amount of
sugar, etc.►Build aircraft, build suits that will allow
breathing in places that we can’t breathe, etc.
How Does This Problem Solving Work Out?
►Problem solving is about translating what we don’t already have or know how to do into what we already have and know how to do.
How Does This Problem Solving Work Out?
►Ultimately, there are things that we already inherently have or know how to do, what nature provides us, or what we call primitives.
►Problem solving, and the whole history of technology is all about building more and more complex structures from these primitives.
How Is This Computer Science?
►It doesn’t really need to be about computers.
►But a lot of the high-paying problems we have in the world right now are solvable from a very specific set of primitives – bits and their operations in a computer, hence we’re stuck with the term.
How Is This Computer Science?
►And it’s good that there’s an agreed upon set of primitives.► It’s easier to apply algorithmic ideas
from one context to another.► In fact, almost all computer scientists
believe that all solvable computational problems can be solved by the basic set of primitives that all computers use.
So What If There Were No Computers?
►The ideas of problem solving would still be valid, but the computer allows us to perform some primitives quickly, like mathematical operations.
So What If There Were No Computers?
► It’s not that we don’t know how to do the math, it’s just either too boring or we’re too slow at it.►Computers expand what we can feasibly do
by having faster versions of what we can theoretically do.
►Computers allow us to actually perform solutions to problems that we might be able only to express but not actually realize.
Incidentally…►The word computer originally referred to a
human whose job it is was to do tedious calculations.
►Electronic computers were invented to eliminate slavery.►Reduce complicated but boring or dehumanizing
tasks into minute steps that dumb, unconscious electrons can “understand” and perform.
► So that humans can be free to do the more “human” and creative things to do
So, Can Computer Science Solve World Hunger?
►We’ll see.►The hidden question here is, “Are all
problems computational problems?”
So Really The Computer Revolution Is All About…
►Providing a universal language for solving problems, for expressing all the how-to’s
►Providing a universal machine that can quickly translate the universal language into action
►Expanding the kinds of solutions the universal language can express
►Expanding the kinds of activities the universal machine can perform
Practical Questions For CS►How can we make traffic systems
more efficient?►How do I make a video game?►How do I make a system that can
easily facilitate this company’s business processes?
►How can I detect if this patient has cancer or not?
Short Summary of What’s Been Said So Far
►We’re going to study computers and programs, but ultimately, there is something more important and is the driving force of all technological breakthroughs – problem solving.
Outline►Computer Science from a
Philosophical Standpoint►Computer Science from a Pragmatic
Standpoint►A Brief History of Computer
Science
A Brief History of Computer
Science
Ancient Times►Discovery of numbers, early algorithms, simple
computing machines► 3400 BC, Mesopotamia: First number system► 2400 BC, Babylon: First computing tool – abacus► 300 BC, Greece: Euclidean Algorithm► 5th century BC, India: Pāṇini writes Aṣṭādhyāyī, a
technical account of the rules of Sanskrit grammar.
► 100 BC, Greece: First mechanial analog computer for calculating astronomical positions – Antikythera mechanism
Islamic-Arabic Golden Age►More abstract algorithms, first programmable
machines► 825: Al-Khawarizmi describes the algorism, rules
for calculating with the Hindu-Arabic numerals► 850: Al-Kindi develops algorithms for
cryptanalysis and frequency analysis► 850: Banū Mūsā brothers write about automata
(self-operating machines or robots) in their Book of Ingenious Devices
► 1206: Al-Jazari invents the castle clock, the first programmable analog computer
Pre-modern Europe►Philosophical ideas
► 1232-1315: Ramon Llull describes thought experiments about systematically producing new knowledge from simple and known philosophical truths.
► 1703: Leibniz begins to develop binary logic.► 1854: George Boole publishes his Boolean
algebra, the complete, mathematical system for binary logic used in today’s computers.
Pre-Modern Europe►Analog precursors of today’s digital computers
► 1694: Leibniz completes the Stepped Reckoner, a calculator for all four arithmetic operations.
► 1801: Joseph-Marie Jacquard invents a loom programmable with the use of punched cards.
► 1837: Charles Babbage describes the Analytical Engine, a general-purpose, programmable analog computer.
► 1843: Ada Lovelace writes an algorithm to calculate Bernoulli numbers for the Analytical Engine.
► 1880: Herman Hollerith uses punched cards to store data.
Dawn of Modern Computer Science
►Theoretical Foundations►1931: Kurt Gödel publishes papers on
the Incompleteness Theorems.►1936: Alonzo Church and Alan Turing
independently give a formal definition of an algorithm (Church-Turing thesis).
►1937: Alan Turing creates the universal Turing machine and lays the foundations of theoretical computer science.
Dawn of Modern Computer Science
►Theoretical Foundations► 1937: Claude Shannon showed how Boolean logic
can be implemented with certain electrical circuits (now called logic gates).
► 1945: The idea of stored programs (Von Neumann Architecture) is invented.
► 1948: Claude Shannon invents information theory in his paper "A Mathematical Theory of Communication.“
► 1948: Norbert Wiener invents cybernetics, which influenced artificial intelligence.
Dawn of Modern Computer Science
►Computers for Military Applications► 1941: Konrad Zuse builds the Z3, the first
programmable, fully-automatic, Turing-complete computer
► 1942-1946: Richard Feynman supervises a group of human computers for the Manhattan project.
► 1946: Konrad Zuse creates the first high-level programming language, Plankalkül
► 1946: The ENIAC is the first electronic, general-purpose computer.
The Road to Ubiquitous Computing
►1940’s – The ACM is founded.►1950’s – Computers are commercialized.
Transistors replace vacuum tubes. Programming begins to become as important as computer hardware.
►1960’s – Minicomputers replace mainframes. The chip is invented. Computer science is recognized as an independent academic discipline. “Software Engineering” conference highlights issue that programmers don’t know theoretical CS. Time-sharing
Our Era: Computers Are Everywhere
►1970’s – Pocket programmable calculators, personal computers
►1980’s – Windows, Mac, graphical user interfaces, desktop publishing (office) software
►1990’s – Laptops, the Internet►2000’s – Proliferation of mobile
technology
Summary►Computer Science is not just about
computers. It studies something different from everything else we’ve studied before. We’re just not sure yet what to call it, but there are words to express aspects of this facet of reality we are only beginning to understand.
Summary►Computer Science spans a great spectrum
of knowledge from philosophical ideas to practical technologies.
►Data, algorithms, and problem solving form the core of computer science.
►Two of the main driving forces behind computer science are the desire to understand intelligent processes, and the need to solve real-world problems.
In Fact…►Alan Turing, considered the father of
modern computer science, did exactly this.►Thinking and writing about artificial
intelligence on the one hand►Building machines to crack the Nazi
codes during WWII on the other
Summary►The history of computing shows that
there is always something new and exciting each time.
►Welcome, and I hope you become part of this wonderful history.►Whether to answer some of the deep
questions►Or to invent new and exciting technologies►Or to pass down this tradition of our age
Next Time…►The Core Concepts – data and
algorithms►We need to able to clearly reason
about intelligent processes and systems through algorithms. How do we do this?
►Problem Solving is about translating high-level goals into low-level primitives. How exactly does that work?
Recommended Reading►Chapters 1 and 2 (up to page 37
only) of Algorithmics – Spirit of Computing by Harel and Feldman