Dec 26, 2024  
2024-2025 Course Catalog 
    
2024-2025 Course Catalog
Add to Portfolio (opens a new window)

CIS 153 - Data Structures

Credits: 4
Lecture Hours: 3
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  with a minimum grade of C- OR CIS 169  with a minimum grade of C- OR CIS 171  with a minimum grade of C- OR CIS 189  with a minimum grade of C-  OR Instructor Approval 
Competencies
  1. Review Object-Oriented Programming (OOP)

    1. Demonstrate encapsulation & polymorphism

    2. Describe inheritance

    3. Discuss abstraction and interfaces

  2. Analyze code complexity

    1. Discuss Big-O notation

    2. Examine complexity of algorithms and code

  3. Examine recursion

    1. Explain the underlying concepts of recursion

    2. Demonstrate how recursion can be used to solve problems

  4. Produce a stack implementation

    1. Define stack as an abstract data type

    2. Create a stack class

    3. Demonstrate how stacks can be used to solve problems

  5. Produce a queue implementation

    1. Define queue as an abstract data type

    2. Create a queue class

    3. Demonstrate how queues can be used to solve problems

  6. Produce collections

    1. Create a dynamic collection (eg, linked list)

    2. Use a collection to create a data structure implementation

  7. Produce trees as data structures

    1. Define a tree as an abstract data type

    2. Describe methods for traversing trees

    3. Demonstrate how trees can be used to solve problems

  8. Incorporate a heap in a program

    1. Define a heap as an abstract data type

    2. Utilize a min and/or max heap

  9. Implement a priority queue

    1. Define a priority queue as an abstract data type

    2. Demonstrate how priority queues can be used to solve problems

  10. Distinguish maps and hashmaps

    1. Define a map as an abstract data

    2. Demonstrate how map or hashmap can be used to solve problems

  11. Examine graphs

    1. Define graphs and graph properties

    2. Define a minimum spanning tree

    3. Determine strategies for implementing and traversing graphs

  12. Analyze searching and sorting algorithms

    1. Discuss several search and sorting algorithms and their complexity

    2. Demonstrate search and sort algorithms 


Competencies Revised Date: AY2025



Add to Portfolio (opens a new window)