CS 352 - Data Structures
Course Description:
This course introduces the student to various data structures and advanced algorithmic
concepts. Students will put what they learn into practice by using C++ for programming
projects. These data structures will be covered: linked lists, stacks, queues, and trees.
These concepts will be covered: recursion, searching, sorting, and time-complexity analysis.
Prerequisites: CS 208, a grade of C or better in CS 225. 3:0:3.
Learning Outcomes:
Upon completion of this course, the student should be able to:
- Explain what an abstract data type is.
- Analyze the efficiency of an algorithm using the Big-O notation.
-
Compare and utilize various sorting algorithms (e.g., selection sort,
insertion sort, bubble sort).
- Understand recursion - how it works, how to program it, when to use it.
- Explain the organization of the Standard Template Library.
- Demonstrate proper use of function templates and class templates.
- Implement various data structures using:
- pointers
- dynamic memory allocation
- linked lists (including doubly-linked lists)
- Explain and utilize:
- stacks
- queues (including priority queues)
- trees (including binary search trees)
- Demonstrate creativity and problem-solving skills.
- Write C++ programs that use proper style and documentation.
- Write C++ programs that use:
- recursion
- templates
- pointers
- dynamic memory allocation
- linked lists
- stacks
- queues
- trees
-
Optional - upon completion of this course the student should be able to
write C++ programs that use one or more of these data structures:
- heaps, b-trees, graphs, hash tables
Assessment Measures:
| Assessment Tool |
Linkage to Learning Outcome #: |
| |
|
| Homework Assignments: |
|
| Assign a sufficient amount of homework such that all of the above objectives are covered. |
All |
For each homework assignment, include one or more of: short answer, multiple choice, trace the
given code, debug the given code, analyze the given code for efficiency.
|
1-6, 8 |
| For each homework assignment, include one or more programming projects. |
3, 6-8, 10-12 |
|
In order to meet the "creativity and problem-solving
skills" objective, the student must be required to produce programming project solutions
from given problem descriptions. Note that this objective is not met if a student is
able to produce solutions only by pasting together given code fragments. Although
pasting code fragments together is sometimes appropriate, it does not enforce the
development of creativity and problem-solving skills.
|
9 |
| |
|
| Exams: |
|
Include one or more of: short answer, multiple
choice, trace the given code, debug the given code, analyze the given code for efficiency.
|
1-6, 8 |
| Given a problem description, produce a solution in the form of a short program or a method(s). |
3, 6-8, 11-12 |
Textbooks
To view the approved textbook list, click
here.