Welcome to CS 331 for Spring 2009!
At the end of this course, you should be able to...
- Explain, implement, and apply the following data-structures:
- lists (unordered and ordered),
- stacks,
- queues,
- expression trees,
- binary search trees,
- heaps, and
- hash tables.
- Analyze the time and space complexity of algorithms using asymptotic upper bounds (big-O notation).
- Explain and use references and linked structures.
- Outline basic object-oriented design concepts: composition, inheritance, polymorphism.
- Write and test recursive procedures, and explain the run-time stack concept.
- Analyze searching and sorting algorithms, and explain their relationship to data-structures.
- Choose and implement appropriate data-structures to solve an application problem.
- Explain how to use unit tests and version control in your software development.