2. Programming – Why?
Computers are used for many different purposes
in many different situations.
But, how can they be so versatile?
Answer: They can be programmed
The ability for a computer to be programmed
allows it to do whatever their programs tell them
what to do.
A program is a set of instructions that tell a
computer what to do.
A computer cannot do anything unless it has a
program to tell it what to do.
In this class, we will focus on writing these
programs.
3. Programming – What?
Programs are used to operate the components of a
computer, solve problems or satisfy a want/need.
How long will it take me to get home if I drive x miles per
hour?
I want to be able to tell my friends what I am doing right
now.
Computer Programming is both an Art and a Science
Every aspect of a program must be carefully designed
As an art, programming takes creativity and problem
solving.
There is often no one correct way to solve a problem.
As a science, there are formal and proven methods to
go about creating a programming.
In this course, you will learn both the art and science
of programming.
4. Hardware and Software
Programs can also be called software.
Software refers to the computer programs that a
computer uses to complete a task.
Hardware refers to the physical components that a
computer is made of.
A computer is not one device, but a system of devices
working in tandem.
Each device plays a part.
Major components:
Central Processing Unit
Main Memory
Secondary Storage Devices
Input Devices
Output Devices
5. Central Processing Unit (CPU)
The CPU is the heart and brain of the computer.
The CPU continuously does the following things:
1. Fetch an instruction
2. Follow the instruction
3. Produce some resulting data
The CPU has two parts:
Control Unit
Coordinates the computer’s operations
Determines where to get the next instruction
Regulates the other major components of the computer
Arithmetic and Logic Unit (ALU)
Designed to perform mathematical operations
6. Main Memory
Main memory holds information that the CPU needs to
access quickly.
Namely, the instructions to be executed.
When a program is running, some or all of its instructions
are in main memory.
Memory is divided into sections called bytes that hold
equal amount of data.
Each section is made up of 8 bits.
A Bit is the most basic unit of information a computer can hold.
It is a switch that is either on (1) or off (0)
Each byte is assigned and can be accessed by its
address.
A Memory Address is a unique identifying number associated
with a byte in memory.
Main memory typically is volatile.
Volatile Memory – is memory that when it loses power, the
contents are erased.
7. Secondary Storage
Secondary Storage is memory that can hold data for a long
period of time.
Programs are usually stored in secondary storage and loaded
into main memory as needed.
This forms a hierarchy typically called the memory hierarchy.
Common forms of secondary storage:
Hard Drive
Disk Drive
Solid State Drive
Removable Storage
Floppy Disk
CD-ROM
USB Drives
Other files can be stored in secondary storage:
Documents
Pictures
Whatever else you save on your computer
8. Input Devices
Input is any data the computer collects from the
outside world.
An Input Device is anything that collects data and
sends it to the computer.
Common Input Devices:
Keyboard
Mouse
Scanner
Digital Camera
Disk Drive
USB Drive
9. Output Devices
Output is any data the computer sends to the
outside world.
An Output Device formats data and presents it to
the outside world.
Common Output Devices:
Monitor
Printer
Disk Drive
USB Drive
10. Software
Software refers to the programs that run on a
computer.
Two main categories (for this class):
Operating System (OS)
A set of programs that manages a computer’s hardware
devices and controls their processes.
Most modern operating systems are capable of running
multiple programs at once.
UNIX, Linux, Mac OS X, and Windows are examples
Application Software
Programs that make the computer useful for the user
Solve specific problems or supply a service
Word processors, spreadsheets, databases, etc.
This is what we will be developing in this class.
11. Program Development Cycle
Many programmers follow a sequence of Steps to
create their programs.
1. Analyze – Define the Problem
Make sure that you understand what the program
should do. What should the user be able to
enter? How? How does the program come up
with an answer? What does the program output?
How?
User – a person who uses a computer program.
End User – the user that the program was made for.
2. Design – Plan a Solution for the Problem
Develop a PRECISE sequence of steps to solve
the problem
An algorithm is a precise sequence of steps to solve a
problem.
12. Develop an Algorithm
Imagine you want a program that tells a user how
many stamps they need in order to mail a certain
number of pages.
You need one stamp for every 5 pages
6 pages = 2 stamps
12 pages = 3 stamps
…
Write an algorithm (the steps needed) to solve
this problem
13. Program Development Cycle –
Design (Continued)
Typically a program follows three general steps
1. Input
2. Processing (Formulas)
3. Output
14. Develop an Algorithm, 2nd
Attempt
OK, with this knowledge, try writing the algorithm
again
15. Program Development Cycle –
Design (Continued)
Are those three steps enough?
What about if the user enters “Banana” instead of a number of
sheets?
The program does not know how to find the number of stamps
required to mail “Banana” number of sheets
In order for the program to run without crashing, our algorithm
must make sure that the user inputs some valid data.
There are two main ways of doing this:
1. Prevention – Making sure that the user is not physically able to enter in
invalid data.
2. Validation – Allowing the user to enter invalid data, but checking it to
make sure it is valid before processing.
So, there are really 4 general steps most programs follow:
1. Input
1. Read Input
2. Validate Input
2. Process
3. Output
16. Develop an Algorithm, 3rd Attempt
OK, now with THAT information, try developing
the algorithm
One good algorithm developed could look like
this:
1. Request the number of sheets of paper from the
user; call it Sheets (Input/Read)
2. Make sure Sheets is a positive whole number
(Input/Validation)
3. Divide Sheets by 5 (Processing)
4. Round the result from step 3 up to the highest
whole number; call it Stamps (Processing)
5. Reply with the number Stamps (Output)
17. Programming Tools
Flowcharts – A chart that consists of symbols
connected by arrows. Within each symbol is a
phrase presenting the activity at that step. The
shape of the symbol indicates the type of
operation that is to occur.
Hierarchy Charts – A chart that shows the overall
program structure. These charts describe what
each part, or module, does and how they are
related. These modules intentionally omit details
of how they work.
Pseudocode – an abbreviated plain English
version of actual computer code. Kind of a mix
between English and code. THERE IS NO
OFFICIAL SYNTAX TO PSEUDOCODE.
18. Flow Charts
Flow Line - indicates the flow of logic
Terminal – indicates the start or end of a task
Input/Output – used for input or output
operations. What is to be input or output should
be in the figure.
19. Flow Charts
Processing - used to show a processing step.
The instructions are displayed in the figure.
Decision – used to show when a decision needs
to be made. Lines for yes and no come out of it.
The question is displayed in the figure.
Connector – Used to join flow lines.
22. Program Development Cycle
3. Write the Code – Implement a solution
The instructions in a programming language
collectively called code.
Your code should be a translation of your
algorithm developed into the programming
language.
In this class we use Java, but there are many other
programming languages: C, C++, C#, Ruby, Python,
Visual Basic, etc.
This is the major focus of this course, but note
that you need to be able to think algorithmically in
order to do this.
Meaning, you need to be able to logically solve the
problem in order to write a program for it.
23. Program Development Cycle
4. Testing and Debugging – Locate and remove any errors
in the program
Testing is the process of finding errors in a program
Debugging is the process of removing errors in a program.
An error in a program is called a bug.
We will talk more specifically about the kinds of errors that
can occur in a program once we start programming.
5. Complete All Documentation – Organize the material that
describes the program.
Documentation is any material whose purpose is to allow
another person or programmer to use or understand the
program
Two kinds of documentation:
1. External Documentation – Material outside of the code files that
describe the program.
2. Internal Documentation – Lines inside of a code file that do nothing
except describe details of the program. In Java, these are called
comments.