The Berkeley AI course is very practical. The “search” section can help you learn search algorithms: http://ai.berkeley.edu/search.html
I think writing small games and solvers for them can be a good way to learn and practice algorithms and data structures. In my first year of CS we had to implement the Rush Hour game and write a solver for it.