Like most first year CS courses, UTSC's Introduction to Computer Science (CSCA08) has always struggled with issues around community building, and differential learning in a course where the prior experience levels of students can vary wildly. Either students with prior programming experience would find the course boring, or novice students would find the material too intimidating. The TrAcademic system replaced the traditional lab based approach with gamified practical sessions, where students could earn points for completing various tasks, which were set relative to their experience level. Experience points are earned every time a student attends a practical session, challenge points are awarded for anything from solving complicated problems to weekly logic puzzles, and (perhaps most interestingly), teaching points are awarded for helping fellow students with material, or demonstrating a solution to the group.
This allows more advanced students to spend their time either completing challenge questions where they can push themselves, or helping their fellow students, while novice students get help from their peers rather than waiting for the TA. With this system, practicals have evolved from a traditional lab system where some students were bored, some were frustrated, and most were waiting passively for the TA to get around to them, into a facilitated study group, where students are helping one another learn. Students are more engaged, and have motivation to work together to build a community, rather than succumb to the traditional stereotype of the isolated computer scientist.