|
Course Keywords:
Introduction to Problem Solving (Problem solving, modular design, abstraction and information hiding, OO design. Key issues in programming: modularity, modifiability, ease of use, fail-safe programming, style, debugging.); Recursion; Abstract Data Types; Linked Lists; Stacks; Queues; Algorithm Efficiency (Measuring the efficiency of Algorithms: execution time of algorithms; algorithm growth rates, order-of-magnitude analysis (big O notation)); Sorting (Selection Sort, Bubble Sort, Insertion Sort, Merge Sort, Quick Sort); Trees (Terminology, The ADT, Binary Tree (traversals of a BT, representations of a BT); The ADT Binary Search Tree; The ADT Balanced Search Tree (2-3 Trees, 2-3-4 Trees); AVL Trees; Tables and Priority Queues (The ADT Table The ADT Priority Queue (a variation of the ADT Table, Heaps, a heap implementation of the ADT PQ); Hashing (Hash functions, resolving collisions, efficiency of hashing, designing a good hash function); Graphs (Terminology, Graphs as ADTs,implementing graphs, Graph Traversals: Depth-First Traversal, Breadth-First Traversal, Applications of Graphs).
|