SlideShare a Scribd company logo
1 of 97
Download to read offline
Welcome

                                 Dr.Haitham A. El-Ghareeb

                                  Information Systems Department
                           Faculty of Computers and Information Sciences
                                        Mansoura University
                                       helghareeb@gmail.com


                                     September 16, 2012




Dr.Haitham A. El-Ghareeb (CIS)     Data Structures and Algorithms - 2012   September 16, 2012   1 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   2 / 47
Dr.Haitham A. El-Ghareeb




                           Olympic Flame during the Opening
                        Ceremony of the 2004 Summer Olympics,
                                    held in Athens.
 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   2 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   3 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   4 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   5 / 47
Dr.Haitham A. El-Ghareeb




              First-ever photograph of the ”unseen side” of Mercury

 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   5 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   6 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   7 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   8 / 47
Dr.Haitham A. El-Ghareeb




                  http://www.helghareeb.net/publications/journals




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   9 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   10 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   11 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   12 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   13 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   14 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   15 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   16 / 47
Dr.Haitham A. El-Ghareeb




                                           @helghareeb
                                  https://twitter.com/helghareeb




 Dr.Haitham A. El-Ghareeb (CIS)       Data Structures and Algorithms - 2012   September 16, 2012   17 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   18 / 47
Dr.Haitham A. El-Ghareeb




              https://plus.google.com/u/0/110986963706567841321




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   19 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   20 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   21 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   22 / 47
Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   23 / 47
Topics Include




Why Data Structures?




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   24 / 47
Topics Include




Why Data Structures?
      Design of Effective and Efficient Data Structures and Algorithms




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   24 / 47
Topics Include




Why Data Structures?
      Design of Effective and Efficient Data Structures and Algorithms
      Advanced Data Structures and Algorithm Design Paradigms




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   24 / 47
Topics Include




Why Data Structures?
      Design of Effective and Efficient Data Structures and Algorithms
      Advanced Data Structures and Algorithm Design Paradigms
      Algorithm Analysis Techniques Intractability




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   24 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   25 / 47
Course Importance




Course gives the student greater experience in:




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   26 / 47
Course Importance




Course gives the student greater experience in:
      Program design in a language-independent setting




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   26 / 47
Course Importance




Course gives the student greater experience in:
      Program design in a language-independent setting
      Discusses pragmatic and mathematical aspects of program efficiency




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   26 / 47
Course Importance




Course gives the student greater experience in:
      Program design in a language-independent setting
      Discusses pragmatic and mathematical aspects of program efficiency
      Algorithm Design Examination of data structures, abstract data, and
      algorithm design intended to develop knowledge and programming
      skills byond an introductory level




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   26 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   27 / 47
Topics in Detail:




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues
      Stacks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues
      Stacks
      Lists




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues
      Stacks
      Lists
      Trees and Graphs




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues
      Stacks
      Lists
      Trees and Graphs
      Sorting and Searching




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Topics in Detail:
      Algorithm and Data Structure Design
      Abstract Data Types
      Queues
      Stacks
      Lists
      Trees and Graphs
      Sorting and Searching
      Motivation and Introduction of Analysis for Algorithm Complexity




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   28 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   29 / 47
Grades


100 Marks - Grouped as follows:




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks
      Report: 5 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks
      Report: 5 Marks
      Oral: 10 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks
      Report: 5 Marks
      Oral: 10 Marks
      Project (Bonus): 10 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks
      Report: 5 Marks
      Oral: 10 Marks
      Project (Bonus): 10 Marks
      Final Exam: 60 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Grades


100 Marks - Grouped as follows:
      Mid-Term Exam: 10 Marks
      Labs: 10 Marks
      Attendance: 5 Marks
      Report: 5 Marks
      Oral: 10 Marks
      Project (Bonus): 10 Marks
      Final Exam: 60 Marks
      Total: 100 Marks




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   30 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   31 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language
      How we can use ”Python” ”C#” ”Java” in implementing ”Data
      Structures and Algorithms”




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language
      How we can use ”Python” ”C#” ”Java” in implementing ”Data
      Structures and Algorithms”
      Limits of Computer Resources




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language
      How we can use ”Python” ”C#” ”Java” in implementing ”Data
      Structures and Algorithms”
      Limits of Computer Resources
      Why Computer Algorithms are Important




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language
      How we can use ”Python” ”C#” ”Java” in implementing ”Data
      Structures and Algorithms”
      Limits of Computer Resources
      Why Computer Algorithms are Important
      Different Programming problems that can be solved by Algorithms




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Report

Write a Report on ”Data Structures and Algorithms” Covering:
      Why we need Data Structures
      Different Data Structures, Why we need them
      Advantages of ”Python / C# / Java” as a Programming Language
      How we can use ”Python” ”C#” ”Java” in implementing ”Data
      Structures and Algorithms”
      Limits of Computer Resources
      Why Computer Algorithms are Important
      Different Programming problems that can be solved by Algorithms
      Examples of ”Python / C# / Java based Solutions” for different
      ”Computer Algorithms” challenges



 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   32 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   33 / 47
Dr.Haitham A. El-Ghareeb




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   34 / 47
Project




 Bonus
Working Project must be delivered at the end of the subject. Project
entitles how we used Data Structures and Algorithms to solve one or more
of the challenging problems ”8 Queen Problem, Sorting, etc.”




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   35 / 47
Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   36 / 47
What Programming Language Shall I Learn?




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   37 / 47
I don’t like Programming!



      Network Engineer
      Web Designer ’Front End Engineer’
      Graphic Designer ’2D, 3D’
      System Administrator
      Software Testing
      Quality Assurance Team
      etc...




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   38 / 47
Peter Norvig

      1996-1998: Junglee Corp.
              Chief Scientist
      1994-1996: Harlequin, Inc.
              Chief Designer
      1991-1994: Sun Microsystems Labs
              Senior Scientist
      1986-1991: University of California, Berkeley
              Research Faculty Member
      1985-1986: University of Southern California
              Assistant Professor
      1978-1980: Higher Order Software, Inc.
              Member of Technical Staff
      1977-1977: Woods Hole Oceanographic Institute
              Summer Programming Intern


 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   39 / 47
Teach Yourself Programming in Ten Years



                                         Peter Norvig
      2001-now: Google
              Director of Research (2006-now);
              formerly Director of Search Quality (2002-2006)
              and Machine Learning (2001)
      1998-2001: NASA Ames Research Center
              Division Chief, Computational Sciences




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   40 / 47
Recipe




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),
              one that supports functional abstraction (like Lisp or ML),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),
              one that supports functional abstraction (like Lisp or ML),
              one that supports syntactic abstraction (like Lisp),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),
              one that supports functional abstraction (like Lisp or ML),
              one that supports syntactic abstraction (like Lisp),
              one that supports declarative specifications (like Prolog or C++
              templates),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),
              one that supports functional abstraction (like Lisp or ML),
              one that supports syntactic abstraction (like Lisp),
              one that supports declarative specifications (like Prolog or C++
              templates),
              one that supports coroutines (like Icon or Scheme),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe

      Get interested in programming, and do some because it is fun.
      Program. The best kind of learning is learning by doing.
      Talk with other programmers; read other programs.
      Work on projects with other programmers. Be the best programmer
      on some projects; be the worst on some others.
      Learn at least a half dozen programming languages.
              Include one language that supports class abstractions (like Java or
              C++),
              one that supports functional abstraction (like Lisp or ML),
              one that supports syntactic abstraction (like Lisp),
              one that supports declarative specifications (like Prolog or C++
              templates),
              one that supports coroutines (like Icon or Scheme),
              and one that supports parallelism (like Sisal).


 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   41 / 47
Recipe




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.
              Know how long it takes your computer to execute an instruction,




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.
              Know how long it takes your computer to execute an instruction,
              fetch a word from memory (with and without a cache miss),




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.
              Know how long it takes your computer to execute an instruction,
              fetch a word from memory (with and without a cache miss),
              read consecutive words from disk,




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.
              Know how long it takes your computer to execute an instruction,
              fetch a word from memory (with and without a cache miss),
              read consecutive words from disk,
              and seek to a new location on disk.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Recipe



      Remember that there is a ”computer” in ”computer science”.
              Know how long it takes your computer to execute an instruction,
              fetch a word from memory (with and without a cache miss),
              read consecutive words from disk,
              and seek to a new location on disk.
      Get involved in a language standardization effort. It could be the
      ANSI C++ committee, or it could be deciding if your local coding
      style will have 2 or 4 space indentation levels.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   42 / 47
Course Resources




      Course Page: http://courses.helghareeb.net/2012-2013/dsa
              You will find: Updated Slides, Important Announcements, etc.
      Course G+ Page:
      https://plus.google.com/u/1/b/108828963463022379521/
      108828963463022379521/posts
              You can post questions, start discussions, share material, etc.




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   43 / 47
Text Book




      Lecture Notes will be available soon inchallah
      Related Links and Further Readings are posted on Web site
      Fresh items are posted on G+




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   44 / 47
Teaching Assistants




      Osama Abu Al-Nasr
      Mohamed Al-Hossini
      Eslam Reda
      Shahenda Al-Kholi
      Mohamed Abd-Raboh




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   45 / 47
Labs




      Visual Studio .Net
      .Net Framework
      C#
      Iron Python




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   46 / 47
Finally




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   47 / 47
Finally




 Dr.Haitham A. El-Ghareeb (CIS)   Data Structures and Algorithms - 2012   September 16, 2012   48 / 47

More Related Content

Viewers also liked

Data structures and algorithms lab5
Data structures and algorithms lab5Data structures and algorithms lab5
Data structures and algorithms lab5Bianca Teşilă
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete Adnan abid
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and AlgorithmDhaval Kaneria
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming languageVasavi College of Engg
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structuresNiraj Agarwal
 
Data structures and algorithms lab3
Data structures and algorithms lab3Data structures and algorithms lab3
Data structures and algorithms lab3Bianca Teşilă
 
Data structures and algorithms lab2
Data structures and algorithms lab2Data structures and algorithms lab2
Data structures and algorithms lab2Bianca Teşilă
 
Difference between c# generics and c++ templates
Difference between c# generics and c++ templatesDifference between c# generics and c++ templates
Difference between c# generics and c++ templatesUmar Ali
 
Data structures and algorithms lab11
Data structures and algorithms lab11Data structures and algorithms lab11
Data structures and algorithms lab11Bianca Teşilă
 
Data structures and algorithms lab8
Data structures and algorithms lab8Data structures and algorithms lab8
Data structures and algorithms lab8Bianca Teşilă
 
Data structures and algorithms lab1
Data structures and algorithms lab1Data structures and algorithms lab1
Data structures and algorithms lab1Bianca Teşilă
 
Data structure circular list
Data structure circular listData structure circular list
Data structure circular listiCreateWorld
 
10 generics a-4_in_1
10 generics a-4_in_110 generics a-4_in_1
10 generics a-4_in_1arasforever
 
Java 102 intro to object-oriented programming in java - exercises
Java 102   intro to object-oriented programming in java - exercisesJava 102   intro to object-oriented programming in java - exercises
Java 102 intro to object-oriented programming in java - exercisesagorolabs
 

Viewers also liked (20)

Data structures and algorithms lab5
Data structures and algorithms lab5Data structures and algorithms lab5
Data structures and algorithms lab5
 
Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete  Database structure Structures Link list and trees and Recurison complete
Database structure Structures Link list and trees and Recurison complete
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
 
Unit1 principle of programming language
Unit1 principle of programming languageUnit1 principle of programming language
Unit1 principle of programming language
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Fundamentals of data structures
Fundamentals of data structuresFundamentals of data structures
Fundamentals of data structures
 
Data structures and algorithms lab3
Data structures and algorithms lab3Data structures and algorithms lab3
Data structures and algorithms lab3
 
Data structures and algorithms lab2
Data structures and algorithms lab2Data structures and algorithms lab2
Data structures and algorithms lab2
 
Difference between c# generics and c++ templates
Difference between c# generics and c++ templatesDifference between c# generics and c++ templates
Difference between c# generics and c++ templates
 
Data structures and algorithms lab11
Data structures and algorithms lab11Data structures and algorithms lab11
Data structures and algorithms lab11
 
Data structures and algorithms lab8
Data structures and algorithms lab8Data structures and algorithms lab8
Data structures and algorithms lab8
 
Data structures and algorithms lab1
Data structures and algorithms lab1Data structures and algorithms lab1
Data structures and algorithms lab1
 
Data structure circular list
Data structure circular listData structure circular list
Data structure circular list
 
10 generics a-4_in_1
10 generics a-4_in_110 generics a-4_in_1
10 generics a-4_in_1
 
Data structures1
Data structures1Data structures1
Data structures1
 
It6601 mobile computing unit 4 questions
It6601 mobile computing unit 4 questionsIt6601 mobile computing unit 4 questions
It6601 mobile computing unit 4 questions
 
Enum Report
Enum ReportEnum Report
Enum Report
 
Java Day-7
Java Day-7Java Day-7
Java Day-7
 
Java Day-2
Java Day-2Java Day-2
Java Day-2
 
Java 102 intro to object-oriented programming in java - exercises
Java 102   intro to object-oriented programming in java - exercisesJava 102   intro to object-oriented programming in java - exercises
Java 102 intro to object-oriented programming in java - exercises
 

Similar to DSA-2012-Lect00

Lect02 120929183452-phpapp02
Lect02 120929183452-phpapp02Lect02 120929183452-phpapp02
Lect02 120929183452-phpapp02Getachew Ganfur
 
Lect01 120922175045-phpapp01
Lect01 120922175045-phpapp01Lect01 120922175045-phpapp01
Lect01 120922175045-phpapp01Abdo ELhais
 
Select a Research Brand Name
Select a Research Brand NameSelect a Research Brand Name
Select a Research Brand NameNader Ale Ebrahim
 
Mixed Method Research
Mixed Method ResearchMixed Method Research
Mixed Method ResearchABCComputers
 

Similar to DSA-2012-Lect00 (6)

Lect02 120929183452-phpapp02
Lect02 120929183452-phpapp02Lect02 120929183452-phpapp02
Lect02 120929183452-phpapp02
 
Lect01 120922175045-phpapp01
Lect01 120922175045-phpapp01Lect01 120922175045-phpapp01
Lect01 120922175045-phpapp01
 
Lecture 01 - Research Methods
Lecture 01 - Research MethodsLecture 01 - Research Methods
Lecture 01 - Research Methods
 
36411
3641136411
36411
 
Select a Research Brand Name
Select a Research Brand NameSelect a Research Brand Name
Select a Research Brand Name
 
Mixed Method Research
Mixed Method ResearchMixed Method Research
Mixed Method Research
 

More from Haitham El-Ghareeb (20)

مختصر وحدة التعلم الذاتي 2015
مختصر وحدة التعلم الذاتي 2015مختصر وحدة التعلم الذاتي 2015
مختصر وحدة التعلم الذاتي 2015
 
وحدة التعلم الذاتي 2015
وحدة التعلم الذاتي 2015وحدة التعلم الذاتي 2015
وحدة التعلم الذاتي 2015
 
NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword NoSQL Databases, Not just a Buzzword
NoSQL Databases, Not just a Buzzword
 
EMC Academic Alliance Presentation
EMC Academic Alliance PresentationEMC Academic Alliance Presentation
EMC Academic Alliance Presentation
 
DSA - 2012 - Conclusion
DSA - 2012 - ConclusionDSA - 2012 - Conclusion
DSA - 2012 - Conclusion
 
Data Structures - Lecture 8 - Study Notes
Data Structures - Lecture 8 - Study NotesData Structures - Lecture 8 - Study Notes
Data Structures - Lecture 8 - Study Notes
 
Lect07
Lect07Lect07
Lect07
 
LectureNotes-06-DSA
LectureNotes-06-DSALectureNotes-06-DSA
LectureNotes-06-DSA
 
LectureNotes-05-DSA
LectureNotes-05-DSALectureNotes-05-DSA
LectureNotes-05-DSA
 
LectureNotes-04-DSA
LectureNotes-04-DSALectureNotes-04-DSA
LectureNotes-04-DSA
 
LectureNotes-03-DSA
LectureNotes-03-DSALectureNotes-03-DSA
LectureNotes-03-DSA
 
LectureNotes-02-DSA
LectureNotes-02-DSALectureNotes-02-DSA
LectureNotes-02-DSA
 
LectureNotes-01-DSA
LectureNotes-01-DSALectureNotes-01-DSA
LectureNotes-01-DSA
 
Lecture-05-DSA
Lecture-05-DSALecture-05-DSA
Lecture-05-DSA
 
Learn Latex
Learn LatexLearn Latex
Learn Latex
 
Research Methodologies - Lecture 02
Research Methodologies - Lecture 02Research Methodologies - Lecture 02
Research Methodologies - Lecture 02
 
DSA-Lecture-05
DSA-Lecture-05DSA-Lecture-05
DSA-Lecture-05
 
DSA - Lecture 04
DSA - Lecture 04DSA - Lecture 04
DSA - Lecture 04
 
Ph.D. Registeration seminar
Ph.D. Registeration seminarPh.D. Registeration seminar
Ph.D. Registeration seminar
 
Python Tutorial Part 2
Python Tutorial Part 2Python Tutorial Part 2
Python Tutorial Part 2
 

Recently uploaded

3.12.24 Freedom Summer in Mississippi.pptx
3.12.24 Freedom Summer in Mississippi.pptx3.12.24 Freedom Summer in Mississippi.pptx
3.12.24 Freedom Summer in Mississippi.pptxmary850239
 
Alamkara theory by Bhamaha Indian Poetics (1).pptx
Alamkara theory by Bhamaha Indian Poetics (1).pptxAlamkara theory by Bhamaha Indian Poetics (1).pptx
Alamkara theory by Bhamaha Indian Poetics (1).pptxDhatriParmar
 
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYS
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYSDLL Catch Up Friday March 22.docx CATCH UP FRIDAYS
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYSTeacherNicaPrintable
 
3.14.24 Gender Discrimination and Gender Inequity.pptx
3.14.24 Gender Discrimination and Gender Inequity.pptx3.14.24 Gender Discrimination and Gender Inequity.pptx
3.14.24 Gender Discrimination and Gender Inequity.pptxmary850239
 
Quantitative research methodology and survey design
Quantitative research methodology and survey designQuantitative research methodology and survey design
Quantitative research methodology and survey designBalelaBoru
 
Riti theory by Vamana Indian poetics.pptx
Riti theory by Vamana Indian poetics.pptxRiti theory by Vamana Indian poetics.pptx
Riti theory by Vamana Indian poetics.pptxDhatriParmar
 
2024.03.16 How to write better quality materials for your learners ELTABB San...
2024.03.16 How to write better quality materials for your learners ELTABB San...2024.03.16 How to write better quality materials for your learners ELTABB San...
2024.03.16 How to write better quality materials for your learners ELTABB San...Sandy Millin
 
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdf
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdfArti Languages Pre Seed Send Ahead Pitchdeck 2024.pdf
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdfwill854175
 
Plant Tissue culture., Plasticity, Totipotency, pptx
Plant Tissue culture., Plasticity, Totipotency, pptxPlant Tissue culture., Plasticity, Totipotency, pptx
Plant Tissue culture., Plasticity, Totipotency, pptxHimansu10
 
The OERs: Transforming Education for Sustainable Future by Dr. Sarita Anand
The OERs: Transforming Education for Sustainable Future by Dr. Sarita AnandThe OERs: Transforming Education for Sustainable Future by Dr. Sarita Anand
The OERs: Transforming Education for Sustainable Future by Dr. Sarita AnandDr. Sarita Anand
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...Nguyen Thanh Tu Collection
 
Dhavni Theory by Anandvardhana Indian Poetics
Dhavni Theory by Anandvardhana Indian PoeticsDhavni Theory by Anandvardhana Indian Poetics
Dhavni Theory by Anandvardhana Indian PoeticsDhatriParmar
 
LEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudLEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudDr. Bruce A. Johnson
 
Auchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsAuchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsDhatriParmar
 
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...Marlene Maheu
 
Research Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchResearch Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchRushdi Shams
 
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...Subham Panja
 
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...AKSHAYMAGAR17
 

Recently uploaded (20)

3.12.24 Freedom Summer in Mississippi.pptx
3.12.24 Freedom Summer in Mississippi.pptx3.12.24 Freedom Summer in Mississippi.pptx
3.12.24 Freedom Summer in Mississippi.pptx
 
Alamkara theory by Bhamaha Indian Poetics (1).pptx
Alamkara theory by Bhamaha Indian Poetics (1).pptxAlamkara theory by Bhamaha Indian Poetics (1).pptx
Alamkara theory by Bhamaha Indian Poetics (1).pptx
 
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYS
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYSDLL Catch Up Friday March 22.docx CATCH UP FRIDAYS
DLL Catch Up Friday March 22.docx CATCH UP FRIDAYS
 
3.14.24 Gender Discrimination and Gender Inequity.pptx
3.14.24 Gender Discrimination and Gender Inequity.pptx3.14.24 Gender Discrimination and Gender Inequity.pptx
3.14.24 Gender Discrimination and Gender Inequity.pptx
 
Quantitative research methodology and survey design
Quantitative research methodology and survey designQuantitative research methodology and survey design
Quantitative research methodology and survey design
 
Riti theory by Vamana Indian poetics.pptx
Riti theory by Vamana Indian poetics.pptxRiti theory by Vamana Indian poetics.pptx
Riti theory by Vamana Indian poetics.pptx
 
Least Significance Difference:Biostatics and Research Methodology
Least Significance Difference:Biostatics and Research MethodologyLeast Significance Difference:Biostatics and Research Methodology
Least Significance Difference:Biostatics and Research Methodology
 
2024.03.16 How to write better quality materials for your learners ELTABB San...
2024.03.16 How to write better quality materials for your learners ELTABB San...2024.03.16 How to write better quality materials for your learners ELTABB San...
2024.03.16 How to write better quality materials for your learners ELTABB San...
 
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdf
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdfArti Languages Pre Seed Send Ahead Pitchdeck 2024.pdf
Arti Languages Pre Seed Send Ahead Pitchdeck 2024.pdf
 
Plant Tissue culture., Plasticity, Totipotency, pptx
Plant Tissue culture., Plasticity, Totipotency, pptxPlant Tissue culture., Plasticity, Totipotency, pptx
Plant Tissue culture., Plasticity, Totipotency, pptx
 
The OERs: Transforming Education for Sustainable Future by Dr. Sarita Anand
The OERs: Transforming Education for Sustainable Future by Dr. Sarita AnandThe OERs: Transforming Education for Sustainable Future by Dr. Sarita Anand
The OERs: Transforming Education for Sustainable Future by Dr. Sarita Anand
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
BÀI TẬP BỔ TRỢ TIẾNG ANH 11 THEO ĐƠN VỊ BÀI HỌC - CẢ NĂM - CÓ FILE NGHE (GLOB...
 
Dhavni Theory by Anandvardhana Indian Poetics
Dhavni Theory by Anandvardhana Indian PoeticsDhavni Theory by Anandvardhana Indian Poetics
Dhavni Theory by Anandvardhana Indian Poetics
 
t-test Parametric test Biostatics and Research Methodology
t-test Parametric test Biostatics and Research Methodologyt-test Parametric test Biostatics and Research Methodology
t-test Parametric test Biostatics and Research Methodology
 
LEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced StudLEAD6001 - Introduction to Advanced Stud
LEAD6001 - Introduction to Advanced Stud
 
Auchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian PoeticsAuchitya Theory by Kshemendra Indian Poetics
Auchitya Theory by Kshemendra Indian Poetics
 
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
2024 March 11, Telehealth Billing- Current Telehealth CPT Codes & Telehealth ...
 
Research Methodology and Tips on Better Research
Research Methodology and Tips on Better ResearchResearch Methodology and Tips on Better Research
Research Methodology and Tips on Better Research
 
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...
THYROID HORMONE.pptx by Subham Panja,Asst. Professor, Department of B.Sc MLT,...
 
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
DNA and RNA , Structure, Functions, Types, difference, Similarities, Protein ...
 

DSA-2012-Lect00

  • 1. Welcome Dr.Haitham A. El-Ghareeb Information Systems Department Faculty of Computers and Information Sciences Mansoura University helghareeb@gmail.com September 16, 2012 Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 1 / 47
  • 2. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 2 / 47
  • 3. Dr.Haitham A. El-Ghareeb Olympic Flame during the Opening Ceremony of the 2004 Summer Olympics, held in Athens. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 2 / 47
  • 4. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 3 / 47
  • 5. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 4 / 47
  • 6. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 5 / 47
  • 7. Dr.Haitham A. El-Ghareeb First-ever photograph of the ”unseen side” of Mercury Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 5 / 47
  • 8. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 6 / 47
  • 9. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 7 / 47
  • 10. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 8 / 47
  • 11. Dr.Haitham A. El-Ghareeb http://www.helghareeb.net/publications/journals Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 9 / 47
  • 12. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 10 / 47
  • 13. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 11 / 47
  • 14. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 12 / 47
  • 15. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 13 / 47
  • 16. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 14 / 47
  • 17. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 15 / 47
  • 18. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 16 / 47
  • 19. Dr.Haitham A. El-Ghareeb @helghareeb https://twitter.com/helghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 17 / 47
  • 20. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 18 / 47
  • 21. Dr.Haitham A. El-Ghareeb https://plus.google.com/u/0/110986963706567841321 Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 19 / 47
  • 22. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 20 / 47
  • 23. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 21 / 47
  • 24. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 22 / 47
  • 25. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 23 / 47
  • 26. Topics Include Why Data Structures? Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47
  • 27. Topics Include Why Data Structures? Design of Effective and Efficient Data Structures and Algorithms Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47
  • 28. Topics Include Why Data Structures? Design of Effective and Efficient Data Structures and Algorithms Advanced Data Structures and Algorithm Design Paradigms Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47
  • 29. Topics Include Why Data Structures? Design of Effective and Efficient Data Structures and Algorithms Advanced Data Structures and Algorithm Design Paradigms Algorithm Analysis Techniques Intractability Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47
  • 30. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 25 / 47
  • 31. Course Importance Course gives the student greater experience in: Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47
  • 32. Course Importance Course gives the student greater experience in: Program design in a language-independent setting Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47
  • 33. Course Importance Course gives the student greater experience in: Program design in a language-independent setting Discusses pragmatic and mathematical aspects of program efficiency Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47
  • 34. Course Importance Course gives the student greater experience in: Program design in a language-independent setting Discusses pragmatic and mathematical aspects of program efficiency Algorithm Design Examination of data structures, abstract data, and algorithm design intended to develop knowledge and programming skills byond an introductory level Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47
  • 35. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 27 / 47
  • 36. Topics in Detail: Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 37. Topics in Detail: Algorithm and Data Structure Design Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 38. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 39. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 40. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Stacks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 41. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Stacks Lists Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 42. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Stacks Lists Trees and Graphs Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 43. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Stacks Lists Trees and Graphs Sorting and Searching Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 44. Topics in Detail: Algorithm and Data Structure Design Abstract Data Types Queues Stacks Lists Trees and Graphs Sorting and Searching Motivation and Introduction of Analysis for Algorithm Complexity Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47
  • 45. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 29 / 47
  • 46. Grades 100 Marks - Grouped as follows: Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 47. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 48. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 49. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 50. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Report: 5 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 51. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Report: 5 Marks Oral: 10 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 52. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Report: 5 Marks Oral: 10 Marks Project (Bonus): 10 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 53. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Report: 5 Marks Oral: 10 Marks Project (Bonus): 10 Marks Final Exam: 60 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 54. Grades 100 Marks - Grouped as follows: Mid-Term Exam: 10 Marks Labs: 10 Marks Attendance: 5 Marks Report: 5 Marks Oral: 10 Marks Project (Bonus): 10 Marks Final Exam: 60 Marks Total: 100 Marks Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47
  • 55. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 31 / 47
  • 56. Report Write a Report on ”Data Structures and Algorithms” Covering: Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 57. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 58. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 59. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 60. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language How we can use ”Python” ”C#” ”Java” in implementing ”Data Structures and Algorithms” Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 61. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language How we can use ”Python” ”C#” ”Java” in implementing ”Data Structures and Algorithms” Limits of Computer Resources Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 62. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language How we can use ”Python” ”C#” ”Java” in implementing ”Data Structures and Algorithms” Limits of Computer Resources Why Computer Algorithms are Important Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 63. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language How we can use ”Python” ”C#” ”Java” in implementing ”Data Structures and Algorithms” Limits of Computer Resources Why Computer Algorithms are Important Different Programming problems that can be solved by Algorithms Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 64. Report Write a Report on ”Data Structures and Algorithms” Covering: Why we need Data Structures Different Data Structures, Why we need them Advantages of ”Python / C# / Java” as a Programming Language How we can use ”Python” ”C#” ”Java” in implementing ”Data Structures and Algorithms” Limits of Computer Resources Why Computer Algorithms are Important Different Programming problems that can be solved by Algorithms Examples of ”Python / C# / Java based Solutions” for different ”Computer Algorithms” challenges Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47
  • 65. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 33 / 47
  • 66. Dr.Haitham A. El-Ghareeb Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 34 / 47
  • 67. Project Bonus Working Project must be delivered at the end of the subject. Project entitles how we used Data Structures and Algorithms to solve one or more of the challenging problems ”8 Queen Problem, Sorting, etc.” Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 35 / 47
  • 68. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 36 / 47
  • 69. What Programming Language Shall I Learn? Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 37 / 47
  • 70. I don’t like Programming! Network Engineer Web Designer ’Front End Engineer’ Graphic Designer ’2D, 3D’ System Administrator Software Testing Quality Assurance Team etc... Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 38 / 47
  • 71. Peter Norvig 1996-1998: Junglee Corp. Chief Scientist 1994-1996: Harlequin, Inc. Chief Designer 1991-1994: Sun Microsystems Labs Senior Scientist 1986-1991: University of California, Berkeley Research Faculty Member 1985-1986: University of Southern California Assistant Professor 1978-1980: Higher Order Software, Inc. Member of Technical Staff 1977-1977: Woods Hole Oceanographic Institute Summer Programming Intern Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 39 / 47
  • 72. Teach Yourself Programming in Ten Years Peter Norvig 2001-now: Google Director of Research (2006-now); formerly Director of Search Quality (2002-2006) and Machine Learning (2001) 1998-2001: NASA Ames Research Center Division Chief, Computational Sciences Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 40 / 47
  • 73. Recipe Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 74. Recipe Get interested in programming, and do some because it is fun. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 75. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 76. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 77. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 78. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 79. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 80. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 81. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 82. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 83. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 84. Recipe Get interested in programming, and do some because it is fun. Program. The best kind of learning is learning by doing. Talk with other programmers; read other programs. Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal). Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47
  • 85. Recipe Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 86. Recipe Remember that there is a ”computer” in ”computer science”. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 87. Recipe Remember that there is a ”computer” in ”computer science”. Know how long it takes your computer to execute an instruction, Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 88. Recipe Remember that there is a ”computer” in ”computer science”. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 89. Recipe Remember that there is a ”computer” in ”computer science”. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 90. Recipe Remember that there is a ”computer” in ”computer science”. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 91. Recipe Remember that there is a ”computer” in ”computer science”. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47
  • 92. Course Resources Course Page: http://courses.helghareeb.net/2012-2013/dsa You will find: Updated Slides, Important Announcements, etc. Course G+ Page: https://plus.google.com/u/1/b/108828963463022379521/ 108828963463022379521/posts You can post questions, start discussions, share material, etc. Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 43 / 47
  • 93. Text Book Lecture Notes will be available soon inchallah Related Links and Further Readings are posted on Web site Fresh items are posted on G+ Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 44 / 47
  • 94. Teaching Assistants Osama Abu Al-Nasr Mohamed Al-Hossini Eslam Reda Shahenda Al-Kholi Mohamed Abd-Raboh Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 45 / 47
  • 95. Labs Visual Studio .Net .Net Framework C# Iron Python Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 46 / 47
  • 96. Finally Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 47 / 47
  • 97. Finally Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 48 / 47