Data structures play a central role in modern computer science. They are amongst the most fundamental ingredients in the recipe for creating efficient algorithms and good software design.
The course covers basic and essential concepts in data structures, including array-based lists, linked lists, stack, queue, trees, binary trees, heaps and graphs. Discussion of various implementations of these data objects, programming styles, and run-time representations. The course also examines sorting, searching and some graph algorithms. Algorithm analysis and efficient code design is discussed.
In this course, students will analyze and design of fundamental data structures and engage to use data structures as tools to algorithmically design efficient computer programs that will cope with the complexity of actual applications.