computer science 8 fall 2015 ucsb. computer science 8, fall 2015, ucsb instructor: omer egecioglu...

38
Computer Science 8 FALL 2015 UCSB

Upload: emery-lucas

Post on 17-Jan-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8 FALL 2015

UCSB

Page 2: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Instructor: Omer Egecioglu

Teaching Assistants: Raymond Wong

Da Zhang

Lin Chai

Lecture:  MW 2:00 – 3:15, NH 1006

Lab (Tuesdays in Phelps CS lab 3525): 09:00 - 09:50 (EnrlCd 08532)10:00 - 10:50  (EnrlCd 08540)11:00 - 11:50  (EnrlCd 08557)12:00 - 12:50 (EnrlCd 08565) 

Page 3: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Introduction to Computer Science

(Python™ Flavor)• No pre-requisites

– But primary goal is to learn how to program

– requires practice (and commitment)

• Designed for non-majors– CS majors welcome to prepare for CS 16

• Skip to CS16 if you know how to program in any language 

Page 4: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

What CS 8 is not• Not for people with zero computer experience

– Instead start with short courses offered by IC: Word processing, spreadsheets, web browsing, e-mail,…

– Otherwise you likely will be frustrated by CS 8’s requirements, expectations and fast pace

• Not a comprehensive course in Python either

– Text and lectures focus on a subset – enough to teach

fundamental programming concepts

– After completing CS 8, you should be sufficiently trained to learn some advanced Python on your own

Page 5: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Required Textbook

Bradley N. Miller and David L. Ranum. Python Programming in Context, (second edition), Jones and Bartlett Pub., 2013.

Page 6: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Course structure• Mostly follows the text, Ch. 1-5, parts of Ch.6

– Intro to computers, programming, elements of Python: Ch. 1

– Number problems, control structures, functions: Ch. 2

– Characters, strings and techniques of their manipulation: Ch. 3

– Data collections, processing data, calculating statistics: Ch. 4

– Text files, additional control structures: Ch. 5

– Image processing, more functions: Ch. 6

Page 7: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Requirements• Labs/homework/projects/quizzes – 60% of total

grade– Weekly lab and homework assignments

– Announced or unannounced short quizzes (± 5 minutes)

– Programming projects

• 1 midterm exam – 15% – Wednesday, October 28

• Cumulative final exam – 25%

– Monday, December 7, 4 - 7 pm• Course web pages are mandatory reading

– www.cs.ucsb.edu/~cs8 - updated regularly, must be checked daily.

Page 8: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

To do – starting today• Start reading Ch. 1 in the text• In general, try to read ahead of the lectures • Confirm access to Python, preferably version

3.4.2• Good idea to install on your own computer

– See the Resources link on the course webpage– Try it at CSIL too– Instructional Computing (IC) lab is a good backup

• Play with Python at every opportunity: e.g., try out examples from text and lectures.

Page 9: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

Basic Rules of Civility in Class

• Cell phones, laptops: allowed but highly discouraged.

• You should turn your cell phone off.

• Tardiness – find a seat quietly.

If you already know a programming language, you don’t belong in this class. So,

• Do not boast about how easy an assignment was.• Be supportive to people who know less than you do.

Page 10: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Computer Science 8, Fall 2015, UCSB

10 sure ways to fail this class

1. Miss class

2. Do not read the book

3. Do not take notes

4. Do not ask questions in class

5. Never go to office hours

6. Do not attempt class/text exercises

7. Start programs one day before due date

8. Wait for an exam to study and “cram”

9. Consider “going over notes” enough

10.Be a hare

Page 11: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

A Short History of Computing

• Computers are both abstract logical machines and physical realizations of such machines– A computing machine is really a logic machine

• The concepts on which computers are based have a long history– Same logic underlying room-sized computers, mainframes, PCs,

PDAs, cellphones, iPods, etc.– These ideas didn’t arise from nowhere …

• Many individuals contributed to the development of computer science, which is a testament to the value of vision and abstract thought:

Ideas have consequences!

Page 12: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

First Heroes/Thinkers

Gottfried Leibniz 1646-1716

George Boole 1815-1864

Gottlob Frege 1848-1925

Georg Cantor 1845-1918

David Hilbert 1862-1943

Kurt Gödel 1906-1978

Alan Turing 1912-1954

Page 13: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

A Prehistory of Computing

• Symbols are a means of communicating facts and ideas– Symbols can not only represent objects, but also properties of

objects and quantities of objects

• Clay tablets were used by Sumerians in 4000-1200 BC for keeping records of commercial transactions

• Egyptians use hieroglyphic signs on pottery and papyrus, 3000+ BC

• Numeration: Counting using strokes, tallies– Evidence on bone fragments from 15,000 BC

• Early societies developed tokens to represent quantities

Page 14: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Concept of Number• Around 4000 BC, traders in Uruk (present day Warka/Iraq) were discovering that the same number could be used to mean ten sheep, ten bags of grain, or ten talents of copper.

• Number systems– Egyptian hieroglyphics– Sumerian number system (base 60), lunar calendar– Roman numerals (I, II, III, IV, V, …, IX, X, …, C, M)– Hindu-Arabic notation – a place-value system

• About 3000 BC, Egyptian tallies show items grouped at ten, one hundred, one thousand

• The “discovery” of zero was a key event in the history of computing! (First known inscription: 683 AD, Cambodia)

Page 15: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Aids to Counting and Manipulating Numbers

• Fingers (digit/decimal)

• Stones, pebbles, sticks, etc.

• Abacus, 3000 BC – 1300 BC

• Quipa (Incas) and Quipu (Peruvians), 1500 AD– Making knots in tiny ropes with various colors and lengths

• Logarithm tables, ~1600– Scotsman John Napier Napier’s bones

• Slide rule, 1622– Invented by Englishman William Oughtred

Page 16: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Heading out of pre-history

• Why did people need to compute?

• What is a “computer”?– Originally, a job description: "a person who computes"

– The earliest known reference to “computers”: in 1398 from a writer

called Trevisa, who wrote about people who occupied themselves with calculations of time:

"compotystes . . . departed by twelve mones, in sixe even and sixe odde,"

– Boring, repetitive, error-prone calculation of tables!

– Commerce– Astronomy– Navigation– Warfare– Science– Taxes

Page 17: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Climate of the 1600s in Europe• The middle ages are over

– Ideas of the ancient Greeks are discussed once again (Thales, Pythagoras, Socrates, Plato, Aristotle)

• The Renaissance had been going

on for 200 years– Revival of art, literature, and learning

• The Enlightenment is about to

get going – René Descartes, Blaise Pascal, John Locke, Isaac Newton

• The industrial revolution is yet to come

• By the 1600s, computing was quite entrenched, and some people were pursuing the idea of mechanizing computation

Page 18: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Blaise Pascal (1623-1662)

1643 – Mechanical adding machine (the "Pascaline")

French

Page 19: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Gottfried Wilhelm Leibniz (1646-1716)

• Co-inventor of the calculus

• Dreamed of a universal mathematical language to encode knowledge, and rules to embody logic

• Machines capable of carrying out calculations, freeing the mind for creative thought

• Thought that maybe it could be done in a few years with the right people working together

“For it is unworthy of excellent men to lose hours like slaves in the labor of calculation which could safely be relegated to anyone else if the machine were used.”

German

Page 20: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Leibniz• Leibniz built a calculating machine that could add and

subtract (which Pascal’s couldn’t)– Part of it, the “Leibniz wheel,” was used into the 20th century

1950

1673

• But his dream was much grander – to reduce human reasoning to a kind of calculation and to ultimately build a machine capable of carrying out such calculations– Symbols – an alphabet of human thought

• Leibniz’ universal characteristic would encode all knowledge and reduce all reasoning and discovery to a combination of basic elements such as numbers, letters, sounds and colors.

20

Page 21: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

complete map of the globe. In the tropics the weather is often foreknown, so that we may say 2000 active columns. So that 32 x 2000 = 64,000 computers would be needed to race the weather for the whole globe. That is a staggering figure. Perhaps in some years' time it may be possible to report a simplification of the process.”

Numerical weather model pioneers

Bjerknes (1904) Richardson (1922)

“If the co-ordinate chequer were 200 km square in plan, there would be 3200 columns on the

Richardson’s grid

Digression to early 20-th century

Page 22: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Richardson’s Forecast Factory: “Let us calculate!”

Digression to early 20-th century (cont.)

Page 23: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Alan Turing (1912-1954)

• Leibniz, Boole, Frege– Calculation as reasoning; foundations of logic

• Cantor, Hilbert, Gödel– Foundations of mathematics and logic

• John von Neumann– The renaissance man of computing

• Babbage, Ada, Burroughs, Hollerith, Bush, Zuse, Aiken, Atanasoff, Eckert, Mauchly, Wilkes, Hopper, Shannon…– Computing pioneers

British

• Alan Turing is at the intersection of the “thinkers” and the “builders”– The real hero of computing.

Page 24: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Turing

• Turing constructed a mathematical model of an

all-purpose computing machine.

• What does this mean??

?

Page 25: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Turing

• Howard Aiken quote (1956):

–“If it should turn out that the basic logics of a machine designed for the numerical solution of differential equations coincide with the logics of a machine intended to make bills for a department store, I would regard this as the most amazing coincidence that I have ever encountered.”

Page 26: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Turing• Once the idea of such a machine (called the Universal

Turing Machine) was understood, the challenge to build it began

–How to design and build such a device?

–Not just a device to do particular computations,

–Turn from ideas to devices–Mechanical gears to electromechanical relays to vacuum tubes

–Going from “underlying logic” to actual device

–Memory: Mercury delay line to cathode-ray tube to metal core

OBE, marathon runner

Page 27: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

• What were the immediate practical needs for computers in the late 1930s and early 1940s?

The Enigma Machine The Colossus

Page 28: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

An early computer

• 1948: Manchester Mark I / “Baby” (Williams and Kilburn)

–First working general-purpose stored-program electronic digital computer

Manchester Mark I First computer program by Tom Kilburn

Page 29: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Additional Highlights

• 1947 – Invention of the TRANSISTOR [TRANsfer reSISTOR] Walter H. Brattain, William Shockley and John Bardeen of AT&T - Bell laboratories

Nobel prize in 1956.

Page 30: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

• 1950 – Turing’s “Computing Machinery and Intelligence”

• 1952 – Univac I computer predicts the outcome of the presidential election on television (contrary to the pundits)

Additional Highlights (cont.)

Univac I, 1952 presidential elections

Page 31: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

• 1952 John Von Neumann

and ENIAC at Princeton

• Weather prediction a reality

Additional Highlights (cont.)

• Von Neumann & Robert Oppenheimer

Page 32: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

1958 – Fairchild laboratories and Texas Instruments (Jack Kilby) develop the Integrated Circuit (IC)– Beginning of third generation computers

Additional Highlights (cont.)

Five components on a piece of germanium measuring half an inch long

... and thinner than a toothpick

Jack Kilby

Page 33: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

Spaceborne computers of the Mercury/Gemini projects through late 1960s.

Additional Highlights (cont.)

1966 Gemini 8 lift-off

Neil Armstrong in Gemini 8

• SIZE Big as a loaf of bread - 19 inches long • WEIGHT 58 pounds• MEMORY 159,744 bit core memory (about 20K)

Athena Orbital randezvous

1963

Grissom/Youngsplashdown

Page 34: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

A History of Computing – Wrap-up

• The history of computers is, in large part, a history of ideas– Visionaries in logic and mathematics

• Some of the main players are– Leibniz, Boole, Frege, Cantor, Hilbert, Gödel, Turing

• And don’t forget– Pascal, Babbage, Russell, von Neumann, Shannon, Bush….

• But also– Ada, Burroughs, Hollerith, Zuse, Aiken, Atanasoff, Eckert, Mauchly,

Wilkes, Hopper, Kirby, Backus, Moore, Engelbart, Licklider, Roberts, Cray, Sutherland, Wozniak, Jobs, Gates, Allen, Metcalfe, Berners-Lee…. and a cast of thousands

Page 35: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai

The Future of Computing

• All the great thinkers were motivated not just by current needs and problems, but by vision – what could be

• Leibniz’ dream is still alive

• What will computing/computers be like in 20 years? 100 years?

– Not like today

Page 36: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai
Page 37: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai
Page 38: Computer Science 8 FALL 2015 UCSB. Computer Science 8, Fall 2015, UCSB Instructor: Omer Egecioglu Teaching Assistants: Raymond Wong Da Zhang Lin Chai