What we will learn in this course!

This course is about the study of basic data structures. It concentrates on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. All implementations are done in Java programming language and according to Object-Oriented programming paradigm. In the process, you will learn more about basic algorithms as well. Particular emphasis is given to algorithms for sorting, searching (including searching on Graphs).

Topics

  • Data Structures
    • Lists, Stack, Queue, Sets, Trees, Heaps, Hash Tables, Graphs, $\dots$
  • Algorithms
    • Sorting, Balancing Search Trees, Graph Search Algorithms, $\dots$
  • Advanced Java
    • Iterators, Generics, Inner/Nested classes, Comparators, $\dots$
  • Concepts
    • Unit Testing, Test First Development, Asymptotic Analysis, $\dots$

Please refer to the syllabus for more information.