Computers: Tools for an Information Age

Download Report

Transcript Computers: Tools for an Information Age

Module 10
Programming _ Tell computers what to do
Problems →Solutions → Algorithm
Generations of programming languages

machine, assembly high level, very high level, natural
Examples of programming languages

Fortran, cobal, C, C++, Java, Basic, VB
Programming technique
procedure oriented programming
 object-oriented programming

Copyright © 2003 by Prentice Hall
Programming
Program – a set of detailed, step-by-step
instructions that directs the computer to do
what you want it to do
Programming language – a set of rules
that provides a way of telling the computer
what operations to perform
Module 10: programming
2
The Programming Process
Five main steps





Defining the problem
Planning the solution
Coding the program
Testing the program
Documenting the program
Module 10: programming
3
Defining the Problem
Develop a written agreement that
specifies:



The input data
The desired output
The processing required to convert
Example:
Input: a list of numbers
Output: the mean of the numbers
Module 10: programming
4
Planning the Solution
Find out a solution to the problem
Algorithm – a detailed, step-by-step solution to the
problem
Flow chart or pseudo code can be used as a tool
Check the solution

Carry out each step of the algorithm with pencil and paper
Example: Given a[1], a[2], ……, a[100]
n = 100
s ← 0, s ← s+a[1], s ← s+a[2], …, s ← s+a[100]
mean = s/n;
Module 10: programming
5
Planning Tools
Flowchart – a pictorial
representation of the algorithm
Pseudocode – English-like
language
e.g.
Input: a[i], i = 1, …, 100
s←0
for i from 1 to 100 do
s ← a[i]
output: s / n
Start
read a[i]
s=0
i =1
s = s +a[i]
i = i +1
i = 100?
No
Yes
s/i
Stop
Module 10: programming
6
Coding the Program
Translating the algorithm from the planning
stage into a formal programming language
All languages have syntax rules


Similar to grammatical rules
The computer will reject a program with even a minor
syntax error
Programs can be keyed into the computer by
using a text editor
See examples
find the minimum, maximum, sorting, median
variance, standard deviation
Module 10: programming
7
Testing the Program
Two phases of testing the program

Translation
Converting the program you wrote into the binary
instructions the CPU understands

Debugging
Identifying and correcting logic errors in the
program
Module 10: programming
8
Translation
Compiler translates the program (source
module) into a machine language version
(object module)



If the compiler detects syntax errors, it will
produce messages describing those errors
If no syntax errors exist, the object module will be
linked to create a load module
Load module is executed by the computer
Module 10: programming
9
Module 10: programming
10
Documenting the Program
Materials are generated at each part of the
process
Common examples of documentation





Flowchart and/or pseudocode
Comments within the source code
Testing procedures
Layouts of input and output records
A narrative description of the program
Module 10: programming
11
Levels of Languages
Lower-level languages – more like the 0s
and 1s the computer itself uses
Higher-level languages – more like the
languages people use
Divided into five generations
Module 10: programming
12
Five Generations of Languages
Machine language
Assembly languages
High-level languages
Very high-level languages
Natural languages
Module 10: programming
13
Machine Language
Programs and memory locations are
written in strings of 0s and 1s
Problems with machine languages


Programs are difficult to write and debug
Each computer has its own machine language
Only option available to early
programmers
Module 10: programming
14
Assembly Languages
Substitute mnemonic codes for 0s and 1s


For example, A for add, C for compare, etc.
Use names rather than binary addresses for
memory locations
Require an assembler to translate the
program into machine language
Still used for programming chips and
writing utility programs
Module 10: programming
15
High-Level Languages
Transformed programming


Programmers could focus on solving
problems rather than manipulating hardware
Programs could be written and debugged
much more quickly
Requires a compiler to convert the
statements into machine language

Each computer has its own version of a
compiler for each language
Module 10: programming
16
Very High-Level Languages
Also called fourth-generation languages
(4GLs)
Considered nonprocedural languages


The programmer specifies the desired results,
and the language develops the solution
Programmers can be about 10 times more
productive using a fourth-generation language
than a third-generation language
Module 10: programming
17
Natural Languages
Resemble written or spoken English

Programs can be written in a natural syntax,
rather than in the syntax rules of a programming
language
The language translates the instructions into
code the computer can execute
Module 10: programming
18
Examples of High Level Programming Languages
FORTRAN
COBOL
BASIC
C
Java
Module 10: programming
19
FORTRAN
The first high-level language
Stands for FORmula TRANslator
Used primarily for engineering, mathematical,
and scientific tasks
Good for numerical computation
Module 10: programming
20
COBOL
Stands for COmmon Business-Oriented
Language
Used primarily for business requirements


Processes large data files
Produces well-formatted reports
Module 10: programming
21
BASIC
Stands for Beginners’ All-Purpose Symbolic
Instruction Code
Developed to teach programming to college
students
Became very popular with the introduction of
the microcomputer
Module 10: programming
22
C
Originally designed to write systems software

Offers the ease of use of a high-level language with
the efficiency of an assembly language
Very portable – can be used with virtually every
combination of computer and operating system
Module 10: programming
23
Java
A network-friendly programming language that
permits a piece of software to run directly on
many different platforms

Allows programmers to write one version of the
program, rather than a separate version of each
platform
Very useful for Internet development

Java applets can run in the user’s Web browser
Module 10: programming
24
Procedure Oriented Programming
Features: linear style, the program has a
main stream
Fortran, basic, C are languages for POP
Common features



Data type and variable: integer, floating point, list, etc
Modular: routine, procedure, function and library
Programming constructs:
serial, selection/branch, repetition/loop
Module 10: programming
25
Object-Oriented Programming
Object – a self-contained unit that contains both
data and its related functions
Key terms in object-oriented programming


Encapsulation – an object isolates both its data and
its related instructions
Attributes – facts that describe the object
Also called properties


Methods – instructions that tell the object to do
something
Messages – an outside stimulus that results in the
change of the state of an object
Module 10: programming
26
Using Objects
Programmers define classes of objects


The class contains all attributes that are unique
to objects of that class
An object is an instance (occurrence) of a class
Objects are arranged hierarchically in
classes and subclasses



Subclasses are derived from classes
Inheritance – a subclass possesses all attributes
of the class from which it is derived
Additional attributes can be coded in the
subclasses
Module 10: programming
27
Activating the Object
A message is sent to the object, telling it to
do something

The object’s methods tell it how to do it
Polymorphism – each object has its own
way to process the message

For example, the class may have a Move
method, but each subclass implements that
method differently
Module 10: programming
28
Object-Oriented Languages
C++
Java
C#
Visual Basic
Module 10: programming
29
C++
An enhancement of the C language


Includes all features of C
Adds support for object-oriented programming
Can be used as simply an improvement of
C, without the object-oriented features
Module 10: programming
30
Java
A pure object-oriented program
Used to create small programs called
applets

Applets can be delivered over the Web and
run on any platform
Module 10: programming
31
C#
Microsoft’s answer to Java
Has the same advantages over C++ that
Java has
Designed to work within Microsoft’s .NET
environment

.NET is designed for building, deploying, and
running Web-based applications
Module 10: programming
32
Visual Basic
Allows programmer to create Windows-like user
interfaces


Programmer drags a control (button, text box, etc.) onto the form
VB creates the code associated with that control
VB is event-driven

The user controls the program
Previous versions supported some object technology
The current version, VB.NET, is the first to support
inheritance and polymorphism

These two traits are required for a true object-oriented language
Module 10: programming
33