Gregor Kiczales is offering a course on Systematic Program Design (
https://www.edx.org/course/systematic-program-design-part-1-core-ubcx-spd1x) starting June 2. It promises to be an extended and improved reincarnation (three! parts) of the coursera offering.
Racket (with various Student Languages) is used in this course, but the ideas presented are transcending languages and generally useful, no matter if you're programming in Racket, Erlang, Ruby or VBA. Even if you are a seasoned programmer, you might find some refreshing new ways to look at the things you've been doing these past 30 years.
I participated in earlier incarnations of this course and found it to be one of the best courses teaching you how to program as opposed to just teaching you a language to program in.
Stefan