|
Dec 21, 2024
|
|
|
|
Catalog 2022-2023 [ARCHIVED CATALOG]
|
CSD 335 Algorithms and Data 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
Course Outcomes Upon successful completion of this course students will be able to:
- Explain the basic principles of algorithm analysis and 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 differences 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 priority queue and heap data structures, including heapsort
- Explain, compare, and implement different search algorithms and search data structures, including varieties of binary search trees and hash tables
- Explain graph properties and types, and implement different graph representations
- Describe different graph search algorithms
- Explain, implement, and analyze minimum spanning trees algorithms
Program Outcomes This course teaches to the following program outcomes:
- demonstrate competency in software engineering, software testing principles, and quality assurance techniques
- identify, evaluate, and apply efficient algorithms and technologies required for developing software system
- be prepared to obtain an entry-level position at a software development company
Total Hours: 60 Theory (Lecture) Hours: 40 Guided Practice (Lab or Clinical) Hours: 20
|
|