The course covers concepts of program performance (time and space complexity); recursion; data structures: lists, stacks, queues, graphs, trees, binary search trees, priority queues, heaps, and operations on them and their applications; sorting; searching and hashing.