Skip to main content

ICS 240 Introduction to Data Structures

This course provides basic introduction to data structures and algorithms and emphasizes the relationship between algorithms and programming. Students will learn intermediate object-oriented design, programming, testing and debugging. Topics include inheritance, polymorphism, algorithm complexity, generic programming, linked list, stack, queue, recursion, trees, hashing, searching, and sorting.


Special information

First day attendance is mandatory.
Note: This course uses the Java language. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
4 Undergraduate credits

Effective August 17, 2014 to present

Learning outcomes


  • Understanding algorithms, object-oriented programming, and gain programming experience in Java.
  • Identify appropriate use of and implement statically allocated data structures.
  • Identify appropriate use of and implement dynamically allocated data structures.
  • Analyze recursive and iterative algorithms for space-time complexity
  • Write programs that use each of the following data structures: arrays, linked lists, stacks, and queues .
  • Implement applications utilizing standard object oriented design principles like encapsulation, inheritance, polymorphism, and dynamic binding.
  • Implement recursive and iterative algorithms over appropriate data structures (e.g., tree traversal, pre-order, and post-order)
  • Understand resursive solutions and use recursion to solve problems such as sorting.
  • Develop and implement a dictionary data type incorporating hashing algorithms and collision avoidance.