CS 235: Data Structures and Algorithms with C++

Class Program
Credits 5 Lecture Hours 22 Lab Hours 66
The 3rd course in a yearlong study of the foundations of Computer Science. In this course a variety of data structures and their associated algorithms are implemented and utilized. Basic data structures such as arrays, linked lists, stacks, queues, sets, and trees are studied and applied to problems in data storage and manipulation. Basic sorting algorithms are studied. Design, analysis and implementation techniques are discussed to illustrate and apply the concepts of the course.

Prerequisites

CS 132 or Instructor Permission.
Quarters Offered
Fall,
Winter,
Spring
Course Outcomes

Upon successful completion of the course, students should be able to demonstrate the following knowledge or skills:

  1. Apply data abstraction techniques to implement a variety of fundamental data structures.
  2. Analyze the runtime performance of algorithms using big O notation.
  3. Construct, populate, and use sequential data structures, including lists, stacks, queues and sets.
  4. Differentiate between array based and linked list based implementations of sequential data structures.
  5. Implement and analyze basic sorting algorithms including quicksort and merge sort.
  6. Implement algorithms to define (construct, insert, delete, search, and traverse) binary search trees.
  7. Analyze a scenario, select/design the appropriate data structure(s) to apply, and implement an efficient solution to solve the problem
Institutional Outcomes
IO1 Communication: Students will be able to communicate clearly and effectively within a workplace context
IO2 Quantitative Reasoning: Analyze and solve computational problems using a modern program language
IO3 Human Relations/Workplace Skills: Students will be able to demonstrate teamwork, ethics, appropriate safety awareness and/or workplace specific skills
Course Content Outline
  1. Algorithm Analysis & Big O Notation
  2. Arrays & Linked Lists
  3. Recursion & Sorting Algorithms
  4. Stacks, Queues & Sets
  5. Binary Search Trees