340 likes | 468 Views
CPS120: Introduction to Computer Science. Introduction to Computers. Introduction to Computers. Objectives Understand the history of computers Understand the components that make up a desktop PC Understand the basics of computer architecture Understand the role of an operating system
E N D
CPS120: Introduction to Computer Science Introduction to Computers
Introduction to Computers • Objectives • Understand the history of computers • Understand the components that make up a desktop PC • Understand the basics of computer architecture • Understand the role of an operating system • Understand the role of assemblers, interpreters, & compilers
Abstraction A mental model that removes complex details This is a key concept. 5
Representing Data • Data can be numeric, alphabetic, or alphanumeric • Computer only uses “on” & “off” within its circuits
Representing Data: Bits • Computer only uses “on” & “off” within its circuits • Binary number system • “On”, 1, high state of electricity • “Off”, 0, low state of electricity • Bits (0’s and 1’s)
Representing Data: Bytes • Byte = 8 bits (23) • 256 possible combinations of 8 bits • Decimal system is cumbersome & awkward for pc’s • Can convert from decimal to binary & vice versa • ASCII (American standard code for information interchange) • 128 characters in the 7-bit set
Computing Systems 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 3
Layers of a Computing System Communication Application Operating System Programming Hardware Data 4
Early History of Computers • Abacus • Pascal’s gear-driven counting machine (mid 17th Century) • His father was a tax collector • Babbage designed a programmable computer (1834) • Joseph Jacquard designed a loom that used the the punched card to store instructions (late 18th Century)
Early History of Computing Ada Augusta, Countess of Lovelace First Programmer, the loop (mid 19th Century) Alan Turing (1936) Turing Machine, Artificial Intelligence Testing Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics 7
"Modern" Developments • Hollerith built machine for US census bureau & founded IBM (late 19th Century) • 1946, ENIAC used vacuum tubes (Univ of Penn) - very hot, needed AC, military paid for this research • Transistors used in 1950’s, didn’t burn out like vacuum tubes • Integrated circuits (chips) used in 1960’s • Microprocessor used in 1970’s • Supercomputers, mainframes, minicomputers, workstations, desktop computers
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 Development of these 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 were developed as new companies like Apple and Atari came into being. Workstations emerged. 11
Parallel Computing and Networking • Parallel Computing • Computers rely on interconnected central processing units that increase processing speed. • Networking • With the Ethernet small computers could be connected and share resources. A file server connected PCs in the late 1980s. • ARPANET and LANs Internet • A network of interconnected networks 12
First Generation Software (1951-1959) Machine Language Computer programs were written in binary (1s and 0s) Assembly Languages and translators Programs were written in artificial programming languages and were then translated into machine language Programmer Changes Programmers divide into application programmers and systems programmers 13
Representing Instructions: • Low Level Languages • Each computer uses its own machine language • Assembly is a low-level language close to machine language • Assembly languages are different on each computer • An assembler converts a program into machine language
Machine Languages • different for each computer processor 0100 001101 100000 001101 110001 00101 10001 10000 01110 111001 . . .
Assembly Languages • different for each computer processor main proc pay mov ax, dseg mov ax, 0b00h add ax, dx mov a1, b1 mul b1, ax mov b1, 04h
Second Generation Software (1959-1965) High Level Languages Use English-like statements and made programming easier: Fortran, COBOL, Lisp (artifical intelligence). High-Level Languages AssemblyLanguage Machine Language 14
Third Generation Software (1965-1971) Application Package Systems Software High-Level Languages Assembly Language Machine Language 16
Third Generation Software (1965-1971) • Systems Software • utility programs, • language translators, • and the operating system, which decides which programs • to run and when. • Separation between Users and Hardware • Computer programmers now created programs to be used by people who did not know how to program 15
Fourth Generation Software (1971-1989) Structured Programming BASIC refined, Pascal, C, C++ New Application Software for Users Spreadsheets, word processors, database management systems 17
Fifth Generation Software (1990- present) Microsoft The 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 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 • Four Necessary Skills • Algorithmic Thinking • Representation • Programming • Design 21
System Components • Hardware • I/O devices (input/output) • keyboard, mouse, monitor, etc. • CPU • Primary Storage • Secondary Storage • Software
Computer Architecture • Microprocessor (examples Pentium, Pentium II, PowerPC, etc.) • includes Bus Interface Unit, Arithmetic & Logic Unit (ALU), Control Unit, registers • motherboard is simply the main circuit board that contains most of these parts • the CPU (central processing unit) is considered to be most of these parts taken as a whole • Bus • connects the microprocessor to the RAM & ROM • addresses for data and instructions are important
Storage Devices • Primary storage • RAM (Random Access Memory, or just “memory” for short) • active data that is being stored, lost if power is cut off so save often • ROM (Read-Only Memory) • commands that are permanently stored on chips • PC’s use BIOS, Macs use the Toolbox • Secondary storage • Hard disk, floppy disks • Slower method of storage & retrieval but “safer”
Software: Systems Software • Operating systems • Controls the hardware components (disks, CPU, printers, etc.) • Windows XP, Windows NT/2000, Windows 9-X, MS-DOS, OS/2, MacOS, Unix, Linux, BeOS
Software: Application Software • Office products • Word processors • Spread sheets • Presentation software • Email • Business applications • General ledger • Financials • Accounts payable • Accounts receivable • HRMS • Fixed assets/inventory
Programming Software • Text Editor • Used by the programmer while coding the program in a programming language • Like a word processor - creates a text file containing the program's instructions or "source code" • Examples are “nled” and “vi” editors in Unix systems • Other editors are NotePad and WordPad which are text-based
Programming Software • Interpreters • Translates source code into machine code line by line • Compiler • Translates source code into an object file, than uses linker to create an executable file • A source module (source code) becomes an "object" module (compiled module) • Then it is linked with system modules to become a "load" module (linked module) • It is usually more efficient to use a compiler