This work proposes an approach that combines teaching general concepts in a technology-agnostic fashion with a cooperative learning approach oriented to a the resolution of a challenge in a competitive environment. In this way, students both learn the theory and then put in practice these concepts in class, exploring different options and cooperating in smalls groups. Such groups compete between them through in order to obtain the better solution. Our experience applying this approach in the classroom have been successful. Student satisfaction, test performance, and student understanding are high.