High-Level Languages
Well known
high-level programming languages include:
High Level Languages
LISP
(List Processing): developed to process non-numeric data like characters,
words, and other symbols
BASIC (Beginners All-purpose Symbolic Instruction
Code): developed as an easy-to-learn language for beginners
High-Level Languages
Pascal: designed to
encourage structured programming
C: developed as
a tool for programming operating systems such as UNIX
High-Level Languages
C++: a variation of C
that uses object-oriented programming
High-Level Languages
Ada: a massive language developed for the US Government
PROLOG: designed for working with logical relationships
between facts
LOGO: is a dialect
of LISP specially designed for children.
Structured Programming
ό
makes programming
easier and more
productive by
writing many
small programs
Structured Programming
ό
A program is well
structured if it is:
made up of logically cohesive
modules
arranged in a hierarchy
straightforward and
readable
Object-Oriented Programming
OOP is a collection of interactive objects that
contain both data and instructions
Visual Programming
Visual Programming allows programmers to write
programs by drawing pictures and pointing to objects on the screen
Languages for Users
Macro or scripting languages used to automate
repetitive tasks
Some macro languages
require you to design each macro as if you were writing a program
Other macro makers
memorize actions and automatically create the macro for you
Languages for Users
Fourth-generation
languages (4GLs) are easier to use
and more like natural language
Component Software
Component
Software allows users to construct small custom applications from software
components
Programming for the Web
HTML
instructs Web browsers how to arrange text, graphics, and multimedia elements
on Web pages
JavaScript
is an interpreted scripting language for enhancing HTML code
Java is a full-featured object oriented language used
to create Web applets
Programming for the Web
Perl
allows you to write scripts to process text such as complex Web forms
XML is a powerful markup language that overcomes many
of the HTML limitations
The Future of Programming?
Trends:
Natural languages and
artificial intelligence will provide users with programming tools that will
understand the language of the user
The distinction between
user and programmer will begin to fade. Users wont need to master complicated
programming languages to construct applications
Systems Analysis and
the Systems Life Cycle
όa collections of people,
machines, data, and methods organized to accomplish specific functions and to
solve a problem.
Systems Analysis and
the Systems Life Cycle
System Life Cycle - a sequence of steps or phases the cycle passes
through between the time the system is conceived and the time it is phased out
Systems analyst - a computer professional primarily responsible for
developing and managing a system as it progresses through these phases
The Systems
Development Life Cycle
The systems development
life cycle is a sequence of steps followed by a project team
Investigation:
Why is there a problem?
Analysis:
What is the problem?
Design:
How can the problem be solved?
The Systems
Development Life Cycle
Development:
teams of programmers and others begin developing the various parts of the
system
Implementation:
the system is put to work
Maintenance:
ongoing upgrades
Retirement:
phasing out the system
Investigation
defines the problem
identifies the
information needs of the organization
examines the current
system, needs of organization,
studies feasibility of
changing systems (this phase produces a feasibility study)
Analysis
gathers documents
interviews users
observes the system in
action
generally gathers and
analyzes data to understand current system
Design
focuses on how
system requirements will be met
a system flowchart is
created to show relationships among programs, files, input, and output
Development
The
development phase is a process of turning the design specifications into a real
working system.
The
initial testing of the system is known as alpha testing and potential
users do beta testing after the bugs are worked out.
Development
Includes a mix of:
Scheduling
Hardware
Software
Communications
Purchasing
documentation and
programming
Implementation
This
phase may involve extensive training and technical user support.
Implementation
includes user education and training, equipment replacement, file conversion,
and careful monitoring of the new system for problems.
Maintenance
Involves a combination of:
Monitoring
Evaluating
Repairing
Enhancing the system
throughout the life cycle
Retirement
At
some point in the life of a system, on-going maintenance is not enough.
The
needs of an organization change, users expectations change, and there is
always new technology available.
The Science of Computing
Computer
theory applies concepts of theoretical mathematics to computational
problems
Algorithms
are logical underpinnings of computer programs
Data
structures define the logical structure of data
The Science of Computing
Programming
concepts and languages have evolved
through generations
Computer
architecture deals with the way hardware and software work together
The Science of Computing
Management
information systems (MIS) is part computer science, part business
MIS
specialists focus on developing systems in timely, reliable, and useful
information to managers in business
MIS
applies theoretical concepts of computer science to real-world problems
The Science of Computing
Software
engineering is a relatively new branch of computer science that attempts to
apply engineering principles and techniques to the less-than-concrete world of
computer software
The State of Software
The problems faced by
software engineers affect all of us
Two inherent problems in
software development are cost and reliability
Software Problems
Cost:
The
cost of hardware has dropped but the cost of developing software has continued
to rise
Software Solutions
Responding to the cost
and reliability issues, computer scientists are working to improve:
Programming Techniques
Programming Environments
Program Verification
Clean Room Programming
Human Management
Thinking Machines
Can
machines think?
To
answer that question,
we must explore:
Definitions
of intelligence
The
Turing test
What
artificial
intelligence (AI) is
Definitions of Intelligence
Some definitions of
intelligence include:
Ability to learn from
experience
Power of thought
Ability to reason
Ability to perceive
relations
Power of insight
Ability to use tools
Intuition
The Turing Test
In 1950, British mathematician Alan Turing proposed a
test to determine if a machine had intelligence
What Is Artificial Intelligence?
Artificial
intelligence is the study of:
ideas which enable
computers to do the things that make people intelligent.
Patrick Henry Winston
how to make
computers do things at which, at the moment, people are better.
Elaine Rich
the computations
that make it possible to perceive, reason, and act.
Patrick
Henry Winston
Two Approaches to AI
Simulate
Human Mental Processes
Design
Non-human Mental Processes
Designing Intelligent Machines
Some branches of AI
research include:
Games
Natural Languages
Knowledge Bases
and Expert Systems
Pattern Recognition
Neural Networks
Robotics
Opening Games
Simple
games have limited domains. This allows AI researchers to develop strategies
for:
Searching
possible moves
Heuristics
(rules of thumb)
Recognizing
patterns (new or old one?)
Machine
learning (machine becomes a better player over time)
Natural-Language Communication
AI researchers would
like to develop a machine that understands the words spoken by a person
(natural language)
Machine Translation Traps
Required a parsing
program to break down words from one language and convert them into another
The meaning was lost in
the translation.
For example:
Out of sight, out of
mind = Invisible idiot
The spirit is willing,
but the flesh is weak = The wine is agreeable, but the meat is rotten
Conversation without Communication
AI
researchers attempted to converse with a machine using the software program
ELIZA
ELIZA
had a limited natural language vocabulary
In
order to communicate with humans, ELIZA had to ask and be asked questions
Conversation without Communication
However,
ELIZA had no understanding of what was being communicated
Nonsense and Common Sense
AI
researchers attempted to learn more about natural languages by using the
program RACTER to write a book
However,
despite a large and perfect English language vocabulary, RACTERs book was
nonsense
Machines
are good at syntax but cannot compete with humans at semantics
Knowledge Bases and
Expert Systems
Machines
are good at storing and retrieving facts and figures
People
are good at storing and manipulating knowledge
Knowledge
bases contain facts and a system of rules for determining the changing
relationship between those facts
Knowledge Bases and
Expert Systems
Expert
systems
are software
programs
designed to
replicate human
decision-making
processes
Examples of Expert Systems
Medicine:
medical facts and knowledge have been entered into an expert system to aid
physicians in diagnosing
their patients
Examples of Expert Systems
Factories: expert
systems are used to locate parts, tools, and techniques for the assembly of
many kinds of products
Financial: automation of
banking functions and transactions is being done by many expert systems
Expert Systems in Perspective
An
expert system can:
Help
train new employees
Reduce
the number of human errors
Take
care of routine tasks so workers can focus on more challenging jobs
Provide
expertise when no experts are available
Expert Systems in Perspective
Preserve
the knowledge of experts after those experts leave an organization
Combine
the knowledge of several experts
Make
knowledge available to more people
Pattern Recognition:
Making Sense of the World
Pattern
recognition involves identifying recurring patterns in input data with the goal
of understanding or categorizing that input
Image
Analysis
identifies objects
and shapes
Pattern Recognition:
Making Sense of the World
Optical
Character Recognition (OCR) identifies words and numbers
Pattern Recognition:
Making Sense of the World
Speech
Recognition identifies spoken words
Speech
Synthesis
generates
synthetic
speech
Neural Networks
Neural
networks are distributed, parallel computing systems based on the structure of
the human brain
A
neural network consists of thousands of microprocessors called neurons
A
neural network learns by trial and error, just as the brain does
Neural Networks
Concepts
are
represented as
patterns of activity
among neurons
A
neural net can
still function if part
of it is destroyed
The Robot Revolution
The
word robot comes from the Czech word for forced labor
Todays
robots combine many AI technologies, including:
Vision,
hearing, pattern recognition, knowledge engineering, expert decision making,
natural language understanding, and speech
The Robot Revolution
While
a computer performs mental tasks, a robot
is a computer-
controlled
machine
designed to
do manual
tasks
What Is a Robot?
A robot differs from
other computers in its input and output peripherals
Robot input
includes sensors
(heat, light, motion)
Robotic output is
usually sent to joints,
arms, or other moving
parts
What Is a Robot?
These
peripherals make robots ideally suited for:
Saving
labor costs (robots can work 24 hours a day)
Improving
the quality and productivity of repetitive jobs
Hazardous
or uncomfortable jobs
Steel-Collar Workers
Despite sophisticated
input and output devices, robots still cannot compete with humans for jobs
requiring exceptional perceptual or fine-motor skills
But for people who earn
their living doing manual labor, robots are a threat
Displaced workers are
not limited to factories
AI Implications and
Ethical Questions
In the future, we are
likely to see products with embedded AI
Some futurists predict
that silicon-based intelligence will replace human intelligence
Whether AI becomes
embedded in products or evolves into a new form of intelligent life, what
becomes of human values?