Sign In
 

 ICS 202: Data Structures

​Course Information

Class/Laboratory Schedule: 

Class/Laboratory Schedule: Three 50 minutes lectures, One 180 minutes lab per week (3-3-4)

Designation:   Required Course
Course Level:   Undergraduate

Prerequisites

Prerequisite(s) by Topic: 

  • Algorithms and Problem-Solving
  • Recursion
  • Fundamental Computing Algorithms
  • Virtual Machines
  • Declarations and types
  • Abstraction Mechanisms
  • Object-Oriented Programming Paradigm
  • Using APIs

Prerequisite Courses: 


Catalog Description: 

Review of object-oriented concepts; Introduction to design patterns; Basic algorithms analysis; Fundamental data structures - implementation strategies for stacks, queues and linked lists; Recursion; Implementation strategies for tree and graph algorithms; Hash tables; Applications of data structures (e.g. data compression and memory management).

Textbook(s): 

Data Structures and Algorithms in Java, 2nd Edition, Adam Drozdek, Thomson Learning, 2005
Reference(s) and Other Material: 
Data Structures and Algorithms with Object Oriented Design Patterns in Java, Bruno R. Preiss, John Wiley & Sons, Inc., 2000.

Course Outcomes: 

  • Apply object oriented concepts (inheritance, polymorphism, design patterns, etc.) in software design.
  • Implement various data structures and their algorithms, and apply them in implementing simple applications.
  • Analyze simple algorithms and determine their efficiency using big-O notation.
  • Apply the knowledge of data structures to other application domains like data compression and memory management.

Topics Covered: 

  • Review of Object-Oriented Concepts & Introduction to Design Patterns
  • Introduction to Algorithm Analysis.
  • Linked Lists.
  • Stacks & Queues.
  • Recursion.
  • Binary Trees, Binary Search Trees & Tree Traversal Algorithms.
  • Binary Heaps.
  • AVL Trees, B-Trees, B+-Trees.
  • Graphs, Graph Traversal Algorithms & Graph Implementations.
  • Graph Algorithms (Connectedness, Cycle detection & Topological sort).
  • More Graph Algorithms (Shortest path & Minimum Spanning Trees).
  • Hashing Techniques.
  • Application of Data Structures: Data Compression.
  • Application of Data Structures: Memory Management.​