Piaget’s classic work on cognitive development showed that engaging learners in critical discussions with peers about ideas that are different than theirs leads to deep conceptual understanding. Implementing such an approach in computer science and, more generally, STEM, courses has some specific challenges. Based on Piaget’s theory, we have developed a highly innovative collaborative learning approach that exploits specific affordances of web technologies to address these challenges. It allows small groups of students with different ideas about the topic in question, to engage in a highly-structured discussion that enables each student in the group to develop deep understanding. While a number of researchers have explored approaches to collaborative learning, a key difference with our work is that our focus is helping individual students develop deep understanding, whereas the focus of much of this other work is on developing students' team skills, effective communication abilities, and the like. We have tested our approach in an undergraduate CS course and the effect on student performance was encouraging; moreover, about two-thirds of the students in the course, based on a post-activity survey, felt that the approach was effective in helping them develop conceptual understanding.