lgorithms
              ures           and A
       S truct
Data
                                        b
                                - Gharee
                    a   m A. El
          D r.Haith
a l Lec ture
Fin
                       hareeb
              ham El-G
      Dr.Hait
Conclusion
!   Where have we been?

!   What have we learned?

!   Why we have taken this path?

!   Where to go from here?
we be en?
 h ere h ave
W                             ham El
                                     -Ghareeb
                     – Dr.Hait
    Final   L ecture
Fact 1
!   2nd year Faculty of Computers Student:
  !   Loves Programming, Hopefully!
  !   Doesn’t know about Programming!
  !   Hates Programming!
Data Structures and Algorithms

!   Programming Language Independent
!   C# and Java are the most widely used
    Programming Languages
  !   They are most likely similar
!   We have chosen C# as you might be familiar
!   We have introduced Python for Novice
Fact 2
!   2nd Year Faculty of Computers Student:
  !   Doesn’t Read / Research
  !   Doesn’t Write Code
  !   Doesn’t Co-operate with each other
Data Structures and Algorithms

!   Delivery of Reports (one or two)

!   Delivery of Projects, as Bonus

!   Providing Lecture Notes online

!   Study Groups

!   Student of the Week
Fact 3
!   2nd Year Faculty of Computers Student:
  !   Not used to ‘expressive’ ‘open ended’ questions
Data Structures and Algorithms

!   Mid-term Exam
learn ed?
   t have we
Wha                                  -Ghareeb
                              ham El
                     – Dr.Hait
    Final   L ecture
L ectu res?
How Many                              hareeb
                                    -G
                             ham El
                    – Dr.Hait
   Final   L ecture
2 Lect ures
        1
                                 -Ghareeb
                          ham El
                 – Dr.Hait
Final   L ecture
L e c ture 1
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Topics
!   Welcome to Data Structures and Algorithms
  !   Importance of the Subject
!   Recipe to be a Programmer:
  !   10K + Hours
  !   Peter Norvig
L e c ture 2
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Programming Languages are
Not the Same
!   Different Programming Language Categories

!   19 Different Topics for Comparison

!   C#, Java, C++ They are the same!

!   Quick intro to C#
L e c ture 3
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Collections and Generics
! Slideshare mentioned your access, Thank You J
!   Collections and Collection Types
!   Collection Properties and Methods
!   Generics
!   Evaluating Data Structures Performance
!   Chart
L e c ture 4
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
String Theory
!   Strings are Collections
!   Strings are immutable
!   String and string are equivalent
!   Strings are Reference Types
!   Strings are Nullable
!   Strings have built-in Methods and Properties
L e c ture 5
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Arrays and Arraylists
!   Array is Class
!   Arrays are indexed collections of data
!   Vector, Multidimensional, Parameter, Jagged
! Arraylist is an Array that grows Dynamically
! Arraylist Properties and Methods
!   Memory Management of Arrays
L e c ture 6
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Stacks and Queues
!   LIFO vs. FIFO

!   Programming Languages vs. Operating Systems
  !   Push, Pop, Peek, Count
  ! Enqueue, Dequeue, Count
!   Operations, Properties, Remarks
L e c ture 7
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Basic Comparison Sort
!   Sorting

!   Order Theory

!   Weak, Standard Order

!   Sorting Algorithm

!   Bubble, Selection, Insertion Sort
L e c ture 8
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Algorithm Analysis
Searching
!   Algorithms, Execution Time, Complexity Analysis
!   Growth Rates
!   Big-O Notation
!   Classes of Algorithm
!   Code Evaluation
!   Searching: Linear, and Binary Search
L e c ture 9
                                       -Ghareeb
                                ham El
                       – Dr.Hait
      Final   L ecture
Data Structures in Python
!   Crash Course      !   Lists          !   Set
  !   Numbers            !   As Stacks   !   Dictionaries
                         !   As Queues
  !   Strings
                      !   Functional     !   Looping
  !   Lists               Programming
  !   Control Flows
                         !   Map
  !   Functions          !   Reduce
!   Coding Style         !   Filter
cture 10
Le                             ham El
                                      -Ghareeb
                      – Dr.Hait
     Final   L ecture
Recursion
Binary Search Tree
!   Recursion: Recursive Function and Solutions

!   Trees: Tree Structure

!   Binary Trees

!   Tree Traversals: Pre-Order, In-Order, Post-Order,
    Breadth First
cture 11
Le                             ham El
                                      -Ghareeb
                      – Dr.Hait
     Final   L ecture
Expression Trees
!   Expression Trees

!   Heap

!   Heap Sort

!   Moore’s Code
cture 12
Le                             ham El
                                      -Ghareeb
                      – Dr.Hait
     Final   L ecture
Conclusion
!   Where have we been?

!   What have we learned?

!   Why we have taken this path?

!   Where to go from here?
this Path?
         ve ta          ken
Why we ha                               hareeb
                                      -G
                               ham El
                      – Dr.Hait
     Final   L ecture
Path
!   Focusing on Basics of C# Programming
    Language

!   Stepping Slowly and Smoothly in Data
    Structures and Algorithms

!   Mixing Object Oriented Programming Language
    and Interpreted Functional Programming
    Language
Path (Cont.)
!   Highlighting e-Learning and Social Networks in
    Communication:
  !   Online Course Page
  !   Twitter and G+
!   Reports Delivery
mh ere?
         to G O fro
W here                               -Ghareeb
                              ham El
                     – Dr.Hait
    Final   L ecture
Professional Programmer
!   Practice, Practice, Practice

!   Keep yourself Updated

!   Follow online Resources

!   Become Master of One Programming Language

!   Become Familiar with Different Programming
    Languages
Algorithmic Thinking
!   Focus on Programming Language independent
    Techniques

!   Participate in Online and Faculty Communities

!   Become Partner with worldwide consortiums

!   Participate in Competitions

!   Read online Magazines
DSA - 2012 - Conclusion

DSA - 2012 - Conclusion

  • 1.
    lgorithms ures and A S truct Data b - Gharee a m A. El D r.Haith
  • 2.
    a l Lecture Fin hareeb ham El-G Dr.Hait
  • 3.
    Conclusion !   Wherehave we been? !   What have we learned? !   Why we have taken this path? !   Where to go from here?
  • 4.
    we be en? h ere h ave W ham El -Ghareeb – Dr.Hait Final L ecture
  • 5.
    Fact 1 !  2nd year Faculty of Computers Student: !   Loves Programming, Hopefully! !   Doesn’t know about Programming! !   Hates Programming!
  • 6.
    Data Structures andAlgorithms !   Programming Language Independent !   C# and Java are the most widely used Programming Languages !   They are most likely similar !   We have chosen C# as you might be familiar !   We have introduced Python for Novice
  • 7.
    Fact 2 !  2nd Year Faculty of Computers Student: !   Doesn’t Read / Research !   Doesn’t Write Code !   Doesn’t Co-operate with each other
  • 8.
    Data Structures andAlgorithms !   Delivery of Reports (one or two) !   Delivery of Projects, as Bonus !   Providing Lecture Notes online !   Study Groups !   Student of the Week
  • 9.
    Fact 3 !  2nd Year Faculty of Computers Student: !   Not used to ‘expressive’ ‘open ended’ questions
  • 10.
    Data Structures andAlgorithms !   Mid-term Exam
  • 11.
    learn ed? t have we Wha -Ghareeb ham El – Dr.Hait Final L ecture
  • 12.
    L ectu res? HowMany hareeb -G ham El – Dr.Hait Final L ecture
  • 13.
    2 Lect ures 1 -Ghareeb ham El – Dr.Hait Final L ecture
  • 14.
    L e cture 1 -Ghareeb ham El – Dr.Hait Final L ecture
  • 15.
    Topics !   Welcometo Data Structures and Algorithms !   Importance of the Subject !   Recipe to be a Programmer: !   10K + Hours !   Peter Norvig
  • 16.
    L e cture 2 -Ghareeb ham El – Dr.Hait Final L ecture
  • 17.
    Programming Languages are Notthe Same !   Different Programming Language Categories !   19 Different Topics for Comparison !   C#, Java, C++ They are the same! !   Quick intro to C#
  • 18.
    L e cture 3 -Ghareeb ham El – Dr.Hait Final L ecture
  • 19.
    Collections and Generics !Slideshare mentioned your access, Thank You J !   Collections and Collection Types !   Collection Properties and Methods !   Generics !   Evaluating Data Structures Performance !   Chart
  • 20.
    L e cture 4 -Ghareeb ham El – Dr.Hait Final L ecture
  • 21.
    String Theory !  Strings are Collections !   Strings are immutable !   String and string are equivalent !   Strings are Reference Types !   Strings are Nullable !   Strings have built-in Methods and Properties
  • 22.
    L e cture 5 -Ghareeb ham El – Dr.Hait Final L ecture
  • 23.
    Arrays and Arraylists !  Array is Class !   Arrays are indexed collections of data !   Vector, Multidimensional, Parameter, Jagged ! Arraylist is an Array that grows Dynamically ! Arraylist Properties and Methods !   Memory Management of Arrays
  • 24.
    L e cture 6 -Ghareeb ham El – Dr.Hait Final L ecture
  • 25.
    Stacks and Queues !  LIFO vs. FIFO !   Programming Languages vs. Operating Systems !   Push, Pop, Peek, Count ! Enqueue, Dequeue, Count !   Operations, Properties, Remarks
  • 26.
    L e cture 7 -Ghareeb ham El – Dr.Hait Final L ecture
  • 27.
    Basic Comparison Sort !  Sorting !   Order Theory !   Weak, Standard Order !   Sorting Algorithm !   Bubble, Selection, Insertion Sort
  • 28.
    L e cture 8 -Ghareeb ham El – Dr.Hait Final L ecture
  • 29.
    Algorithm Analysis Searching !  Algorithms, Execution Time, Complexity Analysis !   Growth Rates !   Big-O Notation !   Classes of Algorithm !   Code Evaluation !   Searching: Linear, and Binary Search
  • 30.
    L e cture 9 -Ghareeb ham El – Dr.Hait Final L ecture
  • 31.
    Data Structures inPython !   Crash Course !   Lists !   Set !   Numbers !   As Stacks !   Dictionaries !   As Queues !   Strings !   Functional !   Looping !   Lists Programming !   Control Flows !   Map !   Functions !   Reduce !   Coding Style !   Filter
  • 32.
    cture 10 Le ham El -Ghareeb – Dr.Hait Final L ecture
  • 33.
    Recursion Binary Search Tree !  Recursion: Recursive Function and Solutions !   Trees: Tree Structure !   Binary Trees !   Tree Traversals: Pre-Order, In-Order, Post-Order, Breadth First
  • 34.
    cture 11 Le ham El -Ghareeb – Dr.Hait Final L ecture
  • 35.
    Expression Trees !  Expression Trees !   Heap !   Heap Sort !   Moore’s Code
  • 36.
    cture 12 Le ham El -Ghareeb – Dr.Hait Final L ecture
  • 37.
    Conclusion !   Wherehave we been? !   What have we learned? !   Why we have taken this path? !   Where to go from here?
  • 38.
    this Path? ve ta ken Why we ha hareeb -G ham El – Dr.Hait Final L ecture
  • 39.
    Path !   Focusingon Basics of C# Programming Language !   Stepping Slowly and Smoothly in Data Structures and Algorithms !   Mixing Object Oriented Programming Language and Interpreted Functional Programming Language
  • 40.
    Path (Cont.) !  Highlighting e-Learning and Social Networks in Communication: !   Online Course Page !   Twitter and G+ !   Reports Delivery
  • 41.
    mh ere? to G O fro W here -Ghareeb ham El – Dr.Hait Final L ecture
  • 42.
    Professional Programmer !  Practice, Practice, Practice !   Keep yourself Updated !   Follow online Resources !   Become Master of One Programming Language !   Become Familiar with Different Programming Languages
  • 43.
    Algorithmic Thinking !  Focus on Programming Language independent Techniques !   Participate in Online and Faculty Communities !   Become Partner with worldwide consortiums !   Participate in Competitions !   Read online Magazines