ResPubID17008, education, problem-based learning, reciprocal learning, software development, communication skills, teamwork