Untitled document
Continued study of computer programming including specification and implementation of data structures, and analysis of associated algorithms. Topics include: abstract data types, dynamic memory, templated functions and classes, iterators, exception handling, linked lists, stacks, queues, recursion, trees, searching, sorting, and inheritance. Several significant programming projects are written in C ++.
Untitled document
Continued study of computer programming including specification and implementation of data structures, and analysis of associated algorithms. Topics include: abstract data types, dynamic memory, iterators, linked lists, stacks, queues, recursion, trees, searching, sorting, and inheritance. Several significant programming projects written in C++.
(Grade Only)
Untitled document
Upon completion of the course, students will be able to:
1. Analyze algorithms for efficiency.
2. Use data abstraction as a tool for modeling.
3. Design the system life cycle through software engineering
principles.
4. Construct linked lists, pointers, queues, stacks, and trees as
abstract data types.
5. Design and construct iterative approaches to algorithm development.
6. Evaluate a variety of sorting and searching methods for efficiency.
Untitled document
A. Abstract data types: operator overloading
1. Overloading arithmetic, shorthand arithmetic, and relational
operators
2. Overloading the insertion and extraction operators
3. Overloading the pre and post decrement and increment operators
4. Overloading the square brackets (subscript) operator
5. Overloading operators as member functions, free (global)
functions, and friend functions.
6. Default parameters
B. Pointers and Dynamic Memory
1. Address operator
2. Dereference (indirection) operator
3. Pointer assignment
4. Arrow (dereference and select) operator
5. Arrays of pointers
6. NULL
7. Relationship of arrays and pointers
8. "new" operator
9. "delete" operator
10. Memory leaks
11. Reference types
C. Dynamic memory in classes
1. Assignment operator, including checking for self-assignment
2. Copy constructor
3. Destructor
D. Container Classes
1. Documenting member functions with pre/post conditions
2. Using std::size_t
3. Returning a reference
4. User defined namespaces
E. Linked lists
F. Templated functions and classes
G. Iterators, including user-defined
H. Standard Template Library
I. Exception handling
J. Stacks, including expression evaluation
K. Queues
L. Recursion
1.Development techniques
2.Analysis techniques
M. Trees: specification, implementation, and big-O analyses of
1.Binary search trees
2.Heaps
N. Searching: specification, implementation, and big-O analysis of
1.Sequential search
2.Binary search
3.Hashing
O. Sorting: specification, implementation, and big-O analysis of
1. Selection sort
2. Insertion sort
3. Bubble sort
4. Merge sort
5. Quicksort
6. Heapsort
P. Inheritance
1. Contrasted with composition
2. "is-a" relationship and "has-a" relationship
3. Protected
4. Constructors in inheritance
5. Initializor lists
6. Polymorphism and virtual functions
7. The slicing problem
8. Pure virtual functions and abstract classes
Writing: Assessment tools that demonstrate writing skill and/or require students to select, organize and explain ideas in writing. | Writing 0 - 0% |
None | |
This is a degree applicable course but assessment tools based on writing are not included because problem solving assessments are more appropriate for this course. |
|
Problem solving: Assessment tools, other than exams, that demonstrate competence in computational or non-computational problem solving skills. | Problem Solving 20 - 40% |
Computer programming assignments | |
Skill Demonstrations: All skill-based and physical demonstrations used for assessment purposes including skill performance exams. | Skill Demonstrations 0 - 0% |
None | |
Exams: All forms of formal testing, other than skill performance exams. | Exams 60 - 80% |
Multiple choice, True/false, Matching items, Completion, short answer & programming | |
Other: Includes any assessment tools that do not logically fit into the above categories. | Other Category 0 - 0% |
None | |
Untitled document
Data Structures and other Objects Using C++, 2nd Ed, by
Michael Main and Walter Savitch - Addison Wesley Longman 2000