Chapter 0 - METU Computer Engineering

Download Report

Transcript Chapter 0 - METU Computer Engineering

Chapter 0:
Introduction
Introduction
•
•
•
•
•
•
The Role of Algorithms
The Origins of Computing Machines
The Science of Algorithms
Abstraction
An Outline of Our Study
Social Repercussions
0-2
Terminology
• Algorithm: A set of steps that defines how a task is
performed
• Program: A representation of an algorithm
• Programming: The process of developing a program
• Software: Programs and algorithms
• Hardware: Equipment
0-3
History of Algorithms
• The study of algorithms was originally a subject
in mathematics.
• Early examples of algorithms
– Long division algorithm
– Euclidean Algorithm
• https://www.youtube.com/watch?v=icidesQM6Rw
• https://www.youtube.com/watch?v=hB34-GSDT3k
0-4
The Euclidean algorithm
0-5
• One of the most significant logicians in history,
Gödel made an immense impact upon scientific
and philosophical thinking in the 20th century,
Kurt Friedrich Gödel, 1906
Austria-Hungary
Gödel's Incompleteness Theorem:
Some problems cannot be solved by algorithms.
0-6
Augusta Ada King-Noel was an English
mathematician and writer, chiefly known for her
work on Charles Babbage's proposed mechanical
general-purpose computer, the Analytical Engine.
She was the first to recognise that the machine
had applications beyond pure calculation, and
created the first algorithm intended to be carried
out by such a machine.
As a result, she is often regarded as the first to
recognise the full potential of a "computing
machine" and the first computer programmer
0-7
Alan Mathison Turing
(1912–1954) was an English computer scientist, mathematician, logician,
cryptanalyst and theoretical biologist.
He was highly influential in the development of theoretical computer science,
providing a formalisation of the concepts of algorithm and computation with the
Turing machine, which can be considered a model of a general purpose
computer.
Turing is widely considered to be the father of theoretical computer science and
artificial intelligence.
0-8
Grace Brewster Murray Hopper (1906 – 1992)
American computer scientist.
In 1944, she was one of the first programmers of the Harvard Mark I
computer and invented the first compiler for a computer programming
language.
She popularized the idea of machine-independent programming
languages, which led to the development of COBOL, one of the first
high-level programming languages.
0-9
Babbage’s Difference Engine
https://www.youtube.com/watch?v=jiRgdaknJCg
Assuming that 2s continue this way
0-10
• Homework:
• Write pseudocode for Babbage’s
Difference Engine algorithm.
• 1 point.
0-11
Origins of Computing Machines
• Early computing devices
– Abacus: positions of beads represent numbers
– Gear-based machines (1600s-1800s)
• Positions of gears represent numbers
• Blaise Pascal, Wilhelm Leibniz, Charles Babbage
0-12
Pascal's calculator is a mechanical calculator invented by Blaise Pascal in the early
17th century.
It was called the arithmetic machine and later became known as the Pascaline.
Pascal was led to develop a calculator by the laborious arithmetical calculations
required by his father's work.
He designed the machine to add and subtract two numbers directly and to perform
multiplication and division through repeated addition or subtraction.
https://www.youtube.com/watch?v=3h71HAJWnVU
0-13
Early Data Storage
• Punched cards
– First used in Jacquard Loom (1801) to store patterns
for weaving cloth
– Storage of programs in Babbage’s Analytical Engine
– Popular through the 1970’s
• Gear positions
0-14
Early Computers
• Based on mechanical relays
– 1940: Stibitz at Bell Laboratories
– 1944: Mark I: Howard Aiken and IBM at Harvard
• Based on vacuum tubes
– 1937-1941: Atanasoff-Berry at Iowa State
– 1940s: Colossus: secret German code-breaker
– 1940s: ENIAC: Mauchly & Eckert at U. of Penn.
0-15
1944: Mark I: Howard Aiken and IBM at Harvard
https://www.youtube.com/watch?v=4ObouwCHk8w
0-16
https://www.youtube.com/watch?v=k4oGI_dNaPc
0-17
Personal Computers
– First used by hobbyists, game players….
– IBM introduced the PC in 1981.
• Accepted by business
• Became the standard hardware design for most
desktop computers
https://www.youtube.com/watch?v=12i3s6rZW-A
0-18
Computer Science
• The science of algorithms
• Draws from other subjects, including
– Mathematics
– Engineering
– Psychology
– Business Administration
– ………
0-19
Central Questions of Computer Science
• Which problems can be solved by algorithmic processes?
• How can characteristics of different algorithms be analyzed
and compared?
• Time efficiency of algorithms? Does it take days to finish a
job?
0-20
Central Questions of Computer Science
• How can algorithms be used to manipulate/update
information?
• How can algorithms be applied to produce intelligent
behavior?
• Algorithms affect society? Social networks….
• Deal with big data?
0-21
The central role of algorithms in
computer science
0-22
Abstraction
• Abstraction: The distinction between the
external properties of an entity and the details of
the entity’s internal composition
• Abstract tool: A “component” that can be used
without concern for the component’s internal
properties
0-23
Outline of Our Study
•
•
•
•
•
•
•
•
•
•
•
•
Chapter 1: Data Storage
Chapter 2: Data Manipulation
Chapter 3: Operating Systems
Chapter 4: Networks and the Internet
Chapter 5: Algorithms
Chapter 6: Programming Languages
Chapter 7: Software Engineering
Chapter 8: Data Abstractions
Chapter 9: Database Systems
Chapter 10: Computer Graphics
Chapter 11: Artificial Intelligence
Chapter 12: Theory of Computation
0-24