Our pedagogical practices

This page outlines the educational philosophy and teaching practices of Computing Workshop. You’ll also find the computer science education research that informs the pedagogy we use at Computing Workshop.

Teaching philosophy

At Computing Workshop, we aim to minimize teacher-centered learning activities, such as lectures, and prefer student-centered learning ones, such as group work, problem solving, and discussion. We strive to make safe, open, democractic classrooms where participants are active members of the workshops.

We believe that knowledge isn’t simply “transfered” from the teacher to the student, where the student passively absorb the content. Instead our we subscribe to the social constructivist theory of knowledge: knowledge is a construct and individuals learn by constructing their understanding of something.

Accordingly, our teaching focuses on providing participants with opportunitues to actively create their understanding of computers and software through collaborative, hands on activities. A few of the ways we implement student-centered learning and the research verifying these approaches work are outlined below.

Teaching methods

Peer instruction

Peer instruction is a simple and effective student-centered form of pedagogy popular in STEM education. Peer instruction has the following steps :

  1. Instructor poses a difficult question based on students’ prior knowledge
  2. Students reflect on the question and vote with answer (often through polling)
  3. Instructor reviews student responses
  4. Students discuss their thinking and answers with their peers
  5. Students then vote again
  6. The instructor again reviews responses <> adapted from the wikipedia article

There is a plethora of research proving this pedagogical technique is more effective than lecturing. Computer science is no exception with research showing that undergraduate computer science students in classes using peer instuction are 50% less likely to fail than their peers in lecture based classes..


Another common teaching tool used at Computing Workshop are Peer Oriented Guided Inquiry Learning (POGIL) activities. POGIL activities at Computing Workshop are often short worksheets presenting problems or activities for students to complete in self-managed teams. Some POGILs we create ourselves, and others we use (with aknowledgement) from https://cspogil.org.

As POGILS are collaborative, student lead activities, there is still a wealth of research highlighting the effectiveness of POGIL in promoting student-centered learning.

Pair programming

Pair programming is an effective software development technique that is just as useful in an educational setting. In pair programming, students work in pairs using one laptop to solve a given problem or task. One student (called the “driver”) is at the keyboard, using the computer to code, while the other student (called the “navigator”) reviews the code. The navigator helps develop the strategic direction of the work while the driver works on the implementation.

Research at the University of California has shown that pair programming can improve student confidence, lower fail rates, and keep students in computer science programs. Women seem to benefit the most from pair programming as it dispels the misconception that programming is a solitary endeavour.

Connecting the social and the computational

As you can see from our philosophy of education and pedagogical practices, we emphasize a social dimension in teaching computer science. Team work, collaboration, and student-lead learning are at the heart of our teaching. This is no coincidence, as computer science is a very social field despite the myth of the lone genuis programmer. Often, software development involves large diverse teams of individuals and requires teamwork and collaboration. Furthermore, as access to computer science knowledge proliferates on the web, communication skills are key to learning computer science.