The second in a sequence of courses for majors in Computer Science. Covers: design and implementation of large-scale problems; abstract data types; data structures (files, sets, lists, stacks, queues, and trees); program verification and complexity; recursion; dynamic concepts (memory, scope, block structures); text processing; and an introduction to searching and sorting algorithms. This course should use the same programming language as CS 911 - Computer Science I. Students should complete BOTH CS 911 and CS 912 at the same school before transferring to the degree-granting school. (Prerequisite: CS 911 - Computer Science I.)
Students will be able to:
1. Identify fundamental memory concepts of stack and heap.
2. Use data models with functions in object-oriented design.
3. Identify fundamental concepts of data structures.
4. Apply object-oriented principles.
5. Explain and use both instance variables and methods and class variables and methods. (Revised 4/24)
6. Apply function overloading and/or operator overloading where language applicable. (Revised 4/24)
7. Write methods for object assignment, copy constructors.
8. Identify and explain concepts and application of inheritance.
9. Design and develop simple class hierarchies.
10. Apply concepts of dynamic binding and polymorphism (and virtual functions where language applicable).
11. Apply concepts of concrete/abstract classes (and interfaces where language applicable).
12. Implement linked lists, including operations such as insertion, deletion, and traversal.
13. Use both arrays or equivalent structures and linked structures to implement stacks and queues including basic operations such as insertion and deletion. (Revised 4/24)
14. Use both arrays or equivalent structures and linked structures to implement binary trees including basic operations such as insertion, deletion, and traversal. (Revised 4/24)
15. Apply recursive programming techniques.
16. Apply and use concepts of templates or generics where language applicable.
17. Implement various sort and search algorithms with an introduction to program verification and complexity.
18. Write programs that consist of multiple source files. (Revised 4/24)
REVISED 04/5/2024 – Descriptor fully reviewed and revised. Effective Fall 2024
Descriptor Revised: #12 reworded:Previous 12. Use both arrays and linked structures to implement linked lists including basic operations such as insertion, deletion, and traversal.Revised 12: Implement linked lists, including operations such as insertion, deletion, and traversal.Spring 2022 - 04/08/2022 - Effective Fall 2022
Previous Revision: Spring 2020, Effective Fall 2020 - 04/09/2020