Similar Items: CONTRIBUTE: A Pedagogical Framework for Open Source Software Development Projects