Exploratory + collaborative learning in programming: a framework for the design of learning activities | IEEE Conference Publication | IEEE Xplore