520 likes | 551 Views
Introduction to Computing & Programming. Outline. History of Computer Systems Computer Systems Computer Hardware Computer Software Programming Languages. History of Computer Systems. History of Computer Systems. 1822 – The Difference Engine
E N D
Outline • History of Computer Systems • Computer Systems • Computer Hardware • Computer Software • Programming Languages
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 – MARK1 • by Howard Aiken • an electromechanical computer. (thefirst realization of Babbage’s Analytical Engine). 1945 –1st Computer with Stored Program • by John von Neumann • 1st 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 40ft. x 20ft. 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!
DEC PDP-8 Classic Data General SuperNOVA Packard Bell PB250 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.
Intel 4004 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.
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.
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
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
The CPU Control Unit ALU Input Devices Output Devices Registers Primary Storage Secondary Storage Overview
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 Control Unit ALU Registers Primary Storage The CPU • Arithmetic-Logic Unit • Perform computations on data • Perform comparisons on data
The CPU Control Unit ALU Registers Primary Storage The CPU • Registers • High speed storage areas • Hold data and instructions
1. instruction fetched from primary storage 3. Performs calculation & comparison 4. result is stored in primary storage The CPU • Machine Instruction Cycle Control Unit 2. Decodes instruction ALU 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 Control Unit ALU Input Devices Output Devices Registers Primary Storage Secondary Storage
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 • Computers are digital, represent data in bit patterns • Bit • shorthand for Binary digIT • a digit that can only consists of 2 values: 0 & 1 • Byte • Each memory location has 8 bits = 1 byte
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 • Memory Access • Random Access • Usually called RAM • Computer can directly access any memory location • Sequential Access • Data is generally found by searching throughother items first • More common in secondary memory
Primary Storage (Main Memory) • A temporary storage area that holds 3 things: • information you are working with • the application software you are using • 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 Control Unit ALU Input Devices Output Devices Registers Primary Storage Secondary Storage
Input Devices • Keyboard • Mouse / trackball • Touch screens • Scanners • Webcam • Joystick • Microphone
Output Devices The CPU Control Unit ALU Input Devices Output Devices Registers Primary Storage Secondary Storage
Output Devices • Monitors • Printers • Plotters • Voice Output Devices
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
+ = Input Software Fundamentals
Software Fundamentals • Systems Software • Instructions that manage the systems resources • Application Software • Instructions that perform specific user tasks Computer Software Systems Software Application Software
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 • Control use of all system resources (hardware, software, data); operating system • System Support Programs • Specialized support capabilities Systems Software System Control Programs Systems Support Programs
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 UNIX Linux DOS Macintosh OS 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: • Multimedia • Communication • Speech-recognition • Groupware • Spreadsheets • Data management • Word processing • Desktop publishing • Graphics
low-level language high-level language Overview • Various programming languages enable people to tell computers what to do • Foundation for developing applications
Programming Languages • Machine Language(first generation) • The computer’s ‘native language’ • Composed of binary digits (0s, 1s) • 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, QuickBasic • 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
Program written in programming language (source code) Translator program Program written in machine language (object code) • Assembler • Compiler • Interpreter Processed By CPU How are Programs Understood by the Computer? • The Language Translation Process
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