I. Course Title: Introduction to Collections, Data Structures, and Algorithms
                                    
                                    II. Course Number: ITEC 300
                                    
                                    III. Credit Hours: 3 credits
                                    
                                    IV. Prerequisites: ITEC 120 (Grade of 鈥淐鈥 or better)
                                    
                                    V. Course Description: 
                                    
                                    The course will explore the concepts of simple collections as well as the data structures
                                       and algorithms used to implement them with a particular focus on optimization.
                                    
                                    VI. Detailed Description of Content of the Course:
                                    
                                    Topics include:
                                    
                                    
                                       
                                       - Collections and Data Structures including stacks, queues, lists, binary tree concepts
                                          and binary search tree concepts.
 
                                       
                                       - Sorting and Searching Algorithms including an introduction to recursive algorithms.
 
                                       
                                       - Analysis of Algorithms and Data Structures with a particular focus upon Optimization.
 
                                       
                                       - The implementation of and use of Collections and Data Structures in the Java Collections
                                          API including the Analysis of the Algorithms used in those implementations, including
                                          both array-based and linked implementations.
 
                                       
                                    
                                    VI. Detailed Description of Conduct of Course:
                                    
                                    This will be a primarily asynchronous, online course with online meetings to accompany
                                       the asynchronous modules.
                                    
                                    VII. Goals and Objectives of the Course:
                                    
                                    Students who complete the course will be able to:
                                    
                                    
                                       
                                       - Demonstrate a conceptual understanding of the purpose, algorithmic complexity, and
                                          application of classic collections including stacks, queues, lists and trees.
 
                                       
                                       - Analyze, design, implement and document classic collections including stacks, queues,
                                          and lists.
 
                                       
                                       - Implement and document, including algorithm analysis, an object-oriented solution
                                          in Java to a problem requiring multiple classes and the use of Collections and Data
                                          Structures.
 
                                       
                                       - Demonstrate a conceptual understanding of classic sorting algorithms, their algorithmic
                                          complexity, and their application including the recursive mergesort and quicksort
                                          algorithms.
 
                                       
                                    
                                    VIII. Assessment Measures:
                                    
                                    Student achievement is measured by tests and evaluation of homework and programming
                                       assignments.
                                    
                                    Review and Approval
                                    
                                    August 2020