A problem-based JavaScript learning resource based on 4clojure.