Portland Community College | Portland, Oregon Portland Community College

CCOG for CS 260 Spring 2024

View archive version »
Course Number:
CS 260
Course Title:
Data Structures
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

Course Description

Explores stacks, queues, lists, vectors, hash tables, graphs, trees and algorithms including sorting, searching, iterating over data structures and recursion. Prerequisites: CS 162. Audit available.

Addendum to Course Description

Students will complete several lab/programming exercises techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.

Intended Outcomes for the course

Upon successful completion students should be able to:

· Use an understanding of cultural differences in user populations and global software design requirements in order to design effective software.
· Employ good software engineering practices and good software design, always applying Software Engineering Code of Ethics as determined by
Association for Computing Machinery (ACM).
· Employ a deep knowledge of various data structures when constructing a program.
· Design and construct simple object-oriented software with an appreciation for data abstraction and information hiding.
· Effectively use software development tools including libraries, compilers, editors, linkers and debuggers to write and troubleshoot programs.

Outcome Assessment Strategies

Students will demonstrate competency on exam(s) or labs which are constructed to demonstrate:

  • An understanding of the basic data structures.
  • An understanding of the basic search and sort algorithms.
  • The appropriate use of a particular data structure and algorithm to solve a problem.
  • The ability to estimate big-O timings.

Course Content (Themes, Concepts, Issues and Skills)

Course Content

  • data structures
    • doubly linked lists
    • queues (including array based and linked list based implementations)
    • stacks (including array based and linked list based implementations)
    • hash tables (including open addressing and chaining)
    • binary search trees
    • balanced trees (such as 2-3, 2-3-4, or red-black trees)
    • heaps and priority queues
    • graphs (including depth-first and breadth-first algorithms)
  • sorting algorithms
    • basic algorithms such as selection, insertion, and bubble sort
    • advanced algorithms such as quick sort, merge sort
    • radix sort
  • analysis
    • determine a rough estimate of computational complexity using big-O notation
  • C++ Standard Library
    • list, stack, queue containers
    • iterators