Blog Post

What are the 4 R's Essential to 21st Century Learning?


The classic "3 R's" of learning are, of course, Reading, 'Riting, and 'Rithmetic.  For the 21st century, we need to add a fourth R--and it will help inspire the other three:  Algorithm.    I know, it isn't a very graceful "R"--but 'riting and 'ritmetic are fudges too.  And the beauty of teaching even the youngest kids algorithms and algorithmic or procedural thinking is that it gives them the same tool of agency and production that writing and even reading gave to industrial age learners who, for the first time in history, had access to cheap books and other forms of print.   


Here's a definition of Algorthm adapted from the Wikipedia dictionary.   "Algorithm: A process or set of rules to be followed in calculations or other problem-solving operations, esp. by a computer."  Algorithms are the basis for computational thinking, programming, writing code, and webcraft.   Just as the last century saw a major educational initiative aimed at basic literacy and numeracy for the masses, the 21st century should be pushing for basic computational literacy for everyone, starting with kids and, of course, with adult and lifelong learning possibilities for all of us.  


In previous centuries, universal literacy and numeracy were not considered important because the division of those who ruled and those who were ruled was skewed radically, so a very small aristocracy controlled the majority of people.   With the rise of the middle class in industrialism came compulsory schooling and a push towards universal literacy.   Access to print doesn't mean much unless you can read and write.  You can't be middle-class without some control over your own budgets, income, earnings, spending, savings, investments so elementary numeracy is crucial.


Now in the 21st century, we need a similar expanded push towards the literacy that defines our era, computational literacy.    Algorithms are as basic to the way the 21st century digital age works as reading, writing, and arithmetic were to the late 18th century Industrial era.


Here's some of what the fourth "R" of "algorithms" adds to the standard syllabus of 21st century learning.  I'm sure others can add more:

  • Algorithms and algorithmic thinking give kids of the 21st century the ability to write software and change programs to suit themselves, their own creativity, and their desire to self-publish their own multimedia work.   Wonderful open source, nonprofit (free!) multimedia programs like Scratch inspire kids to learn and do, think and create, in moving images as well as text. 
  • It allows them to create not just content but the actual structures of webcraft that govern their lives today.  
  • It allows for more diverse participation in the creation (not just the consumption) of the digital cultural, as well as the economic, educational, and business products of the 21st century.
  • It helps to end the false "two cultures" binary of the arts, humanities and social sciences on the one side, and technology and science on the other.   Algorithmic thinking is scientific but also operational and instrumental--it does stuff, makes stuff, allows for creativity, multimedia and narrative expression--all worked out within code that has been generated by these larger human and social and aesthetic priorities. 
  • By making computational literacy one of the basics, it could help redress the skewed gender balance of learning right now, with an increasingly high proportion of boys failing and then dropping out of the educational system, a disproportionate number of women going into teaching as a profession, and an abominably low percentage of women going into technology and multimedia careers.  Starting early might help level the playing field in several directions at once.
  • If we don't teach kids how to control this dynamic means of production, we will lose it.  Computational literacy should be a human right in the 21st century but, to access that right, kids need to learn its power, in the same way that the earlier literacies are also powerful if you master them.
  • For those kids not destined to be programmers when they grow up, it gives them access to computational thinking, it shows them what webcraft is and does, and it shows them how the World Wide Web was originally designed; that is, with algorithms that allow as many people to participate as possible, allowing as much access and as little regulation, hierarchy, and central control as possible.

Interestingly, unlike math, which can often be difficult to teach in all of its abstraction, algorithms do stuff.   Algorithms are operational.  You show kids how to use a program like Scratch or Hackasaurus and, very soon, they can actually manipulate, create, and do, in their very own and special way.   


Investing in teacher training---not in punishing teachers, not in commercial interventions in our schools but actual, serious teacher training--is essential.  Let it be the teachers who lead the way to a new kind of literacy.  All those graduates who need jobs?  Well, our schools need you!   And maybe we can go to one of those programs where, teaching five years in public schools means all your student learns are negated.   Now, that would be an incentive and a universal good for all.   


Some have argued that the most important 3 R's in education are really rigor, relevance, and relationships.   Adding "Algorithms" to reading, writing, and arithmetic also helps with that goal.   The rigor is not only inherent, but it is observable.  You get your program right, and it works.  No end of grade testing required.  Algorithms ONLY work when you make them right, so you don't need external measures.   Relevance:  check!    What could be more relevant to the always-on student of today than to learn how to make apps and programs and films and journalism and multimedia productions and art for the mobile devices that, we know, are now almost ubiquitous in the U.S., if not by ownership then by availability in town libraries, schools, and elsewhere.   Finally, relationships: teaching algorithms is hands-on, even when it is done digitally.   You correct on a minute level, you learn, you go to the next level.   Someone guiding you can make all the difference.  More to the point, starting such training early can also mean more diverse learners.  


And a final point:  Right now, computer science and software entrepreneurship are remarkably un-diverse--in educational background, family income, race, gender.    This means the people making our products do not represent the demographic of those clamoring to use the products.  How would our world change if we had something closer to universal computer literacy equal to the old forms of literacy and numeracy which were the object of 19th and 20th century public schooling?  What could our world look like if it were being designed by a more egalitarian, publicly educated cadre of citizens, whose literacies were a right not a privilege mastered in expensive higher education, at the end of a process that tends to weed out those of lower income?  


The 4 R's.   Reading, Writing, Arithmetic, Algorithms.    Think about it! 




Cathy N. Davidson is co-founder of HASTAC, and author of The Future of Thinking:  Learning Institutions for a Digital Age (with HASTAC co-founder David Theo Goldberg), and the forthcoming Now You See It:  How the Brain Science of Attention Will Transform the Way We Live, Work, and Learn (Viking Press).  NOTE:  The views expressed in NOW YOU SEE IT are solely those of the author and not of any institution or organization.  For more information, visit or order on by clicking on the book below.   To find out Cathy Davidson's book tour schedule, visit

  [NYSI cover]








I could not agree with this statement more:

"Finally, relationships: teaching algorithms is hands-on, even when it is done digitally.   You correct on a minute level, you learn, you go to the next level.   Someone guiding you can make all the difference."

I have a somewhat unique background that allows me to speak to this particular issue.  I started out as a freshman at Duke in the Trinity School of Arts & Sciences.  As the typical science major bound for med school, I was intensely competitive with my peers and did not "play well with others" when it came to doing homework or studying.  

That all changed when, as a junior, I transferred into the Pratt School of Engineering and was thrown into the freshman "Intro to Computational Methods" class.  With problem sets in MATLAB that were due weekly and graded with minute detail for accuracy, I tried to attack the homework as I always had - alone in my room.  But it does. not. work that way.  (At least for me.)  I found that it was not only immensely helpful, but also, CRUCIAL to my success, to sit in the Pratt computer lab on Duke's campus during designated TA office hours.  The TAs were second or third year students who used MATLAB regularly in their engineering courses and thus had learned the nuances and ins and outs of the code and what could cause typical errors.  If you were having some problem getting the code to do what you wanted it to, you could either spend hours on it tweaking tiny details and poring over the textbook until you figured out what it was, OR you could just ask one of the TAs and they could point it out to you immediately.  That wasn't "cheating" as a 20th century classroom might dub it.  I learned MATLAB.  Just much more efficiently and with much less frustration (and thus more satisfaction) than if I had gone down the road alone.

And I could easily have TA'ed the course in following years.  There's a beauty and camaraderie in that system - a feeling that what you know needs to be "passed down" to the next generation of engineering kids, and in doing so, not only do you learn MATLAB, but you also learn how to learn from, and teach people who are in essence your peers. 

I'd say that that course was very indicative of what was to come in my upper level engineering courses where you'd often find a big group of BME students in the engineering basement on Friday afternoons a few hours before a problem set was due at 5 pm.  Every problem became a collective effort and I honestly don't know if I would have gotten through those courses without the teamwork that I had to learn in order to succeed in them.  And, when I think back on my engineering education, the collaborative teamwork that I learned to value so highly is one of the most important skills I gained from that education.  

So, this is all to share a personal anecdote to support Cathy's statement that computational learning *is* a social and collaborative effort, and does NOT have to look like kids sitting and staring at computer screens while not interacting with each other. 


Thanks so much, Anna.  Kids staring into a computer screen feels like the OPPOSITE to me of real algorithmic learning.  Thinking into doing---and doing together.  That's what we need as a 21st century literacy.  I love your testimonial.   So helpful.  


Not algorithms

My overall understanding of this article is that digital literacy should be essential in the 21st century learning and I could not agree more. But algorithms are probably the worst symbol of digital literacy.

Algorithm are, as the quote says a process or a set of rules. As a matter of facts, algorithms are a mathematical object. Algorithms are abstract objects. Moreover, kids are already taught some algorithms. Euclidian division, multiplication, Sieve of Eratosthenes are all algorithms that are taught to kids early on. It doesn't give them any tool.

And the beauty of teaching even the youngest kids algorithms and algorithmic or procedural thinking is that...

In a way, procedural thinking is at the opposite of the web which is inherently event-driven. If something had to be taught regarding digital literacy, I hope it would not be mainly focused on procedural programming.

"Algorithms are the basis for computational thinking, programming, writing code, and webcraft."

Generations of computer scientists wish this to be true, but it isn't. I know a bunch of people who "hack around" some PHP and have no idea of what an algorithm is. They write code by copy/pasting, they poke around until it work (and most of the time, it does). This is very different than the ideal that would be to design first an algorithm then implement it.

I won't quote the entire article, but algorithms are not the right symbol for digital literacy. I think that the main intention of this article was to encourage teaching programming to kids. But I think that even this point is partly missed.

Algorithms ONLY work when you make them right, so you don't need external measures.

This quote by itself is a complete denial of the field of software engineering. And as a matter of fact this field has been created 1968 and has never been more active than today.

First, algorithms, as abstract objects, neither work nor don't work. Programs which are implementations could be considered as "working". But what does "work" mean? Do you consider that Firefox works? If so, then what are bugs? In big enough programs, there is no work/not work dichotomy. Your program works under some conditions and doesn't under other. There is an entire field dedicated to defining some "external measures" and that field is "testing". And it's not even enough. Also, sometimes, you write your program correctly, but the underlying platform is buggy, so your program doesn't work as expected.

What should we be teaching?

Instead of jumping to algorithms directly, let's take a step back and think about what is our goal, our mission, what we want to achieve.

My understanding from your article is that you want to empower people, to make them independent, to free them from those whose interest it is to keep as many consumer/non-producer as possible. I deeply agree with these goals. Let's detail what we want and see what would fit.

First, we need people to understand that computers aren't magic. Moreover, we need people to understand how softwares are made, preferably by teaching them the basics of how to do. This first point should lead to topics like "what is a bug?" and make people understand that a bug is not (or too rarely) the machine's fault, but rather the programmer's fault, etc.

Second, we need to explain people what a "save" feature does, what is a file. What it means to "open a file", have people starting to think about data, a picture, a text, a video. Lead a discussion to what is an open and a closed format, what the benefits of an open format are. Once again, this should be taught preferaby by doing.

Then comes the web. Explaining the idea of the Internet (a way for computers to discuss with each other), that a web browser is a software as seen in part 1. Teach that programming for the web is different because now, you have 2 computers to program (client and server).

And data on the web. Teach about what is technically feasible. Make realize that the technical goes way beyond what legal and morale would consider acceptable and probably start (or rather end the curriculum) on ethics.

After all of this, those who want to be creator will natural become creators. Those who care about algorithms will learn. But at least, you've taught everyone that Microsoft makes money with few extra effort at each Windows version. You've teached all what facebook can do with your data. You've forwarded the information that out there, there are resources to learn how to program if you're not satisfied with the software you're using and you've taught the basics to understand these resources.

I claim that this is what we need to teach people. Not algorithms!


Points well taken.   Larger point is of course I'm talking about digital literacy, beginning in first grade and then scaling up and up and in different ways and with different levels of expertise.   I want kids not just to think about  but to make and to become advocates for an open web because they see, not just understand, what making does.   "Algorithim" is partly to be cute--reading, 'riting, 'rithmetic, algorithm sounds great.    "Reading" isn't just mechanical deciphering of symbols but, with time, is leading to interpretation, comprehension, and other forms of complexity.  That's the analogy.  A system of thinking, a set of procedures, upon which one builds greater and greater fluency and proficiency.    And, to my mind, anything worth teaching, can be tested adaptively, in process, and should not require a reductive style end-of-grade test but, in the very doing, measures its own accomplishments or can be measured in terms of its very accomplishments, its "levelling up," so to speak.  I'm not going to enter the fights over what is or isn't algorithmic thinking any more than I care to fight about what it means to "read" or to "write."   Much has been written on these topics and this is a slogan to build on.   Reading, writing, arithmetic, and digital literacy is fine with me.   Reading, writing, arithmetic, programming.   All fine by me.  Thanks for writing and thinking so deeply and constructively about these issues.   


Whether or not we understand "algorithmic thinking" as the correct label for the essential 21st century literacy you describe (I spent most of my 10 years as a Physics teacher trying to AVOID teaching algorithmic approaches to physics problem-solving), what you are describing is a set of competencies that are at the heart of the way developers problem-solve, navigate, and learn from one-another within most open-source software communities.   They also represent the watershed line between creative producers and passive consumers in the internet age, a fundamental difference in the relationship of the user to the medium of digital production, and ultimately one's ability to contend powerfully in a 21st C democracy and economy.

Much of the critical buzz about the effectiveness of technology in education seems to derive from the unexamined goal that it should be more effective in teaching old literacies.  When online textbooks, machine-graded multiple choice assessments, and touch-sensitive chalkboard-movie-screens prove to be no more (or even less) effective at teaching reading and writing than their paper and slate counterparts, I suppose we should not be so surprised.  What your line of thinking reveals is that our education system has failed to approach the very literacies that have allowed engineers, computer scientists, and designers to produce these sustaining technologies (at great profit).  Insofar as our most lauded technologies (take Apple, for example) are designed to be invisible to the user, code-proprietary, and void-of-warranty the moment we open them up (assuming we can even find a screw to loosen), the risk of a widening divide between creators and consumers is very real.  In fact, it appears to be the basis of many highly successful business models.

If what I suggest is true, that technologies (and the new literacies they entail) tend to be self-concealing, then there is something fundamentally subversive and righteous about prying and holding them open for understanding and re-appropriation.   For this reason, I nominate "Hackerism" as the literacy and spirit you are looking for.   Algorithmic thinking is empty if not imbued with the passion of gaining power over technological problems, the euphoria of being able to modify another's work to a new purpose, even if over-and-against proprietary, self-concealing intentions.  Indeed, "Literacy," as understood at its best in the humanities, is equally subversive and passion-filled around uncovering, re-opening, and re-mixing meaning from texts. 

What is different between most edtech implementations and examples like Scratch, Hackasaurus, Arduino, Mindstorms, Make magazine, Instructables, and other fundamentally creative and social technology-learning communities is that these tools are truly designed to engage the user in the creative, purposive, collaborative re-appropriation of the means of technological production...e.g. hackerism.


Hi Andrew,  Your comment is one I agree with entirelty.   In fact, in thinking of a 4th r, "hacking" is one several of us in the open source maker community thought about but its negative connotations and denotations take so long to deconstruct, that it turns off parents and teachers before one even gets close to getting to where one wants to be.  Since my objective is to change policy as well as minds, I went with the more technical algorithm but you paraphrase my impusle perfectly.  



I wrote "Coding is the new  literacy" on similar lines, though I focus more on the behavior side of things, I guess..