SlideShare a Scribd company logo
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

PDF
Lecture 02 - DSA
PDF
DSA - Lecture 03
PDF
Lecture 9 - DSA - Python Data Structures
PDF
Lecture 07 Data Structures - Basic Sorting
PPTX
Linkages to EHRs and Related Standards. What can we learn from the Parallel U...
PPTX
14. Files - Data Structures using C++ by Varsha Patil
PPTX
Clinical modelling with openEHR Archetypes
PDF
A simple web-based interface for advanced SNOMED CT queries
Lecture 02 - DSA
DSA - Lecture 03
Lecture 9 - DSA - Python Data Structures
Lecture 07 Data Structures - Basic Sorting
Linkages to EHRs and Related Standards. What can we learn from the Parallel U...
14. Files - Data Structures using C++ by Varsha Patil
Clinical modelling with openEHR Archetypes
A simple web-based interface for advanced SNOMED CT queries

Viewers also liked (20)

PPTX
Data structures and algorithms lab5
PPT
Database structure Structures Link list and trees and Recurison complete
PPT
Introduction to data structures and Algorithm
PPTX
Unit1 principle of programming language
PPT
Object Oriented Analysis and Design
PPT
Fundamentals of data structures
PPTX
Data structures and algorithms lab3
PPTX
Data structures and algorithms lab2
PDF
Difference between c# generics and c++ templates
PPTX
Data structures and algorithms lab11
PPTX
Data structures and algorithms lab8
PPTX
Data structures and algorithms lab1
PDF
Data structure circular list
PDF
10 generics a-4_in_1
PPTX
Data structures1
PDF
It6601 mobile computing unit 4 questions
PDF
Enum Report
PDF
Java Day-7
PDF
Java Day-2
PPTX
Java 102 intro to object-oriented programming in java - exercises
Data structures and algorithms lab5
Database structure Structures Link list and trees and Recurison complete
Introduction to data structures and Algorithm
Unit1 principle of programming language
Object Oriented Analysis and Design
Fundamentals of data structures
Data structures and algorithms lab3
Data structures and algorithms lab2
Difference between c# generics and c++ templates
Data structures and algorithms lab11
Data structures and algorithms lab8
Data structures and algorithms lab1
Data structure circular list
10 generics a-4_in_1
Data structures1
It6601 mobile computing unit 4 questions
Enum Report
Java Day-7
Java Day-2
Java 102 intro to object-oriented programming in java - exercises
Ad

Similar to DSA-2012-Lect00 (6)

PDF
Lect02 120929183452-phpapp02
PDF
Lect01 120922175045-phpapp01
PDF
Lecture 01 - Research Methods
PPT
PDF
Select a Research Brand Name
PPT
Mixed Method Research
Lect02 120929183452-phpapp02
Lect01 120922175045-phpapp01
Lecture 01 - Research Methods
Select a Research Brand Name
Mixed Method Research
Ad

More from Haitham El-Ghareeb (20)

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

Recently uploaded (20)

PDF
Anesthesia in Laparoscopic Surgery in India
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
RMMM.pdf make it easy to upload and study
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Cell Types and Its function , kingdom of life
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
Basic Mud Logging Guide for educational purpose
PDF
Complications of Minimal Access Surgery at WLH
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
PPH.pptx obstetrics and gynecology in nursing
PPTX
master seminar digital applications in india
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Anesthesia in Laparoscopic Surgery in India
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
human mycosis Human fungal infections are called human mycosis..pptx
102 student loan defaulters named and shamed – Is someone you know on the list?
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
RMMM.pdf make it easy to upload and study
GDM (1) (1).pptx small presentation for students
Computing-Curriculum for Schools in Ghana
Cell Types and Its function , kingdom of life
Final Presentation General Medicine 03-08-2024.pptx
Basic Mud Logging Guide for educational purpose
Complications of Minimal Access Surgery at WLH
VCE English Exam - Section C Student Revision Booklet
PPH.pptx obstetrics and gynecology in nursing
master seminar digital applications in india
Supply Chain Operations Speaking Notes -ICLT Program
Renaissance Architecture: A Journey from Faith to Humanism
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES

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