Introduction to Computing Programming Outline History of Computer




















































- Slides: 52

Introduction to Computing & Programming

Outline § History of Computer Systems § Computer Hardware § Computer Software § Programming Languages

History of Computer Systems

History of Computer Systems 1822 –The Difference Engine • by Charles Babbage - father of today’s computer • first programmable computer • mechanically calculated mathematical tables. 1890 - Hollerith Tabulating Machine • by Herman Hollerith • used punched cards to help compile the U. S. Census. • Hollerith formed his own company which later become International Business Machines (IBM).

First Generation Computers 1944 – MARK 1 • by Howard Aiken • an electromechanical computer. (the first realization of Babbage’s Analytical Engine). 1945 – 1 st Computer with Stored Program • by John von Neumann • 1 st computer which used the concept of a stored program. • The stored program used a single memory area to store both data and instructions (programs). • Prior to this computer, the instructions and data were stored in separate areas of the computer. • predecessor to modern-day computer systems. vacuum tube

First Generation Computers 1946 – ENIAC (Electronic Integrator & Computer ) • by John Mauchley & J. Eckert • First large scale computer • 2 stories high, large enough to fill a 40 ft. x 20 ft. room • Could do approximately 5, 000 calculations per second. • Later, Mauchley & Eckert built and marketed the UNIVAC - the first commercially available computer designed for both scientific and business applications.

Second Generation Computers 1958 – The IBM 7090 • • introduced by IBM smaller and less expensive more reliable than their predecessors. Second Generation computers also used new techniques for storing data Magnetic core memory!

Third Generation Computers • In the first and second generation computers, 1 tube and 1 transistor represented 1 circuit. • In third generation computers, integrated circuits (IC) is used. • 1 tiny silicon chip could hold hundreds of circuits computers became smaller and faster. • IBM 360 (1964) - one of the first large mainframe computers using IC’s. Packard Bell PB 250 DEC PDP-8 Classic Data General Super. NOVA

Fourth Generation Computers • use Very Large Integrated Scale Circuits (VLSI) on silicon chips. • many thousands circuits could be put on the new chip. • IBM 370 - first model of a fourth generation computer. • Intel developed the first microprocessor using VLSI technology in 1971. Intel 4004

Fifth Generation Computers • Have begun but still in progress. • Artificial intelligence (AI) is the key characteristic. will come close to bridging the gap between computing and thinking. • Many desired features have been developed such as modern input/output devices such as voice, pen and pointers, which may soon replace keyboards. • AI mechanisms are currently being used in a variety of computer-based machines washing machines, automobiles, robots, vision processing, etc.

Computer Systems

Overview § 3 main classes of computers: § PCs (Personal Computer) • Relatively small used by one person at a time § Workstation • Larger and more powerful than a PC § Mainframe • Still larger • Requires support staff • Shared by multiple users

Computer Hardware

Overview § The hardware components of computer system: § CPU (central processing unit) § Memory (primary and secondary storage) § Input devices • Allows communication to the computer § Output devices • Allows communication to the user

Overview The CPU Input Devices Control ALU Unit Registers Primary Storage Secondary Storage Output Devices

The CPU § A microprocessor (chip) that executes instructions to perform processing tasks. § Component parts are: § Control Unit § Arithmetic-Logic Unit § Registers

The CPU § Control Unit § § Access program instructions Decode (interpret) instructions Control flow of data throughout system Data flows through paths called buses (data, address, control)

The CPU § Arithmetic-Logic Unit § Perform computations on data § Perform comparisons on data The CPU Control ALU Unit Registers Primary Storage

The CPU § Registers § High speed storage areas § Hold data and instructions The CPU Control ALU Unit Registers Primary Storage

The CPU § Machine Instruction Cycle Control Unit 2. Decodes instruction 1. instruction fetched from primary storage ALU 3. Performs calculation & comparison 4. result is stored in primary storage Primary Storage

The CPU § Computer performance - measured by the number of Machine Instruction Cycles performed per second. § Factors affecting this performance include: § § Clock Speed Word Length Bus Width Line Width § Smaller, faster, cheaper, more powerful chips with each generation

Computer Memory The CPU Input Devices Control ALU Unit Registers Primary Storage Secondary Storage Output Devices

Computer Memory Basics § Computers are digital, represent data in bit patterns § Bit § shorthand for Binary dig. IT § a digit that can only consists of 2 values: 0 & 1 § Byte § Each memory location has 8 bits = 1 byte Unit ------kilobyte megabyte gigabyte terabyte petabyte exabyte Number of bytes ------------210 bytes 220 bytes 230 bytes 240 bytes 250 bytes 260 bytes Approximation ---------103 bytes 106 bytes 109 bytes 1012 bytes 1015 bytes 1018 bytes

Computer Memory Basics § Address § Number that identifies a memory location § Used to find data when needed § Some data is too large for a single byte § Most integers and real numbers are too large § Address refers to the first byte § Next few consecutive bytes can store the additional bits for larger data

Computer Memory Basics

Computer Memory Basics § Memory Access § Random Access • Usually called RAM • Computer can directly access any memory location § Sequential Access • Data is generally found by searching through other items first • More common in secondary memory

Primary Storage (Main Memory) § A temporary storage area that holds 3 things: 1. information you are working with 2. the application software you are using 3. the operating system software § memory capacity , performance of the system .

Primary Storage (Main Memory) § Types of Primary Storage § Registers – part of the CPU; very fast; limited capacity § Random Access Memory (RAM) – memory chips on motherboard; general storage of program instructions and data § Cache Memory – faster than RAM; provide intermediate storage between secondary storage and RAM § Read-only Memory (ROM) – chips storing permanent instructions needed by computer

Secondary Storage § Secondary memory § Stores instructions and data between sessions § A file stores data or instructions in secondary memory § § Huge storage capacity Cheaper than Primary Storage Slower than Primary Storage Magnetic and optical storage media

Secondary Storage § Types of secondary storage media: § Magnetic tape • Cheap, slow, sequential access: good for backup § Magnetic Disk • Floppy – slow, easily shared with other computers • Hard disk – fast, fixed in the computer • Zip drive § Memory Cards and Cartridges § Optical • CD-ROM, CD-RW, DVD, FMD-ROM • Slower than hard disks • Easily shared with other computers

Input Devices The CPU Input Devices Control ALU Unit Registers Primary Storage Secondary Storage Output Devices

Input Devices § § § § Keyboard Mouse / trackball Touch screens Scanners Webcam Joystick Microphone

Output Devices The CPU Input Devices Control ALU Unit Registers Primary Storage Secondary Storage Output Devices

Output Devices v v Monitors Printers Plotters Voice Output Devices

Computer Software

Software Fundamentals § Some basic terms… § Computer programs - sequences of instructions for the computer § Data – input to a program § Stored program concept – instructions written in programs are stored and executed by CPU when needed § Programming - process of writing (or coding) programs § Programmers - individuals who perform programming

Software Fundamentals + = Input

Software Fundamentals § Systems Software Computer Software Systems Software Application Software § Instructions that manage the systems resources § Application Software § Instructions that perform specific user tasks

Systems Software § Controls and supports the computer system’s activities § Supports application software by directing the computer’s basic functions § Facilitates program development, testing, and debugging § Is independent of any specific type of application

Systems Software System Control Programs Systems Support Programs § System Control Programs § Control use of all system resources (hardware, software, data); operating system § System Support Programs § Specialized support capabilities

System Control Programs § Operating System (OS) - main system control program § supervises the overall operation of the computer § allocates computer resources (eg. CPU time and main memory) § allows us to communicate with the computer § responds to user requests § Common OS include: § Windows DOS UNIX Macintosh OS Linux VMS

System Support Programs § Support the operations, management, and users of a computer system § Examples: § System Utilities • Perform common tasks: sorting records, creating directories and subdirectories, restoring accidentally erased files, locating stored files, managing memory usage etc. § Performance monitors • monitor job processing • produce statistical reports on system resource usage

Application Software § Programs performing specific information processing activities and user functionality § Examples: v v v Spreadsheets Data management Word processing Desktop publishing Graphics v v Multimedia Communication Speech-recognition Groupware

Programming Languages

Overview § Various programming languages enable people to tell computers what to do § Foundation for developing applications low-level language high-level language

Programming Languages § Machine Language (first generation) § The computer’s ‘native language’ § Composed of binary digits (0 s, 1 s) Eg. 0110 1001 1010 1011 § The only language that computers understand § Assembly Language (second generation) § One-to-one correspondence to machine language § Somewhat more user-friendly than machine language (mnemonic rather than binary digits) Eg. ADD X Y Z § Assembler – program that translates an assembly language program into machine language

Programming Languages § Procedural Languages (third generation) § One instruction translates into many machine language instructions § Programs describe the computer’s processing step -by-step § Closer to natural language; uses common words rather than abbreviated mnemonics § Examples: C, C++, Java, Fortran, Quick. Basic § Compiler - translates the entire program at once § Interpreter - translates and executes one source program statement at a time

Programming Languages § Nonprocedural Languages (fourth generation) § Allows the user to specify the desired result without having to specify the detailed procedures needed for achieving the result § Example: – data base query language - SQL § Can be used by non technical users § Natural Language Programming Languages (fifth generation (intelligent) languages) § Translates natural languages into a structured, machine-readable form § Are extremely complex and experimental

How are Programs Understood by the Computer? § The Language Translation Process Program written in programming language (source code) Translator program êAssembler êCompiler êInterpreter Program written in machine language (object code) Processed By CPU

Current Programming Languages § Object-Oriented Programming Languages (OOP) § based on objects – packaging data and the instructions about what to do with that data together § Examples: Java, C++ § Visual Programming Languages § Used within a graphical environment § Examples : Visual Basic and Visual C++ § Popular to non technical users

Current Programming Languages § Hypertext Markup Language (HTML) § standard language used in World Wide Web § contains text, images, and other types of information such as data files, audio, video, and executable computer programs § Extensible Markup Language (XML) § Improved on web document functionality § Virtual Reality Modeling Language (VRML) § a file format for describing three-dimensional (3 D) interactive worlds and objects § can be used with the World Wide Web

~THE END ~