 |
 |
 |
 |
 |
CS 335: Data Structures and Algorithms
|
|
|
 |
 |
Course Syllabus
- BRIEF REVIEW OF ESSENTIAL PREREQUISITE CONCEPTS
- Pointers versus References
- Encapsulation of User-defined Data Types in Classes
- Public, Private and Protected Members
- Parameterized Classes (Template Classes)
- Virtual Functions
- Interclass Relationships: Abstract classes, base classes, derived classes and friends
- Function Overriding
- Operator Overloading
- Assertions and Exceptions
- ESSENCE OF COMPONENT-ORIENTED SOFTWARE CONSTRUCTION
- Encapsulation of Interface
- Separation of Implementation
- Sharing the Interface (via Inheritance)
- Sharing the Implementation (via Composition)
- CRITERIA FOR EVALUATION OF SOFTWARE COMPONENTS
- ECONOMY OF TIME AND SPACE
- Formal measures (including big-O)
- Empirical measures
- OTHER RELEVANT CRITERIA (e.g., simplicity, functionality, ease of adaptation and use)
- REUSABLE SOFTWARE COMPONENTS
- COMPONENT SPECIFICATION
- Pre- and post-conditions
- Other kinds of specification (e.g., class invariants, IDLs, axioms)
- ADVANCED DATA STRUCTURES: Specification, definition, alternative implementations, applications,
adaptation, use and reuse
- BASIC STRUCTURES (those that serve as building blocks for more complex structures, either by
composition or inheritance): Date and Time, String, Bit Vector, Dynamic Array,Sequence, Singly Linked
List, Stack, Queue
- DERIVED STRUCTURES: Doubly Linked List, Double-ended Queue, Bag, Set, Heap, Association List,
Table, Dictionary (or Map)
- POLYLITHIC DATA STRUCTURES: Generalized List (as in Lisp), Binary Tree, Graph, Network
- FILE DATA STRUCTURES: Stream, BTree, Block (for storing persistent objects)
- RELATED CONTROL ABSTRACTIONS: Recursion, Iteration, Searching, Hashing, Sorting, Balancing, Permuting
- SOFTWARE COMPONENT LIBRARIES
- C++ Standard Template Library
- Others (e.g., GUI libraries, application "frameworks")
|
|
|
 |