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 won’t 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, RACTER’s 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

•     Today’s 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?