Mar 28, 2024  
2020-2021 Course Catalog 
    
2020-2021 Course Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CIS 152 - Data Structures

Credits: 3
Lecture Hours: 2
Lab Hours: 2
Practicum Hours: 0
Work Experience: 0
Course Type: Open
This course provides a strong foundation in commonly used data structures including collections, linked lists, stacks, queues, trees, maps and heaps, etc. Students will use an object-oriented programming language to design, write and test medium-sized programs that implement data structures.
Prerequisite: CIS 161  OR CIS 169  OR CIS 171  OR CIS 189  OR Instructor Approval
Competencies
 

  1. Design your own classes to define objects
    1. Demonstrate data encapsulation and access modifiers
    2. Create default and non-default constructors
    3. Design overloaded methods
    4. Construct plain objects
  2. Create programs demonstrating inheritance
    1. Create and use abstract classes
    2. Design classes for inheritance
  3. Integrate polymorphism into projects
    1. Use inheritance to create polymorphic references
    2. Use interfaces to create polymorphic references
  4. Examine recursion
    1. Explain the underlying concepts of recursion
    2. Demonstrate how recursion can be used to solve problems
  5. Produce collections
    1. Create a linked list collection implementation
    2. Create an array-based collection implementation
  6. Produce stack implementations
    1. Define stack as an abstract data type
    2. Create a stack class with array-based implementations
    3. Create a stack class with linked list implementations
    4. Demonstrate how stacks can be used to solve problems
  7. Produce queue implementations
    1. Define queue as an abstract data type
    2. Create a queue class with array-based implementations
    3. Create a queue class with linked list implementations
    4. Demonstrate how queues can be used to solve problems
  8. Produce trees as data structures
    1. Define a tree as an abstract data type
    2. Implement trees from abstract data types
    3. Create methods for traversing trees
    4. Demonstrate how tree implementations can be used to solve problems
    5. Use binary trees to represent decision trees
    6. Create a linked implementation of a binary search tree
  9. Implement a heap
    1. Define a heap as an abstract data type
    2. Implement heap methods to create min and/or max heaps
    3. Implement a priority queue
    4. Demonstrate how priority queues implementations can be used to solve problems
  10. Implement a map
    1. Define a map as an abstract data
    2. Implement a map from an abstract data type
    3. Implement a hashmap
    4. Demonstrate how map implementations can be used to solve problems
  11. Examine directed and undirected graphs
    1. Define graphs and graph properties
    2. Define traversals of a graph
    3. Define a minimum spanning tree
    4. Discuss strategies for implementing and traversing graphs
  12. Analyze searching and sorting algorithms
    1. Discuss several search and sorting algorithms and their complexity
    2. Describe search and sort algorithms

Competencies Revised Date: 2020



Add to Portfolio (opens a new window)