Chapter 1 -- An Introduction to Computing Some definitions: -- Hardware – physical devices that make up the machine What are some examples? -- Software – collection of programs that provide the instructions that are executed by the computer What are some examples? -- Computing System – hardware, software and data that interact to solve a problem -- Data – unprocessed facts vs. information – data that has been processed into something Useful – to support decision-making Ex:: Consider the college application process, what is the difference between data and information? What type of data did you supply on your college application what type of information do you Suppose was generated by the admissions in using that data? Layers of a Computing System -- information here should probably be labeled data representation – how is data represented on a computer? – in binary form -- hardware – physical devices – gates and circuits -- programming – creating the instructions that the computer will execute – purpose? – to solve problems! -- can be done in a variety of languages -- operating system – manages the computer’s resources – very important in understanding computer systems! -- applications – how the user takes advantage of computer’s abilities – the application is the problem that was solved – many subareas (information systems, artificial intelligence, simulation, games) -- communications – computers connected by networks to share information and resources Another important term in computing – Abstraction – concept or idea not associated with any particular instance – mental model that removes all complex details – use abstractions all the time in daily life – pick any machine – describe the “abstraction” Abstractions are used extensively in computer science – hardware, hardware design, software and software design… History of Computing Hardware and some famous people -- Abacus - An early device to record numeric values -- Blaise Pascal - Mechanical device to add, subtract, divide & multiply -- Joseph Jacquard - Jacquard’s Loom, the punched card -- Charles Babbage - Analytical Engine -- Ada Lovelace - First Programmer, the loop -- Alan Turing - Turing Machine, Artificial Intelligence Testing (youtube video) en.wikipedia.org -- Harvard Mark I, ENIAC, UNIVAC I - Early computers launch new era in mathematics, physics, engineering and economics Generations were used to categorize hardware (and software) based on the technology being used… First Generation Hardware (1951-1959) -- Vacuum Tubes - Large, not very reliable, generated a lot of heat -- Magnetic Drum - Memory device that rotated under a read/write head -- Card Readers Magnetic Tape Drives - Sequential auxiliary storage devices *** All input/output/storage devices now known collectively www.ibm.com as Peripheral devices Second Generation Hardware (1959-1965) -- Transistor - Replaced vacuum tube, fast, small, durable, cheap -- Magnetic Cores - Replaced magnetic drums, information *** this was kind of a available instantly boring generation -- Magnetic Disks - Replaced magnetic tape, data can be accessed directly www.psych.usyd.edu.au Third Generation Hardware (1965-1971) -- Integrated Circuits - Replaced circuit boards, smaller, cheaper, faster, more reliable -- Transistors - Now used for memory construction *** introduced to Moore’s Law which says, “Number of circuits placed on single integrated circuit doubles each year”!! fineartamerica.com -- Terminal - An input/output device with a keyboard and screen Fourth Generation Hardware (1971-?) -- Large-scale Integration - Great advances in chip technology *** Moore’s Law NOW states that, “Computers -- PCs, the Commercial Market, Workstations - Personal Computers and Workstations emerge - New companies emerge: Apple, Sun, Dell … will either double in power at the same price or halve in cost for the same power every 18 months” -- Laptops, Tablet Computers, and Smart Phones - Everyone has his/her own portable computer Parallel Computing and Networking -- Parallel Computing - Computers rely on interconnected central processing and/or memory units that increase processing speed (SIMD vs MIMD) -- Networking - Ethernet connects small computers to share resources - File servers connect PCs in the late 1980s -- ARPANET and LANs Internet (original diagram Arpanet) research.blogs.lincoln.ac.uk First Generation Software (1951-1959) -- Machine Language - Computer programs written in binary (1s and 0s) -- Assembly Languages and Translators - Programs written using mnemonics, which were translated into machine language -- Programmer Changes - Programmers divide into two groups: application programmers and systems programmers Third Generation Software (1965-1971) -- Systems Software - Utility programs like loaders and linkers - Language translators (assemblers/compilers) Operating systems, which decides which programs to run and when – time-sharing allowed better use of machines resources -- Separation between Users and Hardware - Computer programmers write programs to be used by general public (i.e., nonprogrammers) Fourth Generation Software (1971-1989) -- Structured Programming – Pascal, C++ -- New Application Software for Users – Spreadsheets, Word processors, Database management systems Fifth Generation Software (1990- present) -- Microsoft - Windows operating system and other Microsoft application programs dominate the market -- Object-Oriented Design - Based on a hierarchy of data objects (i.e. Java) -- World Wide Web - Allows easy global communication through the Internet -- New Users - Today’s user needs no computer knowledge Computing as a Discipline - top 10 reasons for majoring in Computer Science -- Four Necessary Skills • Algorithmic Thinking Homework #1 • Representation • Programming pg. 30-31 – #41, 46, 54, 56,58 • Design Examples of Systems Areas • Algorithms and Data Structures • Programming Languages • Architecture • Operating Systems • Software Engineering • Human-Computer Communication Also provide a 1-sentence definition of each Examples of Systems Areas and each Examples of Applications Areas Examples of Application Areas • Numerical and Symbolic Computation • Databases and Information Retrieval • Intelligent Systems • Graphics and Visual Computing • Net-Centric Computing • Computational Science