Design of new data structures and their implementations. Students gain familiarity with using appropriate data structures in solving problems, and creating alternative implementations of data structures. Develop a program using an ADT provided by the instructor, and then run it using alternative implementations. Students gain an appreciation for abstraction, modularity and substitutability of different implementations. Trace execution of a recursive program, viewing changes of values of local variables and parameters.
Student gains a better understanding of recursion.
Develop a recursive solution to programming problem. Student gains experience with using recursion as a problem-solving tool. Students will gain familiarity with predicting and measuring time and space requirements of common algorithms. Timing of selected algorithms from various complexity classes in order to see difference in running times for small and large problems. Stu dents will gain an understanding of complexity classes, and a further appreciation for asymptotic measurements of complexity and the difference between average and worst case analysis.