Course Description
The study of algorithms and data structures is fundamental to any computer- science curriculum, but it is not just for programmers and computer science students. Everyone who uses a computer wants it to run faster or to solve larger problems. They have become essential tools in engineering; and from database systems to internet search engines, they have become essential parts of modern software systems. And these are but a few examples as the scope of computer applications continues to grow. This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations which covers elementary data structures, sorting, and searching algorithms.
Sorting: Then we survey fundamental algorithms for sorting that considers several classic algorithms including insertion sort, selection sort merge sort and quicksort. It also features a binary heap implementation of a priority queue.
Searching: This describes several classic symbol-table implementations, including binary search trees and hash tables.
Course learning outcomes:
By the end of this course, students will be able to
- Describe Big O notation
- Describe, Implement and Analyze Stacks and Queues
- Implement and Analyze selection Sort
- Implement and Analyze Insertion Sort
- Implement and Analyze Merge Sort
- Implement and Analyze Quick Sort
- Describe and Implement Priority Queues
- Describe and Implement symbol Tables
- Describe and Implement Binary Search Trees
- Describe and Implement Balanced Binary Search Trees
- Describe and Implement Hash Tables