Collaborative learning can improve retention rates, critical thinking, appreciation of diversity, and development of social and professional skills. When implementing collaborative learning, match students roughly according to experience levels and make sure to give students opportunities to work together for both graded and un-graded assignments. Peer-led team learning in computer science allows students to work together with a classmate or more advanced peer directing group exercises and discussion. Courses that have utilized PLTL boast lower course drop rates and higher grades.