On Paulo Freire, and seeing computing as literacy

Paulo Freire was a Brazilian educator, best known for his book Pedagogy of the Oppressed. Indeed, it’s the most commonly assigned reading in education classes which isn’t a textbook. His ideas have been used for teaching many topics, such as health and African American studies. And yet, most people in CS education circles aren’t familiar with Freire. In this post I’ll provide a short introduction to Freire and why his work is relevant to computing education.

To Freire, education is an inherently political act. Education can be a tool of empowerment, and it can also be a tool of oppression. Freire refered to traditional education as the “banking model”: the teacher deposits coins of knowledge into the bank accounts of the students. _”Instead of communicating, the teacher issues communiques and makes deposits which the students patiently receive, memorize, and repeat. This is the “banking” concept of education, in which the scope of action allowed to students extends only as far as receiving, filing, and storing the deposits.” _(Freire, 1968)

This model ignores what the student already may know. It fails to give the students a sense of ownership over their knowledge, and fails to stimulate critical thinking. He argued this reinforces oppression. For education to be empowering, students need to be active agents in their own learning.

Problem Posing Education

As an educator, Freire focused on literacy education. He and his colleagues ran community-based literacy education projects for Brazil’s poor, focusing on adult education. He championed what he called problem-posing education, which focuses on “listening, dialogue, and action”.

As his teams implemented education, they first spent time observing what their students do in their everyday. What written words the students encountered but could not read. What texts the members of the community would observe. They listened, observed, and tailored their curricula around what the people of that community would benefit from learning.

Teaching was done as a dialogue. Not just in a Socratic fashion, but also as sharing between teacher and student. To Freire, _”authentic education is not carried on by “A” for “B” or by “A” about “B,” but rather by “A” with “B.”” (Indeed, _one of the reasons I enjoy teaching is how much I learn from my students.)

Education didn’t end with the lesson: the goal of teaching is to empower the learner to action. His students could now read the news and understand local politics. They could now vote in a society where literacy was required for suffrage. They could now organize and advocate for their own interests. Freire didn’t consider his job done unless his students had acted using what they had learnt.

Computing as Literacy

The view of computing as being like literacy has recently caught on. After all, computing is a sort of language, and it unlocks a level of literacy in society. Arguing that computational thinking is a form of literacy can be persuasive in policy circles.

I don’t think the parallel between literacy and computing should end there. For example, Sally Fincher recently wrote a CACM piece drawing parallels on literacy education and computing education, which I think was quite insightful. We can learn from the lessons of literacy education.

I think that like literacy, computing is incredibly empowering. In the age of the the computer, those of us with computer science knowledge have power that others do not.

Our society has come to accept that universal literacy should be a right, and that everybody is capable of basic literacy. CS educators still aren’t there yet: there are still plenty who believe not everybody has the “Geek Gene” to understand computing.

People used to think similar things about literacy. But as literacy education improved its methods, and learnt how to diagnose and teach people with disabilities, it became accepted that anybody can learn to read. Mark Guzdial has argued that the reason the Geek Gene hypothesis is so popular is because we fundamentally don’t understand how to teach computer science.

Learning from Freire

Most of the efforts trying to view computing as literacy have been focusing on k-12 education, trying to inculcate a new generation. A Freirean approach would instead focus on adult education: we can’t leave adults behind. And if we teach the parents, the parents can teach the children.

There’s some evidence that girls realize they don’t “belong” at the computer from watching their mothers’ lack of confidence at the computer (Margolis and Fisher, 2002). Teaching parents means teaching children.

Talking to people trying to get CS into k-12, often the barriers are a lack of adult education. Teachers and principals don’t know about CS. Deans of education schools don’t know about CS.

Sometimes I worry our goals in computing education are too often determined by industry. Industry wants young people to learn to code, so they grow up to work in industry. Teaching adults less clearly benefits industry. It does benefit democratic society. We need adults to be well informed of computational issues as legislators draft laws affecting internet privacy and security. 

I think end-user computer science education can learn a lot from Freire. I’ve long taken an interest in teaching scientists to program. Problem-posing education strikes me as incredibly useful here: first, we as educators observe how scientists do their work. What computational problems do they encounter (and fail to solve)? We then tailor a curriculum around listening to our audience. Then we share it with our students, using active and/or participatory learning techniques, having a dialogue_ _with our students. Finally, we empower our students to go out and act: they can solve their scientific problems with code.

Mark Guzdial recently wrote a book about teaching CS to everybody, which I recommend. He describes different curricula tailored for different audiences, and promotes active learning methods. My one complaint is he never cites Freire! (Since it’s a literature review of the CS education literature, and the CS education literature doesn’t cite Freire, this is to be expected.)

Different communities in our society will have different needs for computing education. We as educators should listen to their different needs, dialogue with them, and empower them to action. Too often we use the banking model to teach computer science: we impose a curriculum on our learners without regard for whey would benefit from learning or for empowering our students.

If we want universal computer science education, the banking model will fail us: there is no single perfect curriculum, and mere transmission of knowledge will not foster empowerment nor critical thinking. And while there’s validity in the  economic arguments for teaching everybody to code, it’s to our detriment as educators to forget the socio-political part of our work.


Freire, P. 1968. Pedagogy of the Oppressed.
Margolis, J. and Fisher, A. 2002. Unlocking the Clubhouse.