Document Type

Syllabus

Publication Date

Spring 2024

Course Description

This course builds on CSC 121 and includes programming topics such as sorting and searching, sets, recursion, and dynamic data types. Additional concepts involve data type abstraction and implementation developed through studying structures such as lists, stacks, queues, hash tables and binary search trees. The course emphasizes object- oriented implementation of these structures. Students learn tools for algorithm analysis and explore the use of standard libraries. The concept of tradeoffs (i.e., time vs. space, iteration vs. recursion, static vs. dynamic) recurs as a theme throughout the course. Prerequisite: CSC 121. Offered each semester. Not offered pass/fail.

Student Outcomes

A student that successfully completes this course should be able to …

  • Implement foundational data structures, their operations, and their performance tradeoffs.
  • Explain the vital implementation details of basic data structures such as lists, stacks, queues, trees, graphs, and priority queues.
  • Evaluate data structures to make appropriate design decisions to solve specific problems efficiently.
  • Apply object-oriented design to take advantage of abstraction and encapsulation in software projects.
  • Evaluate the complexity of algorithms and operations on data structures in terms of time and memory usage.

Share

COinS