Topics

COP3530 Data Structures – Topics and Lectures

  1. Introduction to Data Structures – The ability to build structures that have the ability to be useful to the programmer is one of the fundamental principles of computer science and programming.
  2. Algorithms and Programming – We will use the term functions. A function can implement an algorithm, it can also implement multiple algorithms – meaning that it could be broken into multiple smaller functions.
  3. Basic Data structures – We can define the interface of the list with the following capabilities. It is the Interface which defines an object as a List, if it has expected behavior to the defined interface – it is a List.
  4. Stacks and Queues – Two extremely common data structures are stacks and queues. A stack is just like what it is called, and operates on the principle Last In – First Out (commonly called LIFO). A queue looks a lot like a stack, but it is also exactly as the name describes and operates on the principle First In First Out (also called FIFO).
  5. Recursive Problems – To understand how recursion works – you must first understand the concept of a stack.  Because calls to computer functions are held on a stack, recursion follows the pattern of a stack.
  6. Search techniques – One of the great things about computers is the ability to search very quickly. This is part because the computer can perform very mundane chores rapidly, but when the searching gets into the billions, trillions, and beyond – you need more than just brute force. You will want to know how searching algorithms work – and then get an understanding of sorting and hashing – all the techniques used to speed that searching up.
  7. Sorting Techniques – Once you have mastered searching sorted data for values – you are surely asking yourself, how do we sort the data?  There are many techniques for sorting and the choice of technique is surprisingly important.
  8. Hashing Techniques – Hashing in computer science (not to be confused with the running/drinking group of the same name) – refers to sorting items into bins or buckets. The concept is simple and commonly practiced in real life to aid in searching for items.
  9. Indexing techniques – We are all familiar with indexes, they are those handy things in the back of textbooks that allow you to look up the locations of selected references to sets of keywords. They are the same thing in the computer world.
  10. Tree Data Structures – Once again we have a data structure (and an Abstract Data Type) that mimics a great real-world analogy. The terminology of trees is easy; nodes, branches, root, leaf, parent, child, and siblings.
  11. Graph Data Structures – We end our journey with graphs. Graphs lift that limitation on trees where trees can only represent hierarchical relationships – graphs do not have this limitation.