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

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 DataStructures? Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47
  • 27.
    Topics Include Why DataStructures? 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 DataStructures? 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 DataStructures? 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 givesthe student greater experience in: Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47
  • 32.
    Course Importance Course givesthe 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 givesthe 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 givesthe 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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Reporton ”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 Projectmust 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 LanguageShall I Learn? Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 37 / 47
  • 70.
    I don’t likeProgramming! 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 Programmingin 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