Algorithms and data structures in C/C++
All programmers should know something about basic data structures like stacks, queues and heaps. Graphs are a tremendously useful concept, and two-three trees solve a lot of problems inherent in more basic binary trees.
Algorithmic Efficiency and Sorting and Searching Algorithms
Learn how to determine the efficiency of your program and all about the various algorithms for sorting and searching--both common problems when programming.
Learn about AI, including how to make game AI using the minimax algorithm.
If you've mastered the basics, perhaps you'd like to move to more advanced, specialized algorithms
Computer Science Theory
If you've moved on from the advanced algorithms, perhaps you'd like to learn more about the fundamental nature of computation--a deep and rewarding topic.