Oct 18, 2018
CSD 335 Algorithms and Structures5 credits
Students study data structures, such as stacks, queues, hash tables, heaps, trees, and graphs, and use different algorithmic approaches to problem solving, such as simple recursion, backtracking, divide and conquer, greedy and brute force algorithms, and dynamic programming. Students analyze algorithm efficiency in terms of memory use and speed, using Big O notation for run-time performance estimation.
Prerequisites: CS 143 and admission to the BAS IT:CSD program
Quarters Offered: Spring
Upon successful completion of this course students will be able to:
- Explain the basic principles of algorithm analysis, big O notation
- Implement elementary data structures, such as arrays, linked lists, and strings
- Explain and implement stack and queue data structures using different underlying data structures.
- Explain the difference in approach and efficiency of recursive algorithms, divide and conquer algorithms, and dynamic programming
- Implement tree data structures, including binary search trees.
- Use different tree traversal techniques.
- Implement, analyze, and compare efficiency of different elementary searching algorithms such as selection, insertion and shell sorts; sort linked lists
- Describe, implement, and analyze efficiency of quicksort and merge sort algorithms
- Explain and implement priority queue and heap data structures; analyze and implement algorithms associated with them, including heapsort
- Explain, compare, and implement different search algorithms and search data structures like different varieties of binary search trees and hash tables
- Explain graph properties and types, implement different graph representations
- Describe different graph search algorithms
- Explain implement and analyze minimum spanning trees algorithms
Total Hours: 60 Lecture Hours: 40 Lab or Clinical Hours: 20