I did follow Sedgewick coursera course on algorithms : https://www.coursera.org/instructor/~211.
It's frankly a good class, which cover a large range of fundamental data structures (first part on lists,arrays and regex; second part on graphs and trees). You can follow the video if you want to refresh your memory on - or learn - some parts of cs theory, or just go to the assignments for hands-on java exercises. However, it's can be a bit challenging if you really want to be thorough.
You can also try to develop an Android app, which is often more useful/fun than an desktop software (I'm currently working on a receipt archiving app for my personal account).