Course Objectives:
|
Upon completion of the course, students shall be able to:
- Select the most appropriate of, select an implementation strategy for and implement fundamental data structures including linked structures, stacks, queues, hash tables, graphs, and trees
- Determine computational complexity of simple functions including asymptotic analysis of upper and average complexity bounds, big-O notation, standard complexity classes, and empirical measurements of performance
- Implement recursive subroutines, including recursive specification of mathematical functions (such as factorial and Fibonacci), and simple recursive procedures (such as Towers of Hanoi, permutations, fractal patterns)
- Evaluate the output of and know the computational complexity of fundamental computing algorithms including sorting algorithms (Quicksort, heapsort, mergesort), hashing (including collision avoidance), graph representation and traversal, and binary search trees
- Implement programs using object-oriented design and object-oriented programming including encapsulation and information hiding, separation of specification and implementation; classes, subclasses, and inheritance; polymorphism; class hierarchies
- Implement programs using event-driven programming and graphical user interface design
- Communicate an understanding of a current computer ethics issue
|