Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS1001 Lecture 3. Overview Computer Science; Algorithms Computer Science; Algorithms Multidisciplinary Heritage Multidisciplinary Heritage Evolution of.

Similar presentations


Presentation on theme: "CS1001 Lecture 3. Overview Computer Science; Algorithms Computer Science; Algorithms Multidisciplinary Heritage Multidisciplinary Heritage Evolution of."— Presentation transcript:

1 CS1001 Lecture 3

2 Overview Computer Science; Algorithms Computer Science; Algorithms Multidisciplinary Heritage Multidisciplinary Heritage Evolution of Machine Architecture Evolution of Machine Architecture Modern Machine Architecture Modern Machine Architecture Some Simulators Some Simulators Homework 1 Homework 1

3 Goals Define Computer Science; what things are part of computer science? Define Computer Science; what things are part of computer science? Define “Algorithm” Define “Algorithm” Understand origins of Mechanical Computing Understand origins of Mechanical Computing How did mechanical computing influence modern computer architecture? How did mechanical computing influence modern computer architecture?

4 Goals (2) Understand the components of modern machine architecture Understand the components of modern machine architecture Examine some basic assembly languages Examine some basic assembly languages Learn how to codify solutions using a given set of actions Learn how to codify solutions using a given set of actions

5 Assignments Brookshear, Ch 2 (Read) Brookshear, Ch 2 (Read) Read linked documents on these slides (slides will be posted in courseworks) Read linked documents on these slides (slides will be posted in courseworks) Check your email and courseworks (http://courseworks.columbia.edu) Check your email and courseworks (http://courseworks.columbia.edu)

6 What is an Algorithm? “An ordered set of unambiguous, executable steps that define a terminating activity” “An ordered set of unambiguous, executable steps that define a terminating activity”

7 Pythagoras The natural world and whole number ratios The natural world and whole number ratios Credited with “discovering” irrational numbers, but that’s up for debate Credited with “discovering” irrational numbers, but that’s up for debate http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Pythagoras.html http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Pythagoras.html http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Pythagoras.html

8 Pascal Many contributions to mathematics Many contributions to mathematics A primitive adder, like an odomoter, called the “Pascaline” A primitive adder, like an odomoter, called the “Pascaline” Economics limited its appeal (too expensive) Economics limited its appeal (too expensive) http://lecture.eingang.org/pascal.html http://lecture.eingang.org/pascal.html http://lecture.eingang.org/pascal.html

9 Gottfried Wilhelm von Leibniz 1666 as Dissertatio de arte combinatoria (Dissertation on the combinatorial art) 1666 as Dissertatio de arte combinatoria (Dissertation on the combinatorial art) (Mozart/Dice Games) http://www.worldvillage.com/jchuang/Music/Dice/dice.cgi (Mozart/Dice Games) http://www.worldvillage.com/jchuang/Music/Dice/dice.cgi http://www.worldvillage.com/jchuang/Music/Dice/dice.cgi Machine below: business success; add, subtract, mult, divide. There was a primitive “language” for programming this device (setting wheel positions) Machine below: business success; add, subtract, mult, divide. There was a primitive “language” for programming this device (setting wheel positions) http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Leibniz.html http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Leibniz.html http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Leibniz.html

10 Charles Babbage Designed a machine (Difference Engine) capable of performing a calculation many times over (useful for limits, logs, etc) Designed a machine (Difference Engine) capable of performing a calculation many times over (useful for limits, logs, etc) Steam Powered; only capable of performing one type of operation without changing the gears on the machine Steam Powered; only capable of performing one type of operation without changing the gears on the machine

11 Charles Babbage (2) Analytical Engine – A generic machine (never built) that was capable of reading instructions from punched cards. Analytical Engine – A generic machine (never built) that was capable of reading instructions from punched cards. This is the basis of the modern instruction set/execution architecture This is the basis of the modern instruction set/execution architecture Ada Lovelace is credited with designing the language for the analytical engine Ada Lovelace is credited with designing the language for the analytical engine

12 Foundations of CS (To be continued) David Hilbert – Infinity, is mathematics consistent? David Hilbert – Infinity, is mathematics consistent? Kurt Goedel – No formal system is consistent Kurt Goedel – No formal system is consistent Alan Turing – Demonstrated a real problem in a formal system that no machine could solve Alan Turing – Demonstrated a real problem in a formal system that no machine could solve Turing Machines Turing Machines

13 The Von Neumann Architecture The “Shared Program Technique” The “Shared Program Technique” –Hardware need not be fixed to solve any problem. Given a simple hardware design, one can program that hardware to accomplish any task “Conditional Control Transfer” “Conditional Control Transfer” –Any program can be written with simple IF/THEN decisions plus Jumps (GOTOs)

14 Modern Systems Memory (a program is data) to store volatile information Memory (a program is data) to store volatile information Hardware that reads the program and manipulates associated data (or itself, like a virus) Hardware that reads the program and manipulates associated data (or itself, like a virus) Critical idea: A program is data Critical idea: A program is data

15 Figure 2.8: The machine cycle

16 Figure 2.1: CPU and main memory connected via a bus

17 Figure 2.4: The architecture of the machine described in Appendix C

18 Figure 2.5: The composition of an instruction for the machine in Appendix C

19 Figure 2.6: Decoding the instruction 35A7

20 Figure 2.10: The program from Figure 2.7 stored in main memory ready for execution

21 Figure 2.11: Performing the fetch step of the machine cycle (continued)

22 Figure 2.11: Performing the fetch step of the machine cycle

23 A simple instruction set MOVR MOVR MOVL MOVL MOVU MOVU LABEL LABEL GOTO GOTO

24 Simulators Modern Architectures Modern Architectures –Intel –Apple/Motorola Power –ARM –Simulation/Emulation

25 Homework The challenge – expressing a process using a fixed number of operations The challenge – expressing a process using a fixed number of operations The problem: The problem: Two creatures (C1 and C2) are to be parachuted onto random locations on an infinite line. When they land, their parachutes detach and remain where they are. The robots may be programmed from the following instruction set: Go left one unit (MOVL ) Go right one unit (MOVR ) Label(LABEL ) Skip next instruction unless there is a parachute here (SKIPPAR) Go to label(GOTO ) Each instruction takes one cycle to execute. Program the robots to collide.


Download ppt "CS1001 Lecture 3. Overview Computer Science; Algorithms Computer Science; Algorithms Multidisciplinary Heritage Multidisciplinary Heritage Evolution of."

Similar presentations


Ads by Google