Algorithm & Data Structures CSC-112
                           Spring 2012
My Profile
   Name:
       Syed Muhammad Raza

   Education:
       MSc Wireless Communication
           LTH – Sweden , 2007-2009

       BS Computer Information Sciences
           PIEAS – Pakistan , 2002-2006

   Contact Information:
       Email: (Preferred mean of communication)
           smraza@comsats.edu.pk

        **(In subject of your email mention your semester and name, otherwise it will not be
            entertained)
Rules

        Take it seriously & you will prosper
          Take it lightly & you will doom
Course Overview
   Fundamentals of Algorithms
   Review of Programming
   Sorting and Searching
   Stacks
   Queues, Priority Queues and Circular Queues
   Linked List
   Trees
   Hashing
   Graphs
    and much more …..
Text Book


             No Text Book
                   &
            Every Text Book
Recommended Books
   Schaum Programming with Cplusplus by Seymour Lipschutz

   Sams Teach Yourself Data Structures and Algorithms in 24 Hours, Lafore Robert

   Data structures and algorithms, Alfred V. Aho, John E. Hopcroft.

   Standish, Thomas A., Data Structures, Algorithms and Software Principles in C,
    Addison-Wesley 1995, ISBN: 0-201-59118-9

   Data Structures & Algorithm Analysis in C++, Weiss Mark Allen
Marks Distribution

  Lab   25% of 100 Marks (Semester Project & Presentation)
               Theory 75% of 100 Marks

                  Sessional 1 = 10 Marks
                  Sessional 2 = 15 Marks
                  Final Paper = 50 Marks
                  Assignment = 15 Marks
             Quiz        = 10 Marks (Surprise)
               Total          = 100 Marks
Lets see what you got!
Quiz 1
Marks:2
Time: 15mins

   Explain Abstract Data Types?
   Explain difference between abstraction and
    encapsulation?
   If you have to write a code for swapping int values,
    arrays will be appropriate solution or 2D arrays?
Algorithm
Problem Solving

 Problem solving is the process of transforming the
 description of a problem into the solution of that problem
 by using our knowledge of the problem domain and by
 relying on our ability to select and use appropriate
 problem-solving strategies, techniques, and tools.
Algorithms
   An Algorithm is a step by step solution to a problem

   Why bother writing an algorithm
       For your own use in the future - Don't have to rethink the
        problem.

       So others can solve the problem, even if they know very
        little about the principles behind how the solution was
        derived.
Examples of Algorithms
   Washing machine instructions

   Instructions for a ready-to-assemble piece of furniture

   A Classic: GCD - Greatest Common Divisor - The
    Euclidean Algorithm
Washing Machine Instructions
   Separate clothes into white clothes and colored clothes.

   For white clothes:
       Set water temperature knob to HOT.

       Place white laundry in tub.

   For colored clothes:
       Set water temperature knob to COLD

       Place colored laundry in tub.

   Add 1 cup of powdered laundry detergent to the tub.

   Close lid and press the start button.
Observations
   There are a finite number of steps.

   We are capable of doing each of the instructions.

   When we have followed all of the steps, the washing
    machine will wash the clothes and then will stop.

   Are all of the clothes clean ?

   Do we want the washing machine to run until all of the
    clothes are clean ?
Refinement of the Definition
   Our old definition:
       An algorithm is a step by step solution to a problem.

   Adding our observations:
       An algorithm is a finite set of executable instructions that directs a
        terminating activity.
Instructions for a Ready-to-Assemble Furniture
   "Align the marks on side A with the grooves on Part F “

   Why are these instructions typically so hard to follow ?
       Lack of proper tools - instructions are not executable

       Which side is A ? A & B look alike. Both line up with Part F -

        Ambiguous instructions.
Final Definition


 An algorithm is a finite set of unambiguous, executable
 instructions that directs a terminating activity.
History of Algorithms
   The study of algorithms began as a subject in mathematics.

   The search for algorithms was a significant activity of early
    mathematicians.

   Goal: To find a single set of instructions that could be used to solve
    any problem of a particular type.
GCD- Euclidean Algorithm
   Assign M and N the value of the larger and the value of the smaller
    of the two positive integer input values, respectively.

   Divide M by N and call the remainder R.

   If R is not 0, then assign M the value of N, assign N the value of R
    and return to step 2, otherwise the greatest common divisor is the
    value currently assigned to N.
Finding GCD of 24 & 9
                                     MNR
                                     24 9 6
                                      963
                                      630
                       So 3 is the GCD of 24 and 9.


   Do we need to know the theory that Euclid used to come up with this
    algorithm in order to use it ?

   What intelligence is required to find the GCD using this algorithm ?
Idea Behind the Algorithms
   Once an algorithm behind a task has been discovered
       Don't need to understand the principles.

       Task is reduced to following the instructions.

       Intelligence is "encoded into the algorithm"
Algorithm Representation
   Syntax and Semantics
       Syntax refers to the representation itself.

       Semantics refers to the concept represented.

Algorithm & data structures lec1

  • 1.
    Algorithm & DataStructures CSC-112 Spring 2012
  • 2.
    My Profile  Name:  Syed Muhammad Raza  Education:  MSc Wireless Communication  LTH – Sweden , 2007-2009  BS Computer Information Sciences  PIEAS – Pakistan , 2002-2006  Contact Information:  Email: (Preferred mean of communication)  smraza@comsats.edu.pk **(In subject of your email mention your semester and name, otherwise it will not be entertained)
  • 3.
    Rules Take it seriously & you will prosper Take it lightly & you will doom
  • 4.
    Course Overview  Fundamentals of Algorithms  Review of Programming  Sorting and Searching  Stacks  Queues, Priority Queues and Circular Queues  Linked List  Trees  Hashing  Graphs and much more …..
  • 5.
    Text Book No Text Book & Every Text Book
  • 6.
    Recommended Books  Schaum Programming with Cplusplus by Seymour Lipschutz  Sams Teach Yourself Data Structures and Algorithms in 24 Hours, Lafore Robert  Data structures and algorithms, Alfred V. Aho, John E. Hopcroft.  Standish, Thomas A., Data Structures, Algorithms and Software Principles in C, Addison-Wesley 1995, ISBN: 0-201-59118-9  Data Structures & Algorithm Analysis in C++, Weiss Mark Allen
  • 7.
    Marks Distribution Lab 25% of 100 Marks (Semester Project & Presentation) Theory 75% of 100 Marks Sessional 1 = 10 Marks Sessional 2 = 15 Marks Final Paper = 50 Marks Assignment = 15 Marks Quiz = 10 Marks (Surprise) Total = 100 Marks
  • 8.
    Lets see whatyou got!
  • 9.
    Quiz 1 Marks:2 Time: 15mins  Explain Abstract Data Types?  Explain difference between abstraction and encapsulation?  If you have to write a code for swapping int values, arrays will be appropriate solution or 2D arrays?
  • 10.
  • 11.
    Problem Solving Problemsolving is the process of transforming the description of a problem into the solution of that problem by using our knowledge of the problem domain and by relying on our ability to select and use appropriate problem-solving strategies, techniques, and tools.
  • 12.
    Algorithms  An Algorithm is a step by step solution to a problem  Why bother writing an algorithm  For your own use in the future - Don't have to rethink the problem.  So others can solve the problem, even if they know very little about the principles behind how the solution was derived.
  • 13.
    Examples of Algorithms  Washing machine instructions  Instructions for a ready-to-assemble piece of furniture  A Classic: GCD - Greatest Common Divisor - The Euclidean Algorithm
  • 14.
    Washing Machine Instructions  Separate clothes into white clothes and colored clothes.  For white clothes:  Set water temperature knob to HOT.  Place white laundry in tub.  For colored clothes:  Set water temperature knob to COLD  Place colored laundry in tub.  Add 1 cup of powdered laundry detergent to the tub.  Close lid and press the start button.
  • 15.
    Observations  There are a finite number of steps.  We are capable of doing each of the instructions.  When we have followed all of the steps, the washing machine will wash the clothes and then will stop.  Are all of the clothes clean ?  Do we want the washing machine to run until all of the clothes are clean ?
  • 16.
    Refinement of theDefinition  Our old definition:  An algorithm is a step by step solution to a problem.  Adding our observations:  An algorithm is a finite set of executable instructions that directs a terminating activity.
  • 17.
    Instructions for aReady-to-Assemble Furniture  "Align the marks on side A with the grooves on Part F “  Why are these instructions typically so hard to follow ?  Lack of proper tools - instructions are not executable  Which side is A ? A & B look alike. Both line up with Part F - Ambiguous instructions.
  • 18.
    Final Definition Analgorithm is a finite set of unambiguous, executable instructions that directs a terminating activity.
  • 19.
    History of Algorithms  The study of algorithms began as a subject in mathematics.  The search for algorithms was a significant activity of early mathematicians.  Goal: To find a single set of instructions that could be used to solve any problem of a particular type.
  • 20.
    GCD- Euclidean Algorithm  Assign M and N the value of the larger and the value of the smaller of the two positive integer input values, respectively.  Divide M by N and call the remainder R.  If R is not 0, then assign M the value of N, assign N the value of R and return to step 2, otherwise the greatest common divisor is the value currently assigned to N.
  • 21.
    Finding GCD of24 & 9 MNR 24 9 6 963 630 So 3 is the GCD of 24 and 9.  Do we need to know the theory that Euclid used to come up with this algorithm in order to use it ?  What intelligence is required to find the GCD using this algorithm ?
  • 22.
    Idea Behind theAlgorithms  Once an algorithm behind a task has been discovered  Don't need to understand the principles.  Task is reduced to following the instructions.  Intelligence is "encoded into the algorithm"
  • 23.
    Algorithm Representation  Syntax and Semantics  Syntax refers to the representation itself.  Semantics refers to the concept represented.