Development of a project-based cooperative learning environment for computer programming courses