Presentation is loading. Please wait.

Presentation is loading. Please wait.

A long time ago, in a galaxy far, far away…. 1-1.

Similar presentations


Presentation on theme: "A long time ago, in a galaxy far, far away…. 1-1."— Presentation transcript:

1 A long time ago, in a galaxy far, far away…. 1-1

2 Chapter I THE BIG PICTURE The Empire is bad, mmkay? But we’re not here to talk about that. We’re here to learn computer science! So lets get started! 1-2

3 Chapter Goals Abstraction Layers of a computer system History Future Trends

4 Chapter Goals Changing role of the user Computing as a tool Computing as a discipline Computational Thinking (CT) as a universal skill Skills for Computer Professionals

5 COMPLEXITY and ABSTRACTION 1-5

6 Our First Question? How do we handle complexity? Answer: We Slice it up! This is called “ABSTRACTION” Aka “Decomposition”, “Layering”, “Encapsulation”, “Data Hiding” 1-6

7 Ways to Slice Stuff 1-7

8 MORE Ways to Slice Stuff 1-8 Raise your pencil if you like cake

9 Slicing the Computing Onion 1-9 Computers are so complex we need to “chop them up” to understand them We slice them into layers This is called “abstraction” 2

10 Slicing the Onion 1-10 We can (and will) slice them in many different ways For example: One way is to slice them into – Hardware – Software 2

11 Example: 2 Easy Slices Hardware and Software Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard…) Software The programs that provide the instructions for a computer to execute

12 Is it That Easy? But this is college! We can be more sophisticated slicers! Hardware and Software are nice abstractions, but too simplistic We will continue this slicing process all semester, with increasing sophistication

13 Layers of a Computing System Communication Application Operating System Programming Hardware Information

14 Abstraction 1-14 This is a key concept. Abstraction will reappear throughout the text – be sure to understand it! A mental model that hides complex details A way to group many things into one thing 5

15 Abstraction 1-15 A tool to help humans handle complexity A method to build (and understand) large systems that are built from layers Each Onion Layer is an abstraction 5

16 Our Second Question? So…. What is a GOOD abstraction?? CHARACTERISTICS OF A GOOD ABSTRACTION: Is simple to understand from the outside Has a simple and well defined interface Is self-contained and independent 1-16

17 “Logical” Layer (user POV) 1-17 Some Abstraction InterfaceInterface “Physical” Layer (creator POV)

18 Can build complex systems 1-18

19 HISTORY 1-19

20 History Another way to slice the onion: chronologically! Many strange devices have existed over history… Many people have contributed… 1-20 What was the enigma machine?

21 Early History of Computing 1-21 Joseph Jacquard’s Loom – Used punchcards

22 Early History of Computing 1-22 Charles Babbage’s Analytical Engine Ada Lovelace – “first programmer” Only recently have attempts been made to actually fabricate Babbage’s design

23 Birth of “Modern” Computing World War Two Alan Turing WW2 cryptographer Turing machine Turing AI test Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics

24 IMPORTANT HARDWARE GENERATIONS 1-24

25 First Generation Hardware ( ) Vacuum Tubes A type of “automatic” switch, either ON or OFF Large, not very reliable, generated a lot of heat

26 Second Generation Hardware ( ) Transistor Replaced vacuum tube, fast, small, durable, cheap Still, basically a switch: Either ON or OFF

27 Third Generation Hardware ( ) Integrated Circuits Contain MILLIONS of transistors Smaller, cheaper, faster, more reliable. Moore’s Law: Number of transistors on a chip doubles every 12 to 18 months – Basically why we are all here in this room today.

28 IMPORTANT SOFTWARE GENERATIONS 1-28

29 First Generation Software ( ) Machine Language Computer programs were written in binary (1s and 0s) Assembly Languages Translators Programs were written in assembly language, then translated into machine language

30 Second Generation Software ( ) High Level Languages Introduced Use English-like statements and make programming easier. Fortran, COBOL, ADA, Lisp are examples. High-Level Languages Assembly Language Machine Languag e

31 Third Generation Software ( ) Separation of Types of Programs Begins Programs Written for Non-Programmers – Systems Software utility programs language translators The operating system – Applications Software Usually application-specific at that time. Written to perform a specific task. Example: Calculate monthly interest on all customers bank accounts

32 Third Generation Software ( ) Application Package Systems Software High-Level Languages Assembly Language Machine Language

33 USERS 1-33

34 Another Way to Slice the Onion 1-34 Computing as a Tool What can a computer help me do? Computing as a Discipline What can be (efficiently) automated?

35 Computing as a Tool – Key Issues What can a computer help me do? Main Concerns 1.What tasks can be done with a computer? 2.What SW tools are available to do this task? 3.Can I write a program to do this? 4.Can I get someone else to write a program for this?

36 Computing as a DISCIPLINE What can be (efficiently) automated? Four Necessary Skills 1.Algorithmic Thinking 2.Representation 3.Programming 4.(Systems) Design

37 More Computing as a TOOL Computing is UBIQUITOUS Computing affects EVERY FIELD Computing affects EVERY area of human endevour 1-37

38 MORE Computing as a TOOL This Ubiquity requires: – EVERYONE must have some fundamental computing knowledge – Computing is the “Forth R” – This concept is sometimes called “Computational Thinking” 1-38

39 MORE Computing as a Discipline Modern Computing is Only 60 years old It is still rapidly evolving Computing is a HUGE and DIVERSE field

40 Computing as a Discipline “The Identity Crisis” 1-40 What is Computer Science? Is Computer Science a mathematical, scientific, or engineering discipline? What about Information Technology, MIS, CIS, and related computer fields??? 22 Another Question

41 Computing Education Levels 1-41 A.S. Degree and Certificate Level (typically) Networks Web Database Programming B.S. Degree and above (typically) Computer Science Computer Engineering Information Technology (Emerging)

42 Some Sub-Areas of Computer Science Algorithms and Data Structures Programming Languages Hardware Architecture Software Architecture Operating Systems Software Methodology and Engineering Human-Computer Communication

43 Application Areas of Computer Science Networks and Distributed Systems Numerical and Symbolic Computation Databases and Information Retrieval Artificial Intelligence and Robotics Graphics Organizational Informatics Bioinformatics

44 ONE MORE way to look at Computing Using Tools – Driving a car – using a computer Maintaining Tools – Fixing a car – fixing/modifying computer systems Creating Tools – Developing NEW SW and HW tools 1-44 MORECTMORECT


Download ppt "A long time ago, in a galaxy far, far away…. 1-1."

Similar presentations


Ads by Google