A rigrous course on programming in Java, a course by Pirnceton University