I am about to finish CS106a which is designed in similar fashion. It uses ACM libraries. It was my first programming course and I think I did great[1]. Mehran Sahami is a great teacher and he presented lectures in a very digestible fashion. Also assignments are designed in a very doable way. It all turned out to be a very pleasing experience. There is no end to learning so I will have to spend some time learning the main Java class.
It also only supports Mac(Xcode) and Windows(VB) but I would like to use something like Qt-Creator on Linux.