Use basic data structures (linked lists, queues, stacks, trees). [CSCI 1101] Explain and use the concept of arrays to store aggregate data. [CSCI 1100] Use pseudo-code to specify an algorithm [CSCI 1100] [INFX 1615] Implement a linked list data structure. [CSCI 1101] Implement simple algorithms to search and sort arrays. [CSCI 1100] Describe the binary tree data structure and binary tree traversals. [CSCI 1101] Implement searching, sorting, and other operations on a linked list. [CSCI 1101] Implement the stack, queue, dequeue, and list abstract data types (ADT) using arrays and linked-lists. [CSCI 1101] Explain and use the concept of recursion. [CSCI 1101] Implement stacks and queues as arrays, arraylists and linked lists. [CSCI 1101]
Describe basic concepts in Graph Theory.Determine the number of primitive operations of an algorithm in terms of instance size.Determine the asymptotic complexity (Big-O) of simple functions such as polynomial, polylogarithmic, and exponential functions.Implement a tree data structure and implement depth-first and breadth-first traversals.Understand, compare, and implement various sorting algorithms, including: selection sort, insertion sort, quicksort, merge sort, heap sort, and radix sort.Describe the graph ADT, as well as depth-first and breadth first traversals.Implement a binary tree data structure and implement pre-order, in-order, and post-order traversals.Implement recursive search and state-space exploration algorithms.Compare and implement various minimum spanning tree algoritms, including: Prim's and Kruskal's algorithms.Compare and implement various shortest path algorithms, including: Dijkstra's and Floyd-Warshal algorithms.Implement simple iterative and recursive algorithms to solve moderately simple tasks.Implement the map, dictionary, and set ADTs using lists, binary search trees, and hash tables.Implement the priority-queue ADT using lists and heaps.Determine the asymptotic complexity of some simple iterative and recursive algorithms.Implement mechanisms to deal with collisions in a hash-table.Select the appropriate data structure to implement a given ADT under a given set of constraints.Select and use appropriate abstract data types, data structures, and algorithms to solve moderately complex problems.