This course introduces the most commonly used data structures, as well as sorting algorithms, using the Java programming language. Data structures that are introduced and compared include arrays, lists, stacks, queues, trees, priority queues, and maps, such as hash tables. Relevant principles including encapsulation, interfaces and testing are presented along with the data structures, while asymptotic complexity analysis is also introduced. Students implement and test programs that use the above data structures in conjunction with algorithms such as insertion, selection, merge, and quick sort.
Note: This is a foundational course to be taken by students who did not have the relevant background.