Introduction To Computers and Programming
Introduction To Computers and Programming
Computers and
Programming
Chapter 1
1
Ch 1 - Introduction to Computers and Programming
• Hardware Terminology
• Main Memory
• Auxiliary Memory
• Drives
• Writing Algorithms Using Pseudocode
• Programming Language Code
• The Compilation Process for Non-Java Programs
• Object Code
• Portability
• Java Virtual Machine
• The Compilation Process for Java Programs
1
• History of Java
Hardware Terminology
• Computer system = all of the components shown below.
2
Hardware Terminology
• I/O = input and output devices
• Input examples: keyboard, mouse, CPU
scanner. input output
devices devices
• Output examples: monitor (screen),
printer. main memory
…
• Computers don't understand the alphabet. They only
understand 0’s and 1’s. So computers map each
50,000
alphabet character to a series of sixteen 0's and 1's. E
For example, the letter E is 00000000 01000101. So 50,001
in storing the letter E, main memory actually stores
00000000 01000101. Each of the 0's and 1's is called a 50,002
m
bit. And each of the eight-bit groupings is a byte.
50,003
• The capacity (size) of memory is described in terms
of number of bytes. 50,004
u
• RAM capacities in a typical computer range from 1 50,005
GB (gigabyte) to 8 GB.
…
• RAM is volatile – data is lost when power is turned
off.
5
Auxiliary Memory
• Auxiliary memory is for saving
data permanently. It's non-volatile.
• Auxiliary memory comes in many
different forms, the most common
of which are hard disks, compact
discs, and USB flash drives.
Those things are called storage
devices.
Storage capacities:
Typical hard disk: 160GB up to 1 TB (terabyte).
Compact discs:
For CD-ROMs, CD-Rs, and CD-RWs: 700 MB (megabyte)
For DVDs, DVD-Rs, and DVD-RWs: 4.7 GB up to 8.5 GB
6 Typical USB flash drives: 4 GB up to 64 GB.
Drives
• A drive is a mechanism that enables the computer system to
access (read from and write to) data on a storage device. A
disk drive is a drive for a hard disk, CD-ROM, or diskette.
• When using your computer, you’ll sometimes need to copy
data from one place to another. To specify the storage media
on which the data resides, you’ll need to use the storage
media’s drive letter followed by a colon.
• Diskette drives are referred to as A:.
• Hard disk drives are usually referred to as C: or D:
• CD-ROM drives are usually referred to as D: or E:
• USB flash drives are usually referred to as E: or F:
7
Common Computer-Hardware Vocabulary
8
Writing Algorithms Using Pseudocode
• A program is a set of instructions that can be used to solve a problem.
• The first step in writing a program is writing a draft of your program
where your focus is on the basic logic, not the specific details. The draft
should include instructions that are coherent and logically correct, but
there's no need to worry about missing minor steps or misspelling words.
Such a draft program is referred to as an algorithm.
• For example, a cake recipe is an algorithm.
• Algorithms are written with pseudocode – similar to regular programming
code except that precise syntax (words, grammar, punctuation) isn't
required.
• Example:
Write an algorithm that finds the average miles per hour value for a given car
trip.
Sample input
starting location = 100 ending location = 200
9
starting time = 2:00 ending time = 4:00
Programming Language Code
• A programming language is a language that uses specially defined
words, grammar, and punctuation that a computer understands.
• Some of the more popular programming languages are VisualBasic, C++,
and Java.
• Example:
Write Java code that finds the average miles per hour value for a given car trip.
• Initially, programming language code might be harder for you to
understand than pseudocode.
• But after you gain experience with a programming language, you may
become so comfortable with it that you're able to skip the algorithm
pseudocode step and start coding with the programming language
directly.
• However, for larger programs, I recommend that you do not skip the
algorithm pseudocode step. Why?
10
The Compilation Process for Non-Java Programs
source code
(programming
language Programmers write this.
instructions)
Compilers compile
source code into
object code.
object code
(binary Computers run this.
instructions)
12
Object Code
• Object code is a set of binary-format instructions that can be directly
run by a computer to solve a problem. A binary-format instruction is
made up of all 0’s and 1’s, because computers understand only 0’s and
1’s. Here's an example of an object-code instruction:
0100001111101010
• This particular object-code instruction is referred to as a 16-bit
instruction because each of the 0’s and 1’s is a bit, and there are 16 of
them.
• Each object-code instruction is in charge of only a simple computer
task. For example, an object-code instruction could possibly be in
charge of copying a single number from some place in main memory to
some place in the CPU.
• Programmers sometimes refer to object code as machine code. Object
code is called machine code because it's written in binary and that's
what
13 a computer “machine” understands.
Portability
• A piece of software is portable if it can be used on many different types
of computers.
• Object code is not very portable. As you know, object code is comprised
of binary-format instructions. Those binary-format instructions are
intimately tied to a particular type of computer. If you've got object
code that was created on a type X computer, then the object code can
run only on a type X computer.
• The Java solution to improve portability:
• Java compilers don't compile all the way down to object code. Instead, they
compile down to bytecode, which possesses the best features of both object
code and source code:
• Like object code, bytecode uses a format that works closely with computer
hardware, so it runs fast.
14 • Like source code, bytecode is generic, so it can be run on any type of
computer.
Java Virtual Machine
• How can bytecode be run on any type of computer?
• As a Java program’s bytecode runs, the bytecode is
translated into object code by the computer's bytecode
interpreter program. The bytecode interpreter program is
known as the Java Virtual Machine, or JVM for short. The
next slide shows how the JVM translates bytecode to object
code. It also shows how a Java compiler translates source
code to bytecode.
15
The Compilation Process for Java Programs
Java source
code
Java compilers compile
source code into
bytecode.
bytecode
When a Java program is
run, the JVM translates
bytecode to object code.
object code
16
History of Java
• In the early 1990's, putting intelligence into home appliances was
thought to be the next "hot" technology.
• Examples of intelligent home appliances:
• Coffee pots and lights that can be controlled by a computer's programs.
• Televisions that can be controlled by an interactive television device's
programs.
• Anticipating a strong market for such things, Sun Microsystems in 1991
funded a research project (code named Green) whose goal was to
develop software for intelligent home appliances.
• An intelligent home appliance's intelligence comes from its embedded
processor chips and the software that runs on the processor chips.
• Appliance processor chips change often because engineers continually
find ways to make processor chips smaller, less expensive, and more
powerful.
• To17 handle the frequent turnover of new chips, appliance software must
be extremely portable.
History of Java
• Originally, Sun planned to use C++ for its home appliance software, but
they soon realized that C++ was less than ideal because it wasn't
portable enough and it relied too heavily on hard-to-maintain things
called pointers.
• Thus, rather than write C++ software and fight C++'s inherent
deficiencies, Sun decided to develop a whole new programming
language to handle its home appliance software needs.
• Their new language was originally named Oak (for the tree that was
outside project leader James Gosling's window), but it was soon
changed to Java.
• When the home appliance software work dried up, Java almost died
before being released.
• Fortunately
18
for Java, the World Wide Web exploded in popularity and
Sun realized it could capitalize on that.
History of Java
• Web pages have to be very portable because they can be downloaded
onto any type of computer.
• What's the standard language used for Web pages?
• Java programs are very portable and they're better than HTML in terms
of providing user interaction capabilities.
• Java programs that are embedded in web pages are called applets.
• Although applets still play a significant role in Java's current success,
some of the other types of Java programs have surpassed applets in
terms of popularity.
• In this course, we cover Standard Edition (SE) Java applications. They
are Java programs that run on a standard computer – a desktop or a
laptop, without the need of the Internet.
19
References
• http://highered.mheducation.com/sites/0073047023/instructor_
view0/index.html
21