Sep 07, 2024  
2024-2025 College Catalog 
    
2024-2025 College Catalog

CIS 269 - Data Structures

3 Credits, 3 Contact Hours
3 lecture periods 0 lab periods
Advanced topics in computer science and programming in C++ Includes software engineering concepts and theory, memory management, inheritance, overloading, abstract classes, review of C++ stacks, queues, recursion, and dynamic abstract data structures. Also includes source control, templates, hash tables, sort and search algorithms, file handling and streams, trees, graphs and networks.

Prerequisite(s): CIS 131  and CIS 278 .
Gen-Ed: Meets AGEC Options requirement; Meets CTE - Options requirement



Button linking to AZ Transfer course equivalency guide  

Course Learning Outcomes
  1. Implement composite data types, structures, and classes.
  2. Code search algorithms. 
  3. Determine relative timing complexity (Big O  Notation) relating to the sort and search algorithms. 
  4. Code various complex algorithms with memory management components, classes, and pointers.
  5. Code breadth first and depth first algorithms.
  6. Create templates.
  7. Write to multiple file handles and streams in a program.

Outline:
  1. Software Engineering Concepts and Theory
  2. Review of C++    
    1. Classes, types and declarations
    2. Operators
    3. Control flow statements
    4. Pointers – single and multi-level indirection
    5. Functions – including function pointers
    6. Inheritance, overloading
    7. Abstract classes
    8. Streams and file handles.   
  3. Stacks and Queues    
    1. Add an element to a stack or queue
    2. Delete an element from a stack or queue
    3. Use a circular array to simulate a stack or queue
    4. Simulate a stack or queue using a linked list
    5. Stack overflow   
  4. Recursion    
    1. Divide and conquer
    2. Backtracking
    3. Removal of
  5. Dynamic Abstract Data Structures    
    1. Linked lists
    2. Trees        
      1. Binary
      2. Binary search trees
      3. AVL trees (balanced)   
  6. Sort and Search Algorithms    
    1. Quick sort
    2. Merge sort
    3. Heap sort
    4. Radix sort
    5. Hash tables
    6. Introduction to Big O notation and analysis
  7. Memory Management    
    1. Destructor calling order
    2. Memory leaks
    3. Garbage collection
  8. Hash Tables    
    1. Hash functions
    2. Types of hash tables
    3. Addressing schemes
    4. Analysis of complexity   
  9. Templates    
    1. Creating a template
    2. Extending an existing template   
  10. Graphs, Trees and Networks    
    1. Adjacency matrix
    2. Depth-first and breadth-first search
    3. Shortest path algorithm   


Effective Term:
Fall 2023