Home About Forms Registration Graduation Course Descriptions Student Resources Faculty Resources

Information Technology 360

ITEC 360. Data Structures and Analysis of Algorithms.

Prerequisites: ITEC 122, ITEC 320, ITEC 324 and MATH 251

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 1, 1991           Updated for 1991-92                Ivan B. Liss, Chair
May 12, 1994               Updated for 1994-95                Edward G. Okie, Chair
Oct. 30, 1996               Prerequisite change                 Edward G. Okie, Chair
Sept. 25, 2001              Updated                                 John P. Helm, Chair

Revised: June 1, 2012