180 likes | 342 Views
CS1001 Lecture 1. Introduction - Syllabus History of Computers Computer Components. Instructor. Joe Wong Sc.B., MS Applied Math, Brown University MS Applied Physics, Harvard University 20 years of Software Engineer and Manager 17 years with Raytheon Company
E N D
CS1001 Lecture 1 • Introduction - Syllabus • History of Computers • Computer Components
Instructor • Joe Wong • Sc.B., MS Applied Math, Brown University • MS Applied Physics, Harvard University • 20 years of Software Engineer and Manager • 17 years with Raytheon Company • 3 years with Cadence Design Systems • ADSUM Consulting • Tech-Vol • Adjunct at WPI • FORTRAN was my first language 1967
Introduction • Course grading and schedule -- see Syllabus • Office hours and contact -- see Syllabus • Reading assignments • are for the topic presented on that date • Reading ahead is encouraged • Lectures • Most of what is on the slides is in the book • Whenever possible, handouts will be available ahead of time • Lectures will be PowerPoint slides available on Web • Labs
History of Computers • 2000 B.C -- First digital computer might be the abacus used by the Chinese • Slide rule was initially crude, but long-lived, and could only multiply and divide, a characteristic of analog computers • 1642 A.D. Blaise Pascal’s mechanical adding machine • for tax computation • was a better first example of an analog computer • unreliable • All of these lacked a means of storing a program
Analog/Digital • In a digital computer • data input and output and data representation within the computer is discrete • it is either a 0 or a 1 (which is actually a voltage level) • In an analog computer • data input and output and data representation within the computer is continuous or proportional • it can have any value within the limits of the power supplies.
Electronic Computer Evolution • ENIAC - 30 tons, 30 by 50 ft, 300 multiplications/sec • 1951 - UNIVAC - UNIVersal Automatic Computer (performs add in 282 microsec) • IBM 7090 -- 300 nanosecond add (three orders of magnitude faster than first generation) • IBM 360 -- About three orders of magnitude faster again than the second generation • Now -- not much faster, but much smaller and affordable
Computer Components • Hardware -- the physical parts of the computer such as disk drives, keyboards, etc. • Software -- the programs that run on the computer, stored on disk, run in RAM • Firmware -- parts of the operating system that are programmed in ROM • “Wetware” -- the human operator
Hardware Components Output Devices: Monitor, Printer Central Processing Unit Input Devices: keyboard, Mouse, Scanner Arithmetic Logic Unit Control Unit Main Memory Secondary Storage
Computer Hardware • CPU (Central Processor Unit) -- the heart of your computer, the part that actually computes • RAM and ROM, system memory where executable programs are stored while running • Hard and floppy disk drives, where programs are stored • Display monitor, the screen where you view program operation and results • Keyboard and mouse (or other pointing device) for user input during program operation • Printer, scanner, modems, etc. -- peripheral devices
Memory • ROM -- Read-Only Memory, permanent, used to store portions of the computer operating system, such as the BIOS • RAM -- Random-Access Memory, volatile, used to store portions of the operating system and any programs that are running • PROM -- Programmable Read-Only Memory, special version of ROM that can be modified
Software • Operating System • MS-DOS • UNIX • etc. • Graphical User Interface (GUI) • Windows • X-Windows • etc. • Programs
Operating System (MS-DOS) • BIOS (Basic Input/Output System) in ROM • loads the hidden file called IO.SYS from the disk drive into RAM • DOS (Disk Operating System) Kernal • loads the hidden file called MSDOS.SYS from the disk to RAM • provides the link between your program and DOS, performing: • File and directory management • Application interface to DOS services • DOS Command Processor • loads COMMAND.COM from disk to RAM • performs your commands
Language Hierarchy • High-level language (Ada, C, C++, FORTRAN, Pascal, BASIC, COBOL, etc.) • Assembly language (symbolic, dependent on target processor/computer), mnemonics • Machine language, understood by the actual processor /computer, opcodes and operands X = A*B+C MOV A, ACC MUL B, ACC ADD C, ACC STO ACC, X 000100000000000000000100000000000 001001000000000000000100000000001 001000110000000000000100000000010 000100010000000000000100000000011 Operand Opcode
Programs --> Machine • Interpretation • Translation Data Program Interpreter Answer Program Compiler Object Code Data Computer Answer
Preparing a Program for Execution You enter the program and save it as a source file Revised Source file Source file on disk You correct syntax error Oops! List of errors The compiler attempts to translate the program The loader places the load file into memory Good job! Other Object File New Object File Load File Executable program in memory The linker links the new object file with other object files
Fortran • FORmula TRANslation (FORTRAN) - translate scientific equations into computer code. • First compiled high-level language- 1954 • FORTRAN II - 1958 • FORTRAN IV - 1960-62 • FORTRAN 77 • Fortran 90 • Fortran 95
Summary • History of computers • Computer components • High level --> executable • Brief, brief history of Fortran