java and software design - amazon simple storage · pdf filejava and software design ... via...
TRANSCRIPT
![Page 1: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/1.jpg)
1
Introduction to
Java and Software Design
Jindal Consulting
Chapter 1
Overview of Programming and Problem Solving
Slides by Varun Jindal
![Page 2: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/2.jpg)
2
Chapter 1 Topics
Computer Programming
Programming Life-Cycle Phases
Developing an Algorithm
Machine Language vs. High Level Languages
Compilation, Execution and Interpretation
Computer Components
Computing Profession Ethics and Responsibilities
Problem-Solving Techniques
![Page 3: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/3.jpg)
3
What is Computer Programming?
It is the process of specifying the
data types and the operations for a
computer to apply to data in order to
solve a problem.
STEP 1
STEP 2
STEP 3
. . .
![Page 4: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/4.jpg)
4
Programming Life Cycle Phases
1 Problem-Solving
2 Implementation
3 Maintenance
![Page 5: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/5.jpg)
5
Problem-Solving Phase
ANALYZE the problem and SPECIFY what
the solution must do.
Develop a GENERAL SOLUTION
(ALGORITHM) to solve the problem.
VERIFY that your solution really solves
the problem.
![Page 6: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/6.jpg)
6
Sample Problem
A programmer needs an algorithm to
determine an employee’s weekly
wages.
How would the calculations be done
by hand?
![Page 7: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/7.jpg)
7
One Employee’s Wages
During one week an employee works 52
hours at the hourly pay rate $24.75
How much is the employee’s wages?
Assume a 40.0 hour normal work week.
Assume an overtime pay rate factor of
1.5
40 x $ 24.75 = $ 990.00
12 x 1.5 x $ 24.75 = $ 445.50 ___________
$ 1435.50
![Page 8: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/8.jpg)
8
If hours is over 40.0, then
wages = (40.0 * payRate) + (hours - 40.0) * 1.5
*payRate
otherwise,
wages = hours * payRate
Weekly Wages, in General
RECALL EXAMPLE
( 40 x $ 24.75 ) + ( 12 x 1.5 x $ 24.75 ) = $1435.50
![Page 9: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/9.jpg)
9
An Algorithm is . . .
step-by-step instructions for solving
a problem in a finite amount of time
using a finite amount of data.
![Page 10: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/10.jpg)
10
Algorithm to Determine an
Employee’s Weekly Wages
1. Get the employee’s hourly pay rate
2. Get the hours worked this week
3. Calculate this week’s regular wages
4. Calculate this week’s overtime wages (if any)
5. Add the regular wages to overtime wages (if any)
to determine total wages for the week
![Page 11: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/11.jpg)
11
What is a
Programming Language?
It is a language with strict
grammatical rules, symbols, and
special words used to construct a
computer program.
![Page 12: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/12.jpg)
12
Implementation Phase:
Program
Translating your algorithm into a programming
language is called CODING.
With Java, you use
Documentation -- your written comments
Compiler -- translates your program into Bytecode
Java Virtual Machine -- translates Bytecode into
machine language
![Page 13: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/13.jpg)
13
Implementation Phase: Test
TESTING your program means executing
(running) your program on the computer, to see if
it produces correct results.
If it does not, then you must find out what is
wrong with your program or algorithm and fix it.
This is called debugging.
![Page 14: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/14.jpg)
14
Maintenance Phase
USE and MODIFY the program to meet changing
requirements or correct errors that show up in
using it.
Maintenance begins when your program is put
into use and accounts for the majority of effort
on most programs.
![Page 15: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/15.jpg)
15
Programming Life Cycle
1 Problem-Solving Analysis and Specification
General Solution ( Algorithm )
Verify
2 Implementation Concrete Solution ( Program )
Test
3 Maintenance Use
Maintain
![Page 16: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/16.jpg)
16
Programming Shortcut?
THINKING CODE
TEST
PROBLEM-SOLVING PHASE
IMPLEMENTATION PHASE
Shortcut?
Algorithm
Code
Problem
![Page 17: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/17.jpg)
17
Binary Representation of Data
Circuit states correspond to 0 and 1.
Bit (short for binary digit) refers to a single
0 or 1. Bit patterns represent data.
1 byte = 8 bits
1 KB = 1024 bytes
1 MB = 1024 x 1024 = 1,048,576 bytes
![Page 18: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/18.jpg)
18
How Many Possible Digits?
Binary (Base 2) Numbers use 2 digits:
JUST 0 and 1
Decimal (Base 10) Numbers use 10 digits:
0 THROUGH 9
![Page 19: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/19.jpg)
19
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.
![Page 20: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/20.jpg)
20
Assembly Language
Is machine dependent. Compilers translate
assembly language into machine language.
Runs only on specific type of computer.
Is made up of English-like abbreviations like
LOAD, STORE, ADD.
![Page 21: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/21.jpg)
21
High Level Languages
Are portable. Generally compilers translate
high-level language into machine language.
User writes program 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 22: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/22.jpg)
22
Three C++ Program Stages
other code
from libraries,
etc.
written in
machine
language
written in
machine
language
written in
C++
via compiler via linker
SOURCE OBJECT EXECUTABLE
myprog.cpp myprog.obj myprog.exe
![Page 23: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/23.jpg)
23
Java Portability
Windows PC
running JVM
Java
Program
via compiler
javac
via interpreter
JVM
SOURCE BYTECODE
EXECUTABLES
Payroll.java Payroll.class
Unix box
running JVM
Macintosh
running JVM
Java
Bytecode
![Page 24: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/24.jpg)
24
Java programming language
Achieves portability by using both a compiler and
an interpreter.
First, a Java compiler translates a Java program
into an intermediate Bytecode--not machine
language.
Then, an interpreter program called the Java
Virtual Machine (JVM) translates a single
instruction in the Bytecode program to machine
language and immediately runs it, one at a time.
![Page 25: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/25.jpg)
25
Java’s 5 Basic Control
Structures
A sequence is a series of statements that executes
one after another.
Selection (branch) executes different statements
depending on certain conditions.
Loop (repetition) repeats statements while certain
conditions are met.
A subprogram breaks the program into smaller units.
Asynchronous control handles events that originate
outside our program, such as button clicks.
![Page 26: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/26.jpg)
26
SEQUENCE
Statement Statement Statement . . .
![Page 27: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/27.jpg)
27
SELECTION (branch)
IF Condition THEN Statement1 ELSE Statement2
Statement1
Statement
Statement2
Condition . . .
![Page 28: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/28.jpg)
28
LOOP (repetition)
Statement
. . . False
WHILE Condition DO Statement1
Condition
![Page 29: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/29.jpg)
29
SUBPROGRAM (function)
SUBPROGRAM1 . . .
SUBPROGRAM1
a meaningful collection
of SEQUENCE,
SELECTION, LOOP,
SUBPROGRAM
![Page 30: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/30.jpg)
30
ASYNCHRONOUS CONTROL
EVENT
EVENTHANDLER
a subprogram executed
when an event occurs
![Page 31: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/31.jpg)
31
Object-Oriented Programming
An object is a collection of data values
and associated operations.
A class is a description of one or more
like objects.
![Page 32: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/32.jpg)
32
An Object of class Time
Set
Increment
Write
. .
.
Time
OPERATIONS DATA
Private data:
hrs 8
mins 25
secs 42
![Page 33: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/33.jpg)
33
Basic Computer Components
Arithmetic Logic Unit
Control Unit
Auxiliary
Storage
Device Memory Unit ( RAM & Registers )
Central Processing Unit ( CPU ) Input Device
Output Device
Peripherals
![Page 34: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/34.jpg)
34
Memory Unit
Is an ordered sequence of storage cells,
each capable of holding a piece of data.
Each memory cell has a distinct address.
The information held can be input data,
computed values, or program
instructions.
![Page 35: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/35.jpg)
35
Central Processing Unit (CPU)
Has 2 components to execute program
instructions --
Arithmetic/Logic Unit performs arithmetic
operations, and makes logical operations.
Control Unit controls the order in which your
program instructions are executed.
![Page 36: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/36.jpg)
36
Peripheral Devices
Are input, output, or auxiliary storage devices
attached to a computer.
Input Devices include keyboard and mouse.
Output Devices include printers, video display,
LCD screens.
Auxiliary Storage Devices include disk drives,
CD-ROM and DVD-ROM drives.
![Page 37: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/37.jpg)
37
Computing Profession Ethics
Copy software only with permission from the
copyright holder.
Give credit to another programmer by name
whenever using his/her code.
Use computer resources only with permission.
Guard the privacy of confidential data.
Use software engineering principles to develop
software free from errors.
![Page 38: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/38.jpg)
38
Problem Solving Techniques
ASK QUESTIONS -- about the data, the
process, the output, error conditions.
LOOK FOR FAMILIAR THINGS -- certain
situations arise again and again.
SOLVE BY ANALOGY -- it may give you a
place to start.
USE MEANS-ENDS ANALYSIS -- Determine
the I/O and then work out the details.
![Page 39: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/39.jpg)
39
More Problem Solving Techniques
DIVIDE AND CONQUER -- break up large
problems into manageable units.
BUILDING-BLOCK APPPROACH -- can you
solve small pieces of the problem?
MERGE SOLUTIONS -- instead of joining
them end to end to avoid duplicate steps.
OVERCOME MENTAL BLOCK -- by
rewriting the problem in your own words.
![Page 40: Java and Software Design - Amazon Simple Storage · PDF fileJava and Software Design ... via compiler via linker ... A Basic Java Program public class test { public static void main](https://reader034.vdocuments.us/reader034/viewer/2022042801/5aad25dc7f8b9aa06a8df2ce/html5/thumbnails/40.jpg)
40
A Basic Java Program
public class test {
public static void main (String[ ] args) {
System.out.println("Hello World!");
return;
}
}
1. Save inside a file named test.java
2. To compile: javac test.java (produces test.class)
3. To execute: java test (executes test.class)
1. Prints out Welcome World! to the screen
1
2
3
4
5
6
7
8