To many students, computer science is a discipline first introduced at the collegiate level. As sophomores studying computer science, we often see students become handicapped in their programming education by the underrepresentation of computer science in American grade school. We feel that more can and should be done to inspire STEM education (in the form of computer science) before students reach university workloads. However, public schools seem to lack the effective tools with which to expose computer science to students on a large-scale basis. At SwampHacks, we set out to develop a worthy means of achieving this exposure to students across the nation.


Our website, CoCode_, provides grade school educators with a free webapp that facilitates computer science education with simplicity, accessibility, and collaboration in mind. On first visit to, an educator is presented the opportunity to create a virtual classroom in his/her own name capable of managing any reasonable amount of students, complete with its own unique and randomly-generated "Room Code." The educator's students are then able to visit the site and input their names along with that Room Code. There, they will enter a growing waitlist until the educator starts the exercise from his/her machine, satisfied that all intended students are accounted for. All waitlisted students are then randomly sorted into groups of three, with each group being assigned a programming problem statement. On each student's screen will be an interface displaying the instructions of the problem, a Coding Box in which to write the group's submission code, and a Whiteboard area on which to free handedly draw and plan solutions by mouse. CoCode_'s uniqueness lies in its role system: in each group, members are randomly assigned one of three separate roles. There is a Navigator, the sole member with access to the current problem's instructions; a Driver, the sole member with authorial access to the Coding Box; and a Cartographer, the sole member with illustrative access to the Whiteboard. Grouped students are linked to one another via live voice chat, and to all non-Navigator students, the current problem's instructions appear as unintelligible gibberish. Students are hence inclined to work cooperatively to produce code snippets that satisfy the problem statement's requirements. Once groups are satisfied with the code in their Code Boxes, they may internally agree to press the "Submit" button in order to have their respective code automatically graded and receive either a positive response of praise, or a sympathetic response indicating to try again. Groups hitting exceptional roadblocks to progress may summon the help of their teacher, who is trusted to assist in leading the group toward an understanding of the problem.


CoCode_ will find success because of its engaging and accessible nature. Students tend to respond well to specializations since they illicit improved self-value as a unique good. More importantly, CoCode_ addresses the fundamental problem with cooperative learning groups. Traditionally, group assignments default to the infamous case in which the most proficient of members carries the group, while the least proficient is left in the dust, both gleaning little from the exercise. In restricting crucial information about the problem or its solving from each member of the groups, CoCode_ assures that each group member will contribute meaningfully and necessarily. This is its edge over any traditional method of instruction.




We are proud to have taught ourselves to implement various computer science technologies that we had personally never previously combined. This was our first attempt and success in using javascript and node.js in tandem with both the traditional front-end web development languages of HTML5 and CSS, and other back-end technologies like, p5, and express.js. This was also our first group employment of online web services like Linode. Hosting CoCode_ on an entirely new platform posed a certain challenge that we're happy to have traversed so seamlessly. Most notably, however, we are proud of the evolution of design ideas that led us to our finalized hack. Initially, we approached with a more

What we learned


Share this project: