This course introduces the students to data structures using an object-oriented programming language. This includes logical and physical representation of data structures, collection types, array-based lists, linked lists, stacks, queues, basics of algorithm analysis, binary trees, binary search trees, hashing, and heaps. Applications and algorithms based on data structures are covered in this course. Problem-solving skills will be stressed and applied to solving computing problems throughout the semester. Weekly homework experiments will provide hands-on experience in topics covered in this course.