280 likes | 394 Vues
Week 1 of CMP 131 covers essential computer concepts including hardware specifics, software interactions, data representation, and an introduction to machine arithmetic. The session highlights the importance of structured programming languages like Pascal, detailing their influence on modern programming. Students will gain insights into computer systems, hardware organization, and memory types, which are critical for comprehension of the programming process. This foundation is pivotal for developing problem-solving skills necessary for effective programming.
E N D
CMP 131Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lecture 2 CMP 131 Introduction to Computers and Programming
Outline of Topics • Review briefly last class • More details about hardware • Software/Hardware interface • Data and program representation • Machine arithmetic CMP 131 Introduction to Computers and Programming
Last Class • Course Description • Logistics • Assessments (Grading) • Homework • First assignment will come out Monday CMP 131 Introduction to Computers and Programming
Last Class (2) • Computers: What’s in them? • Hardware • Software • Hardware devices • Computers through time • Hardware trends • Hardware/software trends CMP 131 Introduction to Computers and Programming
Why Take This Course? • Be more familiar with PCs • Have a basic understanding of programming and the programming process • Develop critical thinking & problem solving capabilities • Learn other programming languages faster & easier CMP 131 Introduction to Computers and Programming
Why Pascal? • One of the first structured programming languages • It influenced the design of its successors • Modula 2, Oberon (by N.Wirth) • Modula2+, Modula3 (DEC, Olivetti) • Java • Not C or C++ CMP 131 Introduction to Computers and Programming
Today’s Lecture • Review of computers and hardware • Some more information • More about software • Programming languages • Low and high-level languages • Viewing programming through different languages • Introduction to the Pascal IDE environment CMP 131 Introduction to Computers and Programming
Computer Systems • Computers • Devices for performing computations at high speeds with great accuracy • A machine that can be programmed to manipulate symbols. Can perform complex & repetitive procedures quickly, precisely and reliably. Can quickly store and retrieve large amounts of data. • Program • A set of instructions for a computer to follow, written in specific programming language CMP 131 Introduction to Computers and Programming
Computer Systems • Hardware (HW) • Actual physical machines (equipment) that make up the computer • Software (SW) • A collection of programs used by a computer • A set of instructions provided by the programmer that the computer follows. • Program instructions have to be stored in main memory before they can be executed. CMP 131 Introduction to Computers and Programming
Computer Systems • Computer Categories: • Microcomputers (Personal computers / PCs) • Used by a single person • Workstations: • Largest microcomputers • Minicomputers: • Can be used by many people simultaneously by using several terminals connected to the same CPU • Main frame computers: • Faster & larger than minicomputers • Super computers: • Most powerful mainframe computers • Of which category is you computer at home?? CMP 131 Introduction to Computers and Programming
Hardware (HW): Organization • Computer HW usually consists of: • CPU • Main memory (RAM & ROM) • I/O Devices • Secondary Memory • CPU & main memory are the heart of the computer • Usually the CPU, main memory and secondary memory are housed in a single cabinet I/O Devices CPU Secondary Memory MainMemory CMP 131 Introduction to Computers and Programming
Hardware (HW): Central Processing Unit (CPU) • Executes programs • Performs calculations • Arithmetic • Add, subtract, divide, multiply, … etc. • Logical • Compare, test for true/false • Controls & coordinates the other parts of the computer. CMP 131 Introduction to Computers and Programming
Hardware (HW): Memory • Main (Primary) Memory: • Ordered sequence and specific number of memory locations (Bytes, words) that have unique addresses indicating their relative positions • Fast, expensive, short term memory • Holds intermediate results and serves as “scratch paper” • Needed to carry out program instructions • Types: • RAM: Random Access Memory (vs. Sequential Access Memory) • Volatile (i.e. contents disappear when the computer is switched off) • Writable (except where forbidden by the software) • ROM: Read Only Memory • Non-volatile • Also usually random access CMP 131 Introduction to Computers and Programming
Hardware (HW): Memory • Secondary (auxiliary) memory • Used for keeping a permanent records of information • Holds programs and data between jobs • Keeps data or program files for later use • Slower, cheaper, long-term memory • Common forms • Diskettes, magnetic tapes, hard disk, CD-ROM’s, DVD • Some types are removable CMP 131 Introduction to Computers and Programming
Hardware (HW) • I/O (Input/Output) devices • Allow the user to communicate with the computer. • A single computer could be connected to more than one input or output device. • Examples: • Input: Keyboard, mouse, scanner, voice • Output: Screen, printer, voice CMP 131 Introduction to Computers and Programming
Hardware/Software Architectures • Mainframe Era • 1940’s-70’s: mainframe computer, minicomputers • Environments: • Batch environments, batch processing • Files are basis for I/O: fixed formats, minimal device I/O • Error recovery • Lack of timing constraints • Interactive environments • Terminal and file I/O: • Interactive error handling • Faster performance CMP 131 Introduction to Computers and Programming
Personal Computers Era • 1978: the Apple II ran BASIC • Educational use • 1981: IBM released the first PC • 1984: Macintosh • Window environments: • OO models are ideal (Smalltalk) • Must interact with many I/O devices (file I/O is less important) • Embedded systems • Error handling • Real-time response • Distributed systems with concurrently running tasks CMP 131 Introduction to Computers and Programming
Networking Era: • LANs (Local Area Networks): client-server model • Airline reservations, banking • Internet • 70’s: ARPANET: telnet, FTP, SMTP protocols • late 80’s: HTML and HTTP added • Issues and Effects: • Static web pages with URLs for accessURL = Uniform Resource Locator • Dynamic web pages for e-commerce (Perl, JAVA, etc.) • Security • Performance (multiple clients) • Offloading work to client CMP 131 Introduction to Computers and Programming
Hardware/Software Concepts • Computers manipulate instructions and data • Represented in similar ways • Used in different ways • Representation is binary (digital hardware is binary) • Numbers vs. symbols • Computers represent everything as numbers • But numbers can represent symbols • Can perform “symbolic” computation • Beginning of Artificial Intelligence CMP 131 Introduction to Computers and Programming
HW/SW Concepts: Data • What is it? • Numbers, characters, images, or other method of recording • Can be assessed by a human or (especially) input into a computer, stored and processed there, or transmitted on some digital channel. • Nearly always represent data in binary. • Has no meaning on its own. • When interpreted by data processing system it takes on meaning and becomes information. • Storage • Setting of individual bits to specific values, destroying its previous contents • Retrieval • Copying the contents of a particular memory cell to another storage area. • Original data remains unchanged CMP 131 Introduction to Computers and Programming
HW/SW Concepts: Representation • Digit / Bit • Smallest unit of information/storage, sufficient to hold one bit • Can take one of two values (true/false, 1/0, or yes/no) • Corresponds to an input/output being on or off • Byte • Smallest addressable unit of storage • Usually 8 bits • Typically holds one character • Can represent 256 different values CMP 131 Introduction to Computers and Programming
HW/SW Concepts: Representation • Word • Fundamental unit of storage in a computer • Word size is one of its chief distinguishing characteristics of a computer • Typical size in modern computers: 32 bits (4 bytes) or 64 bits (8 bytes) • An instruction is usually one or more words long • A word can be used to hold a whole number of characters CMP 131 Introduction to Computers and Programming
Decimal Number System • A base 10 system • Each digit position can hold 10 values (0-9)Ex. 1234 = 4*1 + 3 * 10 + 2*100 + 1*1000= 4*100 + 3 * 101 + 2*102 + 1*103 CMP 131 Introduction to Computers and Programming
Binary Number System • A base 2 system • Each digit position can hold 2 values (0-1)Ex. 1011 • Decimal conversion • Equals: 1*20 +1*21 +0*22 + 1*23 • Equals: 1 + 2 + 0 + 8 = 11 • Maximum number of values in 4 bits: 16 • 0 to 15 • Maximum number of values in 8 bits: 256 • 0 to 255 [or -128 to 127] • This is how much you can store in a byte CMP 131 Introduction to Computers and Programming
Binary Numbers CMP 131 Introduction to Computers and Programming
Binary Addition 10 + 5 =------15 1010 +0101 =---------1111 1010 +0011 =---------1101 10 + 3 =------13 10 + 7 =------17 => 1 1010 +0111 =---------0001 OVERFLOW!!! CMP 131 Introduction to Computers and Programming
Other Number Systems • Hexadecimal: base 16 • Each digit can hold 16 values (0-9,A-F) • Ex: A02F • Decimal conversion? • Note: 1 hex digit = 4 binary digits • Octal: base 8 • Each digit can hold 8 values (0 to 7) • Ex: 127 • Decimal conversion? CMP 131 Introduction to Computers and Programming
Logical Operations • AND: • 1 AND 1 = 1 • Everything else = 0 • OR • 0 AND 0 = 0 • Everything else = 1 • XOR (Exclusive OR) • 0 AND 1 = 1 • 0 AND 0 = 0, 1 AND 1 = 0 CMP 131 Introduction to Computers and Programming