Resources, tools, and techniques for problem based learning in computing