Algorithms are nothing more than specific instructions to follow. OK, that sentence might be contested, but I’d wager it’s true in a K-12 context.
Despite being the backbone of social media, search engines and e-commerce, algorithms are already in schools. Remember how there was a strict protocol for bathroom time in elementary school? Clean up desks, line up single file, turn the lights off, walk in a straight line, do your business, wash your hands, take a drink, and off you go. That’s an algorithm.
Khan Academy does a great job of explaining what an algorithm is. To paraphrase, it’s a set of steps to accomplish a task. Nearly everything done on a computer or related to automation is the result of an algorithm.
Studying algorithms empowers students to have a better understanding of the technology they use both for entertainment and for learning. So where does that leave educators? Are they expected to teach students the ins and outs of algorithms? If so, how deeply? In which subjects?
This is where computational thinking (CT) comes in. The best way to spread the work is to integrate CT into all subjects. Not all the time, but strategically.
To illustrate how that can be done, here are the steps you can take to have students design an algorithm for Spanish class.
In my Spanish poetry lesson students set out to solve the problem, “How can we categorize and identify poems?” I intended for students to be able to recognize a specific style of Spanish poetry called a décima.
In the interest of simplicity, I specifically intended for the algorithm to result in a binary. Following the algorithms results in a “Yes, this poem is indeed décima.” or “No, it’s not a décima.” If following the algorithm consistently and correctly identifies a décima, then it works!
Tip 2: Incorporate time to make tweaks
You can’t guarantee that your algorithm will work perfectly on the first try. That’s why it needs to be put to the test!
In the poetry lesson, students design an algorithm by analyzing three poems that are décimas and an odd-one-out. After a class discussion verifying their findings, students get to work designing an algorithm that can identify a décima. Additionally, they are tasked with writing a décima themselves!
After students write their décima and design their algorithm, they might notice their algorithm doesn’t result in their intended outcome. In this situation, students have the opportunity to revise their algorithm so that it works as they intended. Having this time is crucial for students to feel confident with their algorithms.
Tip 3: Share your algorithm
In the poetry lesson, after designing algorithms and writing their poems, students exchange them to check each others’ work. Their algorithm might make sense to them, but if someone else can follow it and get the intended result, then it really works. If it doesn’t, then groups leave feedback for each other. This is how I ensure students share and check their work. If their algorithms consistently produce an intended result, then they work!
You might be asking, “Isn’t an algorithm supposed to be shared with a computer? This is computationalthinking after all.”
Not necessarily. But it could.
While algorithms are indeed typically used with computing, they don’t necessarily HAVE to be. Ultimately, CT is about communication. What are you communicating? An algorithm. To whom are you communicating the algorithm? The answer to this question determines whether you need a computer or not.
If you have to first teach students to be familiar with block-based coding before your lesson, that will take up more time than most teachers have.
Learning to walk not only allows you to run a marathon, but also participate in basketball, soccer, hiking and so much more. CT’s value to K-12 comes from the “thinking.” The “computation” comes from the thinking, but the “thinking” (logical thinking, inquiry-based thinking, critical thinking) is highly transferable in a K-12 setting.
Tip 4: Plan to expand! (If you want)
While the algorithm in my lesson is fairly simple, it doesn’t necessarily need to stop there. Instead of answers being “Yes, it’s a décima” or “No, it’s not a décima”, you can expand the algorithm to properly identify non-décima poems: haikus, sonnets, etc.
They can also eventually automate this process on a computer, by teaching a computer to analyze rhymes, syllable counts, number of lines, etc., and identify a poem.
The further the idea is pushed, the nature of the problem will change requiring more decomposition, data analysis and algorithmic design.
Create better problem solvers!
Computational thinking doesn’t stop at designing an algorithm. CT is about using data to create an algorithm and communicating that algorithm to a human or a computer to solve a problem.
Computational thinking is not the shiny awesome future where the Jetsons live. It’s the present moment. Automation and algorithms aren’t coming, they’re here. Students can learn these concepts in any class, at any age, in any subject. When they do, they not only strengthen different types of thinking but also deepen their learning in that content area. Integrating CT will create better problem solvers at all levels.
Nick Pinder is a project manager of computational thinking and higher education projects at ISTE. Nick is interested in the promotion of computational thinking and its intersection with language instruction specifically and the humanities in general.