Chapter 1 Introduction to Computers and Programming Starting































- Slides: 31
Chapter 1: Introduction to Computers and Programming Starting Out with C++ Early Objects Seventh Edition by Tony Gaddis, Judy Walters, and Godfrey Muganda MODIFIED FOR CMPS 1044 – Computer Science I Midwestern State University – Department of Computer Science Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
1. 1 Why Program? Computer – programmable machine designed to receive input, follow instructions, produce output Program – instructions written in a special language and stored in computer memory to make it accomplish a task Programmer – person who writes instructions (programs) to make computer perform a task SO, without programmers, no programs; without programs, the computer cannot do anything Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -2
1. 2 Computer Systems: Hardware and Software Main Hardware Component Categories *physical components that make up a computer 1. 2. 3. 4. 5. Central Processing Unit (CPU) Main Memory (RAM) Secondary Storage Devices Input Devices Output Devices Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -3
Main Hardware Component Categories Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -4
Central Processing Unit (CPU) Includes • Control Unit – Retrieves & decodes program instructions – Coordinates computer operations • Arithmetic & Logic Unit (ALU) – Performs mathematical operations & comparisons • Where are instructions & data stored? Registers Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -5
Main Memory (aka Memory) • Holds both program instructions & data • Volatile – erased when power is removed or computer turned off • Also called Random Access Memory (RAM) or Memory Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -6
Main Memory Organization • Bit – Smallest piece of memory – Stands for binary digit – Has values 0 (off) or 1 (on) 8 bits • Byte – 8 consecutive bits 0 1 1 0 0 1 1 1 – Addressable • Word – Usually 4 consecutive bytes – Has an address Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 byte 1 -7
Secondary Storage • Non-volatile - data retained when program is not running or computer is turned off • Comes in variety of media – optical: CD or DVD drive – flash: USB flash drive – magnetic: floppy & hard disk drive, internal or external Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -8
Input Devices • Used to send information to the computer from outside • Many devices can provide input – keyboard, mouse, microphone, scanner, digital camera, disk drive, CD/DVD drive, USB flash drive Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -9
Output Devices • Used to send information from the computer to the outside • Many devices can be used for output – Screen, printer, speakers, disk drive, CD/DVD recorder, USB flash drive Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -10
Software Programs That Run on a Computer • Operating System Software – programs that manage the computer hardware & other programs that run on the computer – How many programs can run at once? • Single tasking - one program at a time (MS-DOS) • Multitasking – multiple programs at a time (UNIX, Windows XP/Vista/7/8) – How many people can use computer at the same time? • Single user – MS-DOS, early versions of Windows • Multiuser – UNIX, Windows • Application Software – programs that provide services to the user. Ex: word processing, games, programs to solve specific problems Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -11
1. 3 Programs and Programming Languages • Program a set of instructions directing a computer to perform a task • Programming Language a language used to write programs Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -12
Programs and Programming Languages Types of languages – Low-level: used for communication with computer hardware directly – Machine language, Assembly language – machine specific – High-level: closer to human language, English-like Well known high-level languages (p. 9) Basic, C, C++, C#, Java, COBOL, FORTRAN, Pascal, Java. Script, Python, Ruby, Visual Basic Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -13
From a High-level Program to an Executable File 1. Create file containing the program with a text editor. § What form is program file? ASCII (plain text) 2. Run preprocessor to convert source file directives to source code program statements. 3. Run compiler to convert source program statements into machine instructions. Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -14
From a High-level Program to an Executable File 4. Run linker to connect hardware-specific library code to machine instructions, producing an executable file. Steps 2) through 4) are often performed by a single command or button click. Errors occurring at any step will prevent execution of the following steps. Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -15
From a High-level Program to an Executable File Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -16
ASCII Code • Character code consisting or 8 (7) bits • See Appendix A (page 1141) A B a ? 9 • Others: 0100 0001 0100 0010 0110 0001 0011 1111 0011 1001 EBCDIC, Unicode Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -17
1. 4 What Is a Program Made Of? Common elements in programming languages: – Key Words (Reserved Words) – Programmer-Defined Identifiers – Operators – Punctuation – Syntax Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -18
Example Program #include <iostream> using namespace std; int main() { double num 1 = 5, num 2, sum; num 2 = 12; } sum = num 1 + num 2; cout << "The sum is " << sum; return 0; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -19
Key Words* • Also known as reserved words • Have a special meaning in C++ • Cannot be used for another purpose • Written using lowercase letters • Examples in program (shown in green): using namespace std; int main() * Probable test question Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -20
Programmer-Defined Identifiers • Names made up by the programmer • Not part of the C++ language • Used to represent various things, such as variables (memory locations) • Example in program (shown in green): double num 1 Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -21
Operators • Used to perform operations on data • Many types of operators – Arithmetic: +, -, *, / – Assignment: = • Examples in program (shown in green): num 2 = 12; sum = num 1 + num 2; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -22
Punctuation • Characters that mark the end of a statement or separate items in a list • Generally: semicolon & comma • Example in program (shown in green): double num 1 = 5, num 2, sum; num 2 = 12; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -23
Lines vs. Statements In a source file, A line is all of the characters entered before a carriage return. Blank lines improve the readability of a program. Here are four sample lines. Line 3 is blank: double num 1 = 5, num 2, sum; num 2 = 12; sum = num 1 + num 2; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -24
Lines vs. Statements In a source file, A statement is an instruction to the computer to perform an action. A ; indicates the end of a statement A statement may contain keywords, operators, programmer-defined identifiers, punctuation. A statement may fit on one line or it may occupy multiple lines. Here is a single statement that uses two lines: double num 1 = 5, num 2, sum; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -25
Variables • A variable is a named location in computer memory (in RAM) • It holds a piece of data, that can change • It must be defined before it can be used – Specify variable name & type • Example variable definition: int num 1; double num 2; Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -26
1. 5 Input, Processing, and Output Three steps that many programs perform 1) Gather input data - from keyboard from files on disk drives 2) Process the input data 3) Display the results as output - send it to the screen or a printer write it to a file Input Process Output Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -27
ERRORS (aka Bugs) 1. Syntax: rule of format/structure are not followed 1. Detected during compilation 2. Misspellings, capitalizations, punctuation 2. Runtime (Exception) 1. Detected during execution of program 2. E. G. Variable with no value, divide by zero 3. Semantic – programmer meant one thing but wrote another 1. Detected after execution by programmer/user 2. E. G. Meant to + but *, Brackets misplaced { } Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -28
Debugging Process • Trace by hand – Play the “stupid” computer • Use compiler Debugger Functions & Tools • Incremental Development – Write small part of program – Compile & Run until correct – Add additional codes – Repeat Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -29
Interpreter vs. Compiler For each instruction/command • Decode the instruction • Execute • If there is a syntax or runtime error, STOP • Basic (some versions) • Python For the entire program • Convert each instruction into machine code – If there is a syntax error, try to keep going but stop before execution • Execute entire program – If there is a runtime error, stop execution • C++, Pascal, Fortran Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -30
Homework • Vocabulary posted on the web site – Will be collected for grading!! • RECOMMENDED – 7 E-Pg. 22 -25: 8 E & 9 E-Pg. 23 -26: – Questions 1 – 33 (will not be collected for grading, but will help you prepare for quizzes & test) Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 -31