Learn essential algorithms and data structures with a focus on Java implementations, applications, and performance analysis. Part I covers basic data structures, sorting, and searching. Part II explores graph and string algorithms. Offered by Princeton on Coursera.