Data Structures

Prerequisites: CIS 22B or equivalent

Advisory: Mathematics 212 or equivalent.

Course Description: Application of software engineering techniques to the design and development of large programs; data abstraction and structures and associated algorithms: stacks, queues, linked lists, trees, graphs, and hash tables; internal and external sorting; use of recursion; team project.
Text required:

Frank M. Carrano, "Data Abstraction & Problem Solving with C++", sixth edition, Walls and Mirrors

Course objectives: Upon completion of the course, the student will:

  • Create programs which implement the stack data structure.
  • Create programs which implement the queue data structure.
  • Create programs which implement complex linear lists.
  • Create recursive algorithms and relate efficiency to uses of recursion.
  • Create programs which implement the binary tree, binary search tree, AVL tree, priority queues, and binary heaps data structures.
  • Create programs which implement hashed tables.
  • Demonstrate knowledge of advanced sorting algorithms and discuss the usage and relative advantages of various sorts and their efficiency.
  • Demonstrate knowledge of external sorting algorithms.
  • Create programs which implement the graph data structure.
  • Apply software engineering principles including structured programming and abstract data types.
  • Design and implement a team project with multiple source and header files.

Back to Top