Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
-
date post
20-Dec-2015 -
Category
Documents
-
view
227 -
download
2
Transcript of Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
![Page 1: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/1.jpg)
Chapter 1Introduction to Object-
Oriented Programming andProblem Solving
![Page 2: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/2.jpg)
2
Knowledge Goals
• Understand what a computer program is• Know the three phases of the software life
cycle• Understand what an algorithm is• Learn what a high-level programming
language is• Understand the difference between machine
code and Bytecode
![Page 3: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/3.jpg)
3
Knowledge Goals
• Understand the compilation, execution, and interpretation processes
• Learn what the major components of a computer are and how they work together
• Understand the concept of an object in the context of computer problem solving
![Page 4: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/4.jpg)
4
Skills Goals
• List the basic stages involved in writing a computer application
• Distinguish between hardware and software• List the ways of structuring code in a Java
application• Name several problem-solving techniques• Choose an applicable problem-solving
technique• Identify the objects in a problem statement
How can you distinguish the knowledge goals from the skills goals?
![Page 5: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/5.jpg)
5
What is Programming?ComputerA programmable device that can store, retrieve, and process data Computer programmingThe process of specifying objects and the ways in which those objects interact to solve problemsProgrammingWriting out instructions for solving a problem or performing a task Computer programInstructions defining a set of objects and orchestrating their interactions to solve a problem
![Page 6: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/6.jpg)
6
How do we write a Program?
Water-fall
Model
![Page 7: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/7.jpg)
7
How do we write a program …
Problem-Solving Phase
• Understand (define) the problem and identify what the solution must do
• Specify the objects and their interactions to solve the problem
• Follow the steps exactly to see if the solution really does solve the problem
![Page 8: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/8.jpg)
8
How do we write a program …
Implementation Phase
• Translate the object specifications (the general solution) into a programming language
• Have the computer carry out the solution and check the results
What if the solution isn't correct?
![Page 9: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/9.jpg)
9
How do we write a program …
Maintenance Phase
• Use the program• Modify the program to meet changing
requirements, to enhance its functionality, or to correct any errors that show up in using it
![Page 10: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/10.jpg)
10
How do we write a program …
Can'twe
shortenthe
process?
![Page 11: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/11.jpg)
11
How can a computer work with objects?
Information
Any knowledge that can be communicated
Data
Information in a form that a computer can use
Object
A collection of data values and associated operations
How does all this fit together?
![Page 12: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/12.jpg)
12
How can a computer work with objects…
Data with
relatedoperationsrepresentsinformation
asobjects
![Page 13: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/13.jpg)
13
How can a computer work with objects…
Objects contain data and operations
Consider a Name object
What sort of data would this object contain?
What sort of operations might we need to manipulate the data?
![Page 14: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/14.jpg)
14
How can a computer work with objects…
Whatother
operationsmight
wewant
?
![Page 15: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/15.jpg)
15
Classes of Objects
What about multiple objects with the same properties?
Class
A specification of the representation of a particular kind of object, in terms of data and behavior (operations)
![Page 16: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/16.jpg)
16
Classes of Objects
Date class
data: month, day, year
operations: set and return month, day, year
Date object (an instance of a class)
June
23
2004
![Page 17: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/17.jpg)
17
What is an algorithm?
How are the operations specified?
Algorithm
Instructions for solving a problem in a finite amount of time using a finite amount of data
![Page 18: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/18.jpg)
18
What is an algorithm?Objects: Key, Transmission, Gas Pedal, Engine, Phone
1. Insert the key.2. Make sure the transmission is in Park (or Neutral).3. Depress the gas pedal.4. Turn the key to the start position.5. If the engine starts within six seconds, release the key.6. If the engine doesn’t start within six seconds, release the key and gas pedal, wait ten seconds, and repeat Steps 3 through 6, but not more than five times.7. If the car doesn’t start, phone your mechanic.
![Page 19: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/19.jpg)
19
What is an algorithm?
Once we have the algorithm, then what?
We translate the algorithm into statements in a programming language
Say again?
![Page 20: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/20.jpg)
20
What is a programming language?
Programming language
A set of rules, symbols and special words used to construct a computer program
Statements
Specific combinations of symbols and special words that are defined by a programming language to be complete units within a program; analogous to sentences in a human language
Code
Instructions for a computer that are written programming language
![Page 21: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/21.jpg)
21
What is a programming language?
There isno
singlewayto
implementan
algorithm
![Page 22: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/22.jpg)
22
What kind of instructions …
Computer
A programmable device that can store, retrieve, and process data
Implies
accept data, send data, perform arithmetic operations, perform logical operations
![Page 23: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/23.jpg)
23
What kind of instructions …
Control structures
Statements that organize the instructions that specify the behaviors of objects
- sequence- selection- repetition- subprograms- asynchronous
![Page 24: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/24.jpg)
24
What kind of instructions …
![Page 25: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/25.jpg)
25
What kind of instructions …
![Page 26: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/26.jpg)
26
Software Maintenance
Maintaining software accounts for the majority of its live cycle (i.e., old programs never die, they just get modified)
Where were you on January 1, 2000?
![Page 27: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/27.jpg)
27
Software Maintenance
Software maintenance tips-Check existing code-Make changes to a copy-Change related aspects to leave clean,
consistent code for next change- Keep backup copies
Software maintenance is not glamorousbut it is necessary!
![Page 28: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/28.jpg)
28
How It All Works
Machine language
The language, made up of binary-coded instructions, that is used directly by the computer
Assembly language
A low-level programming language in which a mnemonic represents each machine language instruction for a particular computer
![Page 29: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/29.jpg)
29
How It All Works
High-level language:
R1 = R3 + R5
R2 = R6 - R1
![Page 30: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/30.jpg)
30
How It All Works
Levelsof
abstraction
![Page 31: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/31.jpg)
31
Machine Language
• Is not portable
• Runs only on specific type of computer
• Is made up of binary-coded instructions (strings of 0s and 1s)
• Is the language that can be directly used by the computer
Why is portability important?
![Page 32: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/32.jpg)
32
Assembly Languages
• Are machine dependent and run on only one specific type of computer
• Are translated into machine code by assemblers
• Are made up of English-like abbreviations such as LOAD, STORE, or ADD
Better than machine language…
![Page 33: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/33.jpg)
33
High-Level Languages
• Are portable • Are translated into machine code by
compilers• Instructions are written in language similar to
natural language• Examples -- FORTRAN, COBOL, Pascal,
C, C++• Many are standardized by ISO/ANSI to
provide an official description of the language
![Page 34: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/34.jpg)
34
High-Level Languages
Source code
Instructions written in a high-level language
Object code
A machine language version derived from source code
![Page 35: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/35.jpg)
35
Portability
Compiler portability
![Page 36: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/36.jpg)
36
Java's Road to Portability
Bytecode
A standardized machine language into which Java source code is compiled
![Page 37: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/37.jpg)
37
High-Level Languages
Direct execution
The process by which a computer performs the actions specified in a machine-language program
Interpretation
The translation, while a program is running, of non-machine language instructions (such as Bytecode) into executable operations
Virtual machine
A program that makes one computer act like another
![Page 38: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/38.jpg)
38
High-Level Languages
Do you understand the differencebetween C++ & Java portability?
![Page 39: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/39.jpg)
39
What's inside the computer?
Can you
nameany
externaldevices
?
![Page 40: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/40.jpg)
40
What's inside the computer?
Memory unit
Internal data storage inside a computer, made up of an ordered sequence of addressable cells
Addressable?
![Page 41: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/41.jpg)
41
What's inside the computer?
Executes instructions
The Manager
Does operations
Holds data and instructions
![Page 42: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/42.jpg)
42
What's inside the computer?
Hardware
The physical components of a computer
Software
Computer programs; the set of all programs available on a computer
Clock
An electrical circuit that sends out a train of pulses to coordinate the actions of the computer's hardware components; its speed is measured in hertz (cycles per second)
![Page 43: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/43.jpg)
43
What is system software?User/computer interface
A connecting link that translates between the computer's internal representation of data and representations that humans are able to work with
Interactive system
A system that supports direct communication between the user and the computer
System software
The set of programs that simplifies the user/ communication interface
Operating system
Set of programs that manages all the computer's resources
![Page 44: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/44.jpg)
44
What is system software?
Seehow
itallfits
together?
![Page 45: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/45.jpg)
45
Problem Solving
Problem solving
The act of finding a solution to a perplexing, distressing, vexing, or unsettled question
How do you define problem solving?
![Page 46: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/46.jpg)
46
Problem Solving
How to Solve It: A New Aspect of Mathematical Method by George Polya
"How to solve it list" written within the context of mathematical problems
But the list is quite general
We can use it to solve computerrelated problems!
![Page 47: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/47.jpg)
47
Problem Solving
How do you solve problems?
Understand the problem
Devise a plan
Carry out the plan
Look back
![Page 48: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/48.jpg)
48
Problem-Solving Techniques
Ask questions!
-What do I know about the problem?
-What is the information that I have to process in order the find the solution?
-What does the solution look like?
-What sort of special cases exist?
-How will I recognize that I have found the solution?
![Page 49: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/49.jpg)
49
Problem-Solving Techniques
Never reinvent the wheel!
Similar problems come up again and again in different guises
A good programmer recognizes a task or subtask that has been solved before and plugs in the solution
Can you think of two similar problems?
![Page 50: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/50.jpg)
50
Problem-Solving Techniques
Look for familiar things
![Page 51: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/51.jpg)
51
Problem-Solving Techniques
Solve by analogy
![Page 52: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/52.jpg)
52
Problem-Solving Techniques
Means-end analysis
![Page 53: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/53.jpg)
53
Problem-Solving Techniques
Divide and conquer
![Page 54: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/54.jpg)
54
Problem-Solving Techniques
Building-block approach
![Page 55: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/55.jpg)
55
Problem-Solving Techniques
Merging solutions
![Page 56: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/56.jpg)
56
Problem-Solving Techniques
Object-Oriented Problem Solving Stages
- Brainstorm List all objects that might contribute to solution
- Filter Review the classes to find duplicates or remove unnecessary objects
-Responsibilities Determine the operations associated with a class of objects
-Collaborations Determine the interactions between classes
![Page 57: Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.](https://reader036.fdocuments.in/reader036/viewer/2022062407/56649d495503460f94a24e9d/html5/thumbnails/57.jpg)
57
Problem-Solving Techniques
- Attributes Determine the values defined by a class that are used to represent its objects
-Driver Write a program for creating the objects and coordinating their collaborations to solve the problem