Topic Outline
             Introduction to Abstraction
                Terminology
                Modules (in DEC Pascal)
             Data Abstraction (ADT) 
                Set ADT
                List ADT
                String ADT
                Stack ADT
                Queue ADT
                Table ADT
             Recursion       
                Iteration versus Recursion
                Recursive Programming and Backtracking
             Pointers and Dynamic ADTs 
                Dynamic Set ADT
                Dynamic List ADT
                Dynamic Stack ADT
                Dynamic Queue ADT
             Binary Trees        
                Tree Construction
                Tree Traversal
                Binary Search Trees
                Tree ADT
             Searching, Sorting and Algorithm Analysis
                Analyzing Time Efficiency
                Searching
                Analyzing Techniques
                Sorting
             Hashing 
             Modular Programming in C 
             Introduction to Object Oriented Programming in C++ 
