340 likes | 591 Views
Early History of Computing. 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. 6. Early History of Computing. Ada Lovelace
E N D
Early History of Computing 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 6
Early History of Computing Ada Lovelace First Programmer, the loop Alan Turing Turing Machine, Artificial Intelligence Testing Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics 7
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 8
Second Generation Hardware (1959-1965) Transistor Replaced vacuum tube, fast, small, durable, cheap Magnetic Cores Replaced magnetic drums, information available instantly Magnetic Disks Replaced magnetic tape, data can be accessed directly 9
Third Generation Hardware (1965-1971) Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more reliable Transistors Now used for memory construction Terminal An input/output device with a keyboard and screen 10
Fourth Generation Hardware (1971-?) Large-scale Integration Great advances in chip technology PCs, the Commercial Market, Workstations Personal Computers and Workstations emerge New companies emerge: Apple, Sun, Dell … Laptops Everyone has his/her own portable computer 11
Parallel Computing and Networking Parallel Computing Computers rely on interconnected central processing and/or memory units that increase processing speed Networking Ethernet connects small computers to share resources File servers connect PCs in the late 1980s ARPANET and LANs Internet 12
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 13
Assembly/Machine Systems programmers write the assembler (translator) Applications programmers use assembly language to solve problems
Second Generation Software (1959-1965) High-level Languages English-like statements made programming easier: Fortran, COBOL, Lisp Systems programmers write translators for high-level languages Application programmers use high-level languages to solve problems 14
Third Generation Software (1965-1971) Systems Software Utility programs Language translators Operating system, which decides which programs to run and when Separation between Users and Hardware Computer programmers write programs to be used by general public (i.e., nonprogrammers) 15
Fourth Generation Software (1971-1989) Structured Programming Pascal C C++ New Application Software for Users Spreadsheets Word processors Database management systems 17
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, Python) World Wide Web Allows easy global communication through the Internet New Users Today’s user needs no computer knowledge 18
Computing as a Tool Programmer / User Systems Programmer (builds tools) Applications Programmer (uses tools) Domain-Specific Programs User with No Computer Background 20
Computing as a Discipline What can be (efficiently) automated? Four Necessary Skills • Algorithmic Thinking • Representation • Programming • Design 21
Systems Areas of Computer Science • Algorithms and Data Structures • Programming Languages • Architecture • Operating Systems • Software Methodology and Engineering • Human-Computer Communication 23
Application Areas of Computer Science • Numerical and Symbolic Computation • Databases and Information Retrieval • Artificial Intelligence and Robotics • Graphics • Organizational Informatics • Bioinformatics 24
What is a Computer? • Computer • Device capable of performing computations and making logical decisions • Computers process data under the control of sets of instructions called computer programs • Hardware • Various devices comprising a computer • Keyboard, screen, mouse, disks, memory, CD-ROM, and processing units
Software • Programs that run on a computer
Computer Organization • Six logical units in every computer: • Input unit • Obtains information from input devices (keyboard, mouse) • Output unit • Outputs information (to screen, to printer, to control other devices) • Memory unit • Rapid access, low capacity, stores input information
Arithmetic and logic unit (ALU) • Performs arithmetic calculations and logic decisions • Central processing unit (CPU) • Supervises and coordinates the other sections of the computer • Secondary storage unit • Cheap, long-term, high-capacity storage • Stores inactive programs
Evolution of Operating Systems • Batch processing • Do only one job or task at a time • Operating systems • Manage transitions between jobs • Increased throughput • Amount of work computers process • Multiprogramming • Computer resources are shared by many jobs or tasks
Timesharing • Computer runs a small portion of one user’s job then moves on to service the next user
Personal Computing, Distributed Computing, and Client/Server Computing • Personal computers • Economical enough for individual • Distributed computing • Computing distributed over networks • Client/server computing • Sharing of information across computer networks between file servers and clients (personal computers)
Machine Languages, Assembly Languages, and High-level Languages Three types of programming languages • Machine languages • Strings of numbers giving machine specific instructions • Example: +1300042774 +1400593419 +1200274027
2. Assembly languages • English-like abbreviations representing elementary computer operations (translated via assemblers) • Example: • LOAD BASEPAY • ADD OVERPAY • STORE GROSSPAY
High-level languages (Java, C++, Python) • Codes similar to everyday English • Use mathematical notations (translated via compilers) • Example: • grossPay = basePay + overTimePay
History of the Internet • The Internet enables • Quick and easy communication via e-mail • International networking of computers • Packet switching • The transfer of digital data via small packets • Allows multiple users to send and receive data simultaneously • No centralized control • If one part of the Internet fails, other parts can still operate
TCP/IP • Bandwidth • Information carrying capacity of communications lines
History of the World Wide Web • World Wide Web • Locate and view multimedia-based documents on almost any subject • Makes information instantly and conveniently accessible worldwide • Possible for individuals and small businesses to get worldwide exposure • Changing the way business is done