Lecture 1 Overview of Computer Programming.ppt
Document Details
Uploaded by SoftDifferential
Tags
Full Transcript
An Object-Oriented Approach to Programming Logic and Design Fourth Edition An Overview of Computer Programming Learning Objectives List and describe computer components and operations Apply simple program logic Understand the history of programming...
An Object-Oriented Approach to Programming Logic and Design Fourth Edition An Overview of Computer Programming Learning Objectives List and describe computer components and operations Apply simple program logic Understand the history of programming languages Describe the types of programming languages Differentiate between procedural and object oriented languages List programming language generations An Object-Oriented Approach to Programming Logic and Design 2 Understanding Computer Components and Operations Computer system – Combination of all components required to process and store data using a computer Two major computer system components – Hardware Physical devices associated with the computer – Software Computer instructions that tell the hardware what to do Programs (sets of instructions) written by programmers Application software: programs applied to a task System software: programs that manage computer resources An Object-Oriented Approach to Programming Logic and Design 3 Understanding Computer Components and Operations (cont’d) Three major hardware and software operations – Input – Processing – Output Input operation – A means for data to enter a computer through an input device such as a mouse or keyboard An Object-Oriented Approach to Programming Logic and Design 4 Understanding Computer Components and Operations (cont’d) Processing data operation – Organizing or sorting data – Checking for accuracy – Performing mathematical operations – Tasks occur in central processing unit (CPU) Output operation – Means to view, print, or store data using output devices Printer or monitor Storage devices (e.g., disks, flash media) Information: data that has been processed An Object-Oriented Approach to Programming Logic and Design 5 Understanding Computer Components and Operations (cont’d) Programming language – Instructions controlling data manipulation – Examples include Visual Basic, C#, C++, or Java Syntax – Rules governing word usage and punctuation for a programming language – Syntax errors: mistakes in a language’s usage Program code – Instructions written in a programming language An Object-Oriented Approach to Programming Logic and Design 6 Understanding Computer Components and Operations (cont’d) Computer memory (RAM) – Temporary, internal storage Executable statements – Statements that carry out a program’s actions Compiler or interpreter – Translate high level programming language statements into low-level machine or binary language – Point out syntax errors An Object-Oriented Approach to Programming Logic and Design 7 Understanding Computer Components and Operations Compiler (cont’d) – Translates entire program before execution Interpreter – Translates an instruction just prior to execution Source code – Program statements written in a programming language Object code – Code translated into machine language statements An Object-Oriented Approach to Programming Logic and Design 8 Understanding Simple Program Logic Logic errors – Program may execute but produces incorrect results – Can be avoided by Writing program instructions in specific sequence Removing extraneous instructions Including all required instructions – Example of logic errors in cake-makingDanger: instructions Stir Do not follow these cake-baking Add two eggs instructions! Add a gallon of gasoline Bake at 350 degrees for 45 minutes Add three cups of flour An Object-Oriented Approach to Programming Logic and Design 9 Understanding Simple Program Logic (cont’d) Computer programs include steps that perform input, processing, and output Sample instructions written in English-like language – Program doubles any given number – Requires three operations: input, processing, and output input myNumber input myAnswer = myNumber * 2 processing output myAnswer output An Object-Oriented Approach to Programming Logic and Design 10 Understanding the Evolution of Programming Models Modern computer programs – Around since 1940s Oldest programming languages – Programmers worked with memory addresses – Memorized awkward codes associated with machine languages – Written as one piece An Object-Oriented Approach to Programming Logic and Design 11 Understanding the Evolution of Programming Models (cont’d) Newer programming languages – Look like natural language – Use meaningful names for memory locations – Allow creation of self-contained modules or program segments Can be pieced together Can be reused An Object-Oriented Approach to Programming Logic and Design 12 Understanding the Evolution of Programming Models (cont’d) Major program development techniques – Procedural programming Focuses on actions that are carried out Breaks down processes into manageable subtasks – Object-oriented programming – focuses on objects – Objects: entities that have attributes, behaviors, and states Attributes: object features Behaviors: what object does States: set of all values of attributes – Primary difference is focused on early planning stages An Object-Oriented Approach to Programming Logic and Design 13 Understanding the Evolution of Programming Models (cont’d) Object-oriented approach – Defining the objects needed to accomplish a task – Each object maintains its own data and carries out tasks – “Natural” way of thinking about the world Types of object-oriented approach applications – Computer simulations Mimic real-world activities Users apply programs to tasks after the programs are written – Graphical user interfaces (GUIs) Users interact with program in graphical environment An Object-Oriented Approach to Programming Logic and Design 14 Understanding the Steps in the Programming Process System program – A group of many programs Object-oriented approach involves – Analyzing the system – Designing the system – Writing the programs Programmer may do all tasks or use systems analysts and/or software testers An Object-Oriented Approach to Programming Logic and Design 15 Understanding the Steps in the Programming Process (cont’d) Types of software testing – Black box Tester provides input and checks for valid output – White box Tester looks at code, tests all logical paths An Object-Oriented Approach to Programming Logic and Design 16 Analyzing the Program or System Programmers provide a service to users Object-oriented analysis (OOA) – Understand the users’ needs – Needs are often not well defined – Can be difficult and time consuming – Frequently, several program revisions are necessary to satisfy the user An Object-Oriented Approach to Programming Logic and Design 17 Designing the System Designers using object-oriented design (OOD) – Envision the objects needed – Determine objects’ attributes and behaviors – Decide the relationship between objects Describe how objects communicate with and react to each other Expressed as verb phrases Examples of relationships: “Has a,” “is a,” “creates a” Class – A general category that describes entities – May be reused from other programs or modified An Object-Oriented Approach to Programming Logic and Design 18 Writing and Testing Programs Writing a program involves several subtasks – Developing the program logic – Coding the program – Translating the program into machine language – Testing the program An Object-Oriented Approach to Programming Logic and Design 19 Writing and Testing Programs (cont’d) Planning the logic – Heart of the programming process – Also referred to as developing an algorithm – Decide steps to include and their order – Planning tools Flowcharts and pseudocode Both use English-like code – Language syntax not a concern – Desk-checking Reviewing program logic on paper An Object-Oriented Approach to Programming Logic and Design 20 Writing and Testing Programs (cont’d) Coding the program – Writing program statements in a programming language – Object-oriented languages C++, C#, Java, Visual Basic, SmallTalk, OO COBOL, and Simula Create objects and establish communication between them Language chosen determines syntax – Coding usually less difficult than planning step An Object-Oriented Approach to Programming Logic and Design 21 Writing and Testing Programs (cont’d) Use software to translate program into machine language – Many programming languages – Computer knows only machine language (1s and 0s) Compilers or interpreters – Translate English-like, high-level programming language into low-level machine language An Object-Oriented Approach to Programming Logic and Design 22 Writing and Testing Programs (cont’d) Syntax error – Occurs when translator cannot translate the code – Causes: misspellings, illegal grammar, non-existent words – Programmer must correct code and recompile the program before it can execute Creating an executable program Figure 1-1 An Object-Oriented Approach to Programming Logic and Design 23 Writing and Testing Programs (cont’d) Testing the program – Program that is free of syntax errors is not necessarily free of logical errors Must test for logical errors – May require entering of sample data Select test data carefully Error discovery may require changes to program logic An Object-Oriented Approach to Programming Logic and Design 24 Writing and Testing Programs (cont’d) After the program is written and tested – Ready to be used Additional tasks associated with programs written for organizations – Preparing manuals – Training users – Converting existing data to new system’s format Conversion – Actions an organization take to switch to a new program – Can take months or years to accomplish An Object-Oriented Approach to Programming Logic and Design 25 Writing and Testing Programs (cont’d) Maintenance – Process of making required changes after program is put into production Reasons why maintenance may be necessary – Fixing previously undiscovered errors – Updating values such as a tax rate – Changing format of input data – Input data may no longer be available – User wants additional functionality An Object-Oriented Approach to Programming Logic and Design 26 Using Pseudocode and Flowcharts Pseudocode – English-like representation of logical program steps – Looks like programming language but is not – Flexible planning tool Example start input myNumber myAnswer = myNumber * 2 output myAnswer stop Starting and ending statements often used Punctuation and syntax are not important An Object-Oriented Approach to Programming Logic and Design 27 Drawing Flowcharts Flowchart – Pictorial representation of logical program steps – Helps programmer visualize how statements connect – Uses geometric shapes connected with arrows (flowlines) Common flowchart symbols – Input symbols (parallelograms) – Processing symbols (rectangles) – Output symbols (parallelograms) – Terminal symbols (lozenges – flattened ovals) – Decision symbols (diamonds) An Object-Oriented Approach to Programming Logic and Design 28 Drawing Flowcharts (cont’d) Flowchart and pseudocode of a program that doubles a number if it is less than 10 Figure 1-3 An Object-Oriented Approach to Programming Logic and Design 29 Drawing Flowcharts (cont’d) Software applications with flowcharting tools – Microsoft Word – Microsoft PowerPoint – Visio – Visual Logic An Object-Oriented Approach to Programming Logic and Design 30 Understanding Program Comments Program comments – Non-executing statements in a program added for documentation Programmers write comments for themselves and others who read program Minimally, comments should include author, date, and purpose of the program C++, Java, and C# use two forward slashes // This is a comment An Object-Oriented Approach to Programming Logic and Design 31 Annotation symbol used for comments on a flowchart Three-sided box with dashed line connects to Figure 1-4 the step it explains An Object-Oriented Approach to Programming Logic and Design 32 Understanding Programming and User Environments Flowcharts created by hand or with software Pseudocode written by hand or with a word processor – Plain text editor – Text editor in an integrated development environment (IDE) Text editor – Program used to create simple text files – Similar to a word processor, but less robust – Example: Notepad in Microsoft Windows – Complete program does not require much disk space An Object-Oriented Approach to Programming Logic and Design 33 Understanding Programming and User Environments (cont’d) Integrated development environment (IDE) – Software package that includes an editor, compiler, and other programming tools Advantages of using IDE – Uses colors to display various language components – Highlights syntax errors visually – Employs automatic statement completion – Provides tools to step through a program to find errors Disadvantages of using IDE – Requires much more storage space than plain text editor An Object-Oriented Approach to Programming Logic and Design 34 Understanding User Environments A user might execute program in different environments: command line, GUI The logical process is the same regardless of the environment Executing a number-doubling program in a Executing a number-doubling command-line environment program in a GUI environment Figure 1-7 Figure 1-8 An Object-Oriented Approach to Programming Logic and Design 35 Summary Hardware and software accomplish three major operations: input, processing, and output For a program to work properly, you must develop correct logic Logical errors are more difficult to locate than syntax errors Developing a system involves analyzing the system, designing it, and writing the programs Writing programs involves logic planning, coding the program, translating into machine language, and testing An Object-Oriented Approach to Programming Logic and Design 36 Summary (cont’d) Flowcharts and pseudocode are tools for planning a program’s logic Pseudocode is an English-like representation of a program’s logical steps Flowchart is a pictorial representation of a program Program comments document a program Plain text editor or an integrated development environment (IDE) can be used to type a program A program’s data input can be at a command line or a graphical user interface (GUI) An Object-Oriented Approach to Programming Logic and Design 37