what is a computer?bdstephe/231_w08/topic... · •• networking and distributed systemsnetworking...

11
Topic 1: Introduction Topic 1: Introduction 1 What is a Computer? What is a Computer? What is Computer Science? What is Computer Science? What is a Computer? What is a Computer? Definitions vary: Definitions vary: – Boring definition: Boring definition: A boxy device with a typewriter A boxy device with a typewriter-like interface that like interface that stores and processes information stores and processes information 2 What is a Computer? What is a Computer? – Criminal Code of Canada (s. 342.1): Criminal Code of Canada (s. 342.1): “computer system” means a device that, or a group “computer system” means a device that, or a group of interconnected or related devices one or more of of interconnected or related devices one or more of which, which, a) a) contains computer programs or other data, and contains computer programs or other data, and 3 a) a) contains computer programs or other data, and contains computer programs or other data, and b) b) pursuant to computer programs, pursuant to computer programs, i. i. performs logic and control, and performs logic and control, and ii. ii. may perform any other function; may perform any other function; “computer program” means data representing “computer program” means data representing instructions or statements that, when executed in a instructions or statements that, when executed in a computer system, causes the computer system to computer system, causes the computer system to perform a function; perform a function; What is a Computer? What is a Computer? – Legal definition under the Uniform Computer Legal definition under the Uniform Computer Information Transactions Act (UCITA), USA: Information Transactions Act (UCITA), USA: An electronic device that accepts information in An electronic device that accepts information in digital or similar form and manipulates it for a result digital or similar form and manipulates it for a result based on a sequence of instructions based on a sequence of instructions 4 based on a sequence of instructions based on a sequence of instructions – Another possibility: Another possibility: 1. 1. One who computes One who computes 2. 2. A device that computes by receiving, processing A device that computes by receiving, processing and presenting information and presenting information

Upload: others

Post on 09-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Topic 1: IntroductionTopic 1: Introduction

1

What is a Computer?What is a Computer?What is Computer Science?What is Computer Science?

What is a Computer?What is a Computer?

•• Definitions vary:Definitions vary:–– Boring definition:Boring definition:

•• A boxy device with a typewriterA boxy device with a typewriter--like interface that like interface that stores and processes informationstores and processes information

2

stores and processes informationstores and processes information

What is a Computer?What is a Computer?

–– Criminal Code of Canada (s. 342.1):Criminal Code of Canada (s. 342.1):•• “computer system” means a device that, or a group “computer system” means a device that, or a group

of interconnected or related devices one or more of of interconnected or related devices one or more of which, which,

a)a) contains computer programs or other data, and contains computer programs or other data, and

3

a)a) contains computer programs or other data, and contains computer programs or other data, and b)b) pursuant to computer programs, pursuant to computer programs,

i.i. performs logic and control, and performs logic and control, and ii.ii. may perform any other function;may perform any other function;

•• “computer program” means data representing “computer program” means data representing instructions or statements that, when executed in a instructions or statements that, when executed in a computer system, causes the computer system to computer system, causes the computer system to perform a function; perform a function;

What is a Computer?What is a Computer?

–– Legal definition under the Uniform Computer Legal definition under the Uniform Computer Information Transactions Act (UCITA), USA:Information Transactions Act (UCITA), USA:

•• An electronic device that accepts information in An electronic device that accepts information in digital or similar form and manipulates it for a result digital or similar form and manipulates it for a result based on a sequence of instructionsbased on a sequence of instructions

4

based on a sequence of instructionsbased on a sequence of instructions

–– Another possibility:Another possibility:1.1. One who computesOne who computes2.2. A device that computes by receiving, processing A device that computes by receiving, processing

and presenting informationand presenting information

Page 2: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

ComputersComputers

5

ComputersComputers

6

ComputersComputers

7

ComputersComputers

8

Page 3: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

ComputersComputers

9

ComputersComputers

10

ComputersComputers

•• Digital ComputerDigital Computer–– Proceeds in discrete steps from on state to Proceeds in discrete steps from on state to

the nextthe next–– Everything in a digital computer is Everything in a digital computer is

11

–– Everything in a digital computer is Everything in a digital computer is represented using sequences of discrete represented using sequences of discrete valuesvalues

•• Typically these values are called bits, and are Typically these values are called bits, and are represented as 0 (off) and 1 (on)represented as 0 (off) and 1 (on)

•• Numbers, letters, images, sound, etc. are all just Numbers, letters, images, sound, etc. are all just bits when they are inside a digital computerbits when they are inside a digital computer

ComputersComputers

•• ArithmeticArithmetic–– Numbers are just sequences of bitsNumbers are just sequences of bits–– A A number systemnumber system defines what sequence of defines what sequence of

bits represents what numberbits represents what number

12

bits represents what numberbits represents what number–– Arithmetic unit manipulates sequences of bits Arithmetic unit manipulates sequences of bits

that represent numbers to perform operations that represent numbers to perform operations like addition and multiplicationlike addition and multiplication

Page 4: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

How Did We Get Here?How Did We Get Here?

13

Moore’s LawMoore’s Law

•• “The complexity for minimum component “The complexity for minimum component costs has increased at a rate of roughly a costs has increased at a rate of roughly a factor of two per year ... Certainly over the factor of two per year ... Certainly over the short term this rate can be expected to short term this rate can be expected to

14

short term this rate can be expected to short term this rate can be expected to continue, if not to increase. Over the continue, if not to increase. Over the longer term, the rate of increase is a bit longer term, the rate of increase is a bit more uncertain, although there is no more uncertain, although there is no reason to believe it will not remain nearly reason to believe it will not remain nearly constant for at least 10 years.”constant for at least 10 years.”

Moore’s LawMoore’s Law

15

Wirth’s LawWirth’s Law

•• Software gets slower faster than hardware Software gets slower faster than hardware gets fastergets faster–– Programs get biggerPrograms get bigger–– People want to solve larger problemsPeople want to solve larger problems

16

–– People want to solve larger problemsPeople want to solve larger problems–– Some programmers use Moore’s law as an Some programmers use Moore’s law as an

excuse to allow them to write bad codeexcuse to allow them to write bad code

•• Consider how long it took to boot DOS 15 Consider how long it took to boot DOS 15 years ago vs. Windows Vista today…years ago vs. Windows Vista today…

Page 5: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

NowNow

17

The Future?The Future?

18

Computer ScienceComputer Science

•• Definition:Definition:–– The study of computation and computer The study of computation and computer

technology, hardware and softwaretechnology, hardware and software

19

–– The study of the theoretical foundations of The study of the theoretical foundations of information and computation, and their information and computation, and their implementation and application in computer implementation and application in computer systemssystems

DisciplinesDisciplines

•• HumanHuman--Computer InteractionComputer Interaction•• Computer GraphicsComputer Graphics•• Information VisualizationInformation Visualization•• DatabasesDatabases•• Theory of ComputationTheory of Computation

20

•• Theory of ComputationTheory of Computation•• Networking and Distributed SystemsNetworking and Distributed Systems•• Artificial IntelligenceArtificial Intelligence•• Computer VisionComputer Vision•• Software EngineeringSoftware Engineering•• Game DevelopmentGame Development•• ……

Page 6: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Human Computer InteractionHuman Computer Interaction

•• How do we make a computer easy to use?How do we make a computer easy to use?–– User Interface DesignUser Interface Design–– How do we measure if an interface is “good”?How do we measure if an interface is “good”?–– Includes aspects of biology and behavioral Includes aspects of biology and behavioral

21

–– Includes aspects of biology and behavioral Includes aspects of biology and behavioral sciencessciences

Computer GraphicsComputer Graphics

•• Image generationImage generation–– How do we do it faster?How do we do it faster?–– How do we make it look more “real”?How do we make it look more “real”?–– How do we store image data compactly?How do we store image data compactly?

22

–– How do we store image data compactly?How do we store image data compactly?

Real of Computer Generated?Real of Computer Generated?

23

Real of Computer Generated?Real of Computer Generated?

24

Page 7: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Real of Computer Generated?Real of Computer Generated?

25

DatabasesDatabases

•• How do we store large amounts of How do we store large amounts of information?information?–– How do we find it quickly once we have stored How do we find it quickly once we have stored

it?it?

26

it?it?

Theory of ComputationTheory of Computation

•• Two primary subfieldsTwo primary subfields–– Complexity TheoryComplexity Theory

•• How efficiently can the problem be solvedHow efficiently can the problem be solved–– TimeTime

27

–– TimeTime–– Memory SpaceMemory Space

•• Is the efficiency impacted by the input that is Is the efficiency impacted by the input that is supplied?supplied?

–– Computability TheoryComputability Theory•• Can the problem be solved with a computer?Can the problem be solved with a computer?•• Some things are not computable!Some things are not computable!

NetworksNetworks

•• Deals with networks surrounding one Deals with networks surrounding one computer to networks that span the planetcomputer to networks that span the planet–– How do we transfer data quickly?How do we transfer data quickly?

•• Do we need a consistent level of service?Do we need a consistent level of service?

28

•• Do we need a consistent level of service?Do we need a consistent level of service?

–– How do we transfer data securely?How do we transfer data securely?•• What is secure enough?What is secure enough?

–– How do we get the data where it needs to go?How do we get the data where it needs to go?

Page 8: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

29

Distributed SystemsDistributed Systems

•• How can we get multiple computers to How can we get multiple computers to work together to solve a problem?work together to solve a problem?–– Representing the problem in a way that allows Representing the problem in a way that allows

it to be solved in parallelit to be solved in parallel

30

it to be solved in parallelit to be solved in parallel–– Coordinating actionsCoordinating actions

•• Dealing with race conditions / deadlockDealing with race conditions / deadlock•• Avoiding duplicate workAvoiding duplicate work

Software EngineeringSoftware Engineering

•• How do we develop large software How do we develop large software projects?projects?–– How do we model the problem so that many How do we model the problem so that many

people can work on it at once?people can work on it at once?

31

people can work on it at once?people can work on it at once?–– How do we ensure that the software does How do we ensure that the software does

what it is supposed to?what it is supposed to?–– How do we find and fix bugs in a large How do we find and fix bugs in a large

application?application?–– What design decisions can we make to ease What design decisions can we make to ease

future expansion?future expansion?32

Page 9: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Game DevelopmentGame Development

•• Brings many areas togetherBrings many areas together–– Graphics, HCI,Graphics, HCI,–– Networks, Distributed Systems,Networks, Distributed Systems,–– Artificial Intelligence, Software Engineering,Artificial Intelligence, Software Engineering,

33

–– Artificial Intelligence, Software Engineering,Artificial Intelligence, Software Engineering,–– ……–– Frequently pushes the limits of these areasFrequently pushes the limits of these areas

•• What makes a game fun?What makes a game fun?–– How do we define fun?How do we define fun?–– How do we measure fun?How do we measure fun?

Was This Fun?Was This Fun?

34

Was This Fun?Was This Fun?

35

Was This Fun?Was This Fun?

36

Page 10: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Was This Fun?Was This Fun?

37

How Long Will This Be Fun?How Long Will This Be Fun?

38

Where’s the Computer Science?Where’s the Computer Science?

39

Computer ScienceComputer Science

“Computer science is “Computer science is no more about no more about computers than computers than

40

computers than computers than astronomy is about astronomy is about telescopes.”telescopes.”–– EdsgerEdsger DijkstraDijkstra

Page 11: What is a Computer?bdstephe/231_W08/Topic... · •• Networking and Distributed SystemsNetworking and Distributed Systems •• Artificial IntelligenceArtificial Intelligence ••

Where Are We Going?Where Are We Going?

•• Computers are tools that we use to solve Computers are tools that we use to solve problemsproblems–– Need to understand the problem that we want Need to understand the problem that we want

to solveto solve

41

to solveto solve–– Need to understand how a computer works to Need to understand how a computer works to

model the problem on a computermodel the problem on a computer–– Need to learn how to program the computer to Need to learn how to program the computer to

solve the problemsolve the problem