ITEC 360. Data Structures and Analysis of Algorithms.
Prerequisites: ITEC 122, ITEC 320, ITEC 324 and MATH 151
Credit Hours: (3)
Includes data structures, concepts and algorithms used in the solution of nonnumeric
                                    problems; applications to data management systems, file organization, information
                                    retrieval, list processing and programming languages.
Detailed Description of Content of Course
Topics include:
1. Mathematical Concepts: Complexity of algorithms (iterative and recurrences), Summation
                                    formulas and induction
2. Elementary Data Structures (Arrays, Lists, Stacks and Queues)
3. Binary Search Trees (AVL, Red-Black and B-Trees)
4. Hash Tables
5. Sorting and Searching algorithms
6. Priority Queues and Heaps
7. Algorithm Design Techniques (Divide and Conquer, Greedy and Dynamic Programming
                                    w/memoization)
8. Graph Algorithms (Elementary, Minimum Spanning Trees, Shortest Paths).
9. NP-completeness
Detailed Description of Conduct of Course
Programming projects are assigned to give students experience in implementing existing
                                    algorithms. Students are also given several problems for which they are required to
                                    design and implement efficient algorithms.
Goals and Objectives of the Course
Students who complete the course will be able to:
1. Analyze the asymptotic running times of iterative and recursive algorithms in terms
                                    of Theta (asymptotic tight bound), Big Oh (asymptotic upper bound) and Omega (asymptotic
                                    lower bound) notations.
2. Use appropriate data structures for sorting and searching data.
3. Apply appropriate algorithmic design methods from among divide and conquer, greedy
                                    and dynamic programming to design and implement solutions to various problems (e.g.,
                                    string matching).
4. Apply graph theory to design and implement solutions to various problems.
5. Identify the methodology of proving a problem to be NP-complete.
Assessment Measures
Students will be evaluated based on several programming assignments, and at least
                                    two examinations.
Other Course Information
None.
Review and Approval
October 14, 2016
Revised: June 1, 2012
Sept. 25, 2001              Updated                                 John P. Helm,
                                    Chair
Oct. 30, 1996               Prerequisite change                 Edward G. Okie, Chair
May 12, 1994               Updated for 1994-95                Edward G. Okie, Chair
October 1, 1991           Updated for 1991-92                Ivan B. Liss, Chair