Algorithms and Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Algorithms and Programming

Description:

... beginnings in an effort by James Gosling in 1991 at Sun Microsystems to develop ... In 1994 Gosling realized that his language would be ideal for developing a Web ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 31
Provided by: robertw8
Learn more at: https://www.ecs.csun.edu
Category:

less

Transcript and Presenter's Notes

Title: Algorithms and Programming


1
Introduction
  • Algorithms and Programming

2
Computer Programming
  • A form of problem solving
  • Or, more accurately, a way to solve problems
  • What we will be studying is How to solve
    problems using computers

3
Whats a Problem?
  • A question that someone wants an answer to
  • A problem usually has information that represents
    a starting point, initial assumptions, facts, or
    data that will be needed in answering the
    question
  • For example, What is my grade point average?

4
How Do We Solve the Problem?
  • With pencil and paper we can compute our grade
    point average if we know all of our grades and
    the units for each of the courses taken
  • What are the advantages of writing a computer
    program to compute our grade point average?

5
How Do We Solve Problems?
  • Four Steps
  • Understand the problem
  • Devise a plan to solve the problem
  • Implement the plan
  • Evaluate the solution
  • From George Polyas book, How to Solve It
    written in 1945.

6
What is an Algorithm?
  • A plan for solving a problem
  • A series of steps to follow to arrive at a
    solution
  • A highly technical and precise recipe for
    solving a problem
  • A good algorithm is correct, complete, and
    unambiguous
  • Good algorithms are also general rather than
    specific

7
Algorithm Definition
  • From mathworld.wolfram.com/Algorithm.html
  • A specific set of instructions for carrying out a
    procedure or solving a problem, usually with the
    requirement that the procedure terminate at some
    point
  • Specific algorithms sometimes also go by the name
    method, procedure, or technique
  • The word algorithm is a distortion of
  • al-Khwarizmi, a Persian Mathematician who wrote
    an influential treatise about algebraic methods

8
What Does an Algorithm Look Like?
  • It can be written in (precise) English
  • It can be drawn as a diagram (e.g., a flowchart)
    with steps and a path to follow from one step to
    the next
  • To make it precise (and computer executable)
    algorithms are translated into a computer
    understandable form (e.g., machine language)

9
A Simple Example
  • Problem Calculate the average of a list of
    numbers.
  • Let the number of numbers in the list be n
  • Assume n is greater than or equal to 1
  • Calculate the sum of the n numbers
  • Call this sum s
  • Then the average is given by s/n

10
Example Expanded
  • Problem Calculate the average of a list of
    numbers.
  • Let the number of numbers in the list be n.
  • Assume n is greater than or equal to 1.
  • Pick off the first number on the list and place
    it on the blackboard.
  • As long as there are more numbers on the list,
    pick the next number off the list and add it to
    the number on the blackboard and replace the
    number on the blackboard with this sum. (Repeat
    this step until the list is empty.)
  • Call the number on the blackboard s.
  • Then the average is given by s/n.

11
Final Note about Algorithms
  • To qualify as an algorithm, the instructions must
    be expressed so completely and precisely that
    somebody could follow the instructions without
    having to make any assumptions or ask for more
    information or help of any kind.

12
Computer Basics
  • Hardware and Memory
  • Programs
  • Programming Languages
  • Compilers

13
Hardware and Memory
  • The processor or CPU (Central Processing Unit)
  • Executes instructions
  • Memory
  • Main memory (RAM)
  • Secondary (auxiliary) memory
  • Disk drives (hard drives)
  • Diskettes (floppies)
  • Compact disks (and DVDs)
  • USB Flash Drives

14
Bits, Bytes, and Memory Organization
  • A bit is a single binary digit (i.e., it can
    assume the value 0 or 1)
  • A byte is a string of 8 bits (enough to hold the
    representation of a character)
  • The number of a byte is called its address or
    memory location
  • When more than one byte is needed to store
    information the computer uses a string of
    adjacent bytes

15
Why Do Computers Use Just Zeros and Ones?
  • Its easier to make a physical device that has
    only two physical states (e.g., on and off).
  • There is nothing special about zero and one. The
    only important thing is that the physical device
    have two stable states.

16
Programs
  • A program is simply a set of instructions for a
    computer to follow.
  • A computer executes the instructions in the
    program to process the data or information
    provided as input in order to produce the results
    or output desired.
  • It is actually the operating system (just
    another program) running on the computer that
    executes your program.

17
Programming Languages
  • High level languages (languages designed for
    people to use)
  • Pascal, FORTRAN, C, C, Visual Basic, Lisp, Java
  • Low level languages (languages that computers can
    understand)
  • Machine languages, assembly languages

18
Compilers
  • Compilers are programs that translate high level
    languages into low level languages
  • Compilers are generally machine dependent because
    different machines have different machine
    languages
  • The input to the compiler is called the source
    code and the output is called the object code

19
Designing Programs An Object-Oriented Approach
  • An Object is a software package that contains a
    collection of related procedures and data.
  • The procedures in an object-oriented approach are
    called methods.
  • One object interacts with another by sending it a
    message asking it to carry out one of its
    methods.

20
Designing Programs An OO Approach Contd
  • A class is a template that defines the methods
    and variables to be included in a particular type
    of object.
  • The objects that belong to a class, called
    instances of the class, contain only their
    particular values for the variables.
  • Inheritance is a mechanism whereby one class of
    objects can be defined as a special case of a
    more general class, automatically including the
    method and variable definitions of the general
    class.

21
Designing Programs An OO Approach Contd
  • A special case of a class is known as subclass of
    that class.
  • Encapsulation is a technique in which data is
    packaged together with its corresponding
    procedures in a way that the details of
    implementation are hidden.
  • Polymorphism is the ability to use one name for
    several different implementations of a method.

22
Testing and Debugging
  • A mistake in a program is called a bug.
  • The process of removing bugs from a program is
    called debugging.
  • There are three main classes of bugs or errors in
    programs
  • Syntax errors
  • Runtime errors
  • Logic errors

23
Syntax Errors
  • A syntax error is a grammatical mistake in a
    program.
  • There are strict grammatical rules for writing
    programs including required punctuation marks.
  • The compiler will catch syntax errors and give
    its best guess as to the problem, but is often
    wrong regarding the actual mistake made.

24
Run-Time Errors
  • Errors caught when the program is run.
  • The computer will give an error message, but such
    messages are often hard to understand.
  • You can be sure that there is an error in your
    program but it may take some time to find.

25
Logic Errors
  • If the program runs successfully to completion
    but produces the wrong result, you have a logic
    error.
  • What you have written is a valid program, but it
    doesnt do what it is supposed to do.
  • These are the most difficult errors to find.

26
The History of Java
  • Java had its beginnings in an effort by James
    Gosling in 1991 at Sun Microsystems to develop a
    new language for programming home appliances.
  • Thats where the idea of translating programs
    into an intermediate language that was the same
    for all appliances (computers) came from (Java
    byte-code).

27
The History of Java Contd
  • In 1994 Gosling realized that his language would
    be ideal for developing a Web browser that could
    run programs over the Internet.
  • The original name of the language was Oak but
    they found that that name was already taken.
  • Rumor has it that the name resulted from a trip
    for coffee after a fruitless meeting to come up
    with a new name.

28
Two Types of Java Programs
  • Applications regular programs meant to be run
    directly on peoples computers.
  • Applets little applications meant to be sent
    to another location on the Internet and run
    there.

29
Sample Java Program
  • public class Hello
  • public static void main(String args)
  • System.out.println("Hello, world!")

30
Solution to the Eight Queens Problem (one of
twelve)
Write a Comment
User Comments (0)
About PowerShow.com