Don't Miss Computational Thinking in Your Digital Literacy Program
A Q&A with Mark Frydenberg
Most colleges and universities have, for what seems like a very long time, addressed digital literacy for their students. We may see it represented in general education objectives or integrated into curricula in various ways. Digital literacy initiatives can range from freshman orientation components, to proficiency requirements for degree programs, to whole courses offered for credit. But one thing is clear: We all want our students to gain the competencies they'll need to function well in a world increasingly linked to digital tools and digitized information.
Many digital literacy programs focus on common tools, and on information search and sourcing. But others are exploring computational and data skills as well. Here, CT asks Mark Frydenberg, Bentley University's Senior Lecturer of Computer Information Systems and Director of the university's CIS Sandbox, about computational thinking in relation to digital literacy. Frydenberg considers how we can adjust digital literacy programs to address the growing need for problem solving skills and the ability to use data to identify patterns and processes that lead to better solutions.
"Computational thinking is a process that helps identify the requirements and steps for implementing a solution. It applies to many areas in addition to computing." — Mark Frydenberg
Mary Grush: What are some of the elements digital literacy programs have tended to include up until now?
Mark Frydenberg: I remember when I was in high school, you were 'computer literate' if you could write a program in BASIC on a Digital Equipment Corporation VAX computer, that read 10 PRINT "My Name is Mark" 20 GO TO 10. Times have changed. By the time microcomputers came around, computer literacy meant you knew how to navigate a DOS or Windows operating system, run existing programs, use basic spreadsheet and word processing software, and save files to a disk. As the Internet became commonplace, computer literacy evolved into digital or technology literacy: Skills related to using a search engine effectively, browsing the Web, and sending e-mail became important. In the Web 2.0 era, digital literacy also included using social media, creating user-generated content, collaborating with online office apps, and understanding basic ideas around storing and sharing files in the cloud. Today, digital literacy encompasses all these topics, as well as mobile devices and apps, cybersecurity awareness, augmented and virtual reality, open source software, and how to use current technologies effectively and ethically.
Grush: I know that you've been speaking lately about emphasizing computational thinking and problem solving as key skills for our students. Is this an area that needs more attention as we prepare our students for their futures?
Frydenberg: Computational thinking is an approach to problem solving that encourages students to consider several factors as they develop a solution. While an article by Dr. Jeanette Wing from Carnegie Mellon University drew considerable attention to the concept in 2006, the origins of computational thinking go back to 1980, when Dr. Seymour Papert at MIT first introduced these ideas when teaching problem solving skills to children.
The main principles of computational thinking include decomposition (breaking problems down into smaller parts), pattern recognition (finding similarities between pieces), abstraction (generalizing things that are different from each other), and automation (implementing algorithms to automate a process).
The ability to explain a complex problem using language and examples that everyone can understand is a very useful skill. Filtering out what's irrelevant and considering solutions to related similar problems can be helpful when designing new solutions.
Prof. Wing says that computational thinking will be a fundamental skill that everyone in the world uses, as it can be used to solve problems, build systems, and understand human behavior in ways that draw on the power and process of computing.
Grush: What can computational thinking add to our students' range of skills?
Frydenberg: Computational thinking is a process that helps identify the requirements and steps for implementing a solution. It applies to many areas in addition to computing: Project planners, data analysts, scientists, musicians, and professionals in many other disciplines all use computational thinking skills daily.
These skills — redefining problems in terms of smaller ones, creating algorithms, evaluating data to discover new patterns, and filtering out irrelevant information — can and need to be applied beyond the computing and technology disciplines.
Students can better learn how to approach solving problems. They learn to approach complicated problems by describing them in terms of smaller problems, hopefully easier to solve than the original. The idea is that by combining solutions to smaller problems, they will have developed a solution to the larger one. Computational thinking also helps students think logically. They learn to describe a solution in terms of a sequence of repeatable steps that will solve a problem or reach a goal.
Students learn to evaluate data to discover new patterns or relationships between the values. They also learn to describe objects abstractly that are relevant to a solution in ways that bring about that solution. This requires determining what information is relevant or irrelevant, keeping only that which is necessary for the solution.
These skills — redefining problems in terms of smaller ones, creating algorithms, evaluating data to discover new patterns, and filtering out irrelevant information — can and need to be applied beyond the computing and technology disciplines.
Grush: What are some of the ways computational thinking can be included in the curriculum? Maybe you could tell us a little about what you have been doing at Bentley.
Frydenberg: I'm teaching an experimental course at Bentley University this semester called Problem Solving with Coding — it's an introductory course in Python programming for business students, but with a special emphasis on problem solving and thinking about ways to attack problems. Before students begin coding, I ask them to have discussions with their team members about their approach to solving the problem from a computational thinking perspective. What data do they need to track? How will they represent it using code? What similar problems did we solve earlier with solutions that might guide us now? Can they describe repeatable steps that will solve the problem? Answering these questions before beginning coding often produces more efficient results.
By strengthening their abilities to break complex problems into smaller, more manageable steps, and to evaluate varying approaches, they become able to create solutions, recognizing those that are more elegant, and those that are more straightforward. For example, I gave a problem in my Python class recently — to write a program to determine if the digits of a given number were all the same (such as 22). Most groups developed their solutions in 10 to 20 lines of code, by repeatedly checking each digit of the number to make sure that it was the same as the first. One group cleverly solved the problem in one line of code. They checked to see if the first digit, when repeated for the length of the number, was the same as the original number.
Students' future employers expect them to have developed critical thinking and problem solving skills so that they can develop solutions using technology — whether coding original software, configuring off-the-shelf applications, or describing software capabilities needed to meet user requirements.
Grush: Python seems to be a popular starting point for institutions seeking to give students some background in, at least, basic computational thinking. How does Python — and providing students with a little coding experience — help them?
Frydenberg: Python is a relatively easy language to learn, with simple syntax and easy access. Students can install Python on their laptops or use one of several online environments such as PythonAnywhere or PythonTutor to develop, test, or debug their programs.
At Bentley University, our approach to teaching Python evolved as we realized why students are taking the course. Python is known for being a language that supports data analytics applications. Many introductory Python college textbooks don't teach this topic, opting instead for chapters on turtle graphics or user interface development. We omitted these topics to include instead units on some of the data analysis and graphing modules, enabling students to develop practical and employable skills using Python.
Grush: But of course your goals go beyond coding in Python… What are a few more of the skills your students learn that factor strongly into developing computational thinking? What are some of the applications they prepare for that frame business problems using a computational thinking approach?
Computational thinking focuses on automating solutions to real problems and determining that those solutions work correctly.
Frydenberg: Students can learn computational thinking skills without learning Python specifically (or any coding language, for that matter). Computational thinking focuses on automating solutions to real problems and determining that those solutions work correctly.
While computational thinking is an important skill when learning to code, the ability to solve problems from several domains and disciplines will benefit both students and professionals in the workplace. Business today relies on data and the ability to make sense of it quickly. Knowledge professionals evaluate everything from the performance of stocks, to voting patterns of different demographic groups, to analyzing the impact of news headlines on social media.
Tracking customer behavior, determining factors that lead to a more marketable product (decomposition and abstraction), evaluating similarities between products or social media trends (pattern matching), and predicting, interpreting, and visualizing sales data (algorithms) are all examples of the application of computational thinking skills.
Grush: Will data skills be recognized as valuable assets as our students approach their first professional experiences?
Mastering problem solving skills will impact student success throughout their college careers and as they take their places as information workers.
Frydenberg: Sure. For example, selecting the appropriate type of graph to help illustrate data will be crucial to being able to interpret data from different disciplines using many formats. Storytelling with data is an important skill especially for those who are exploring data science or data analytics fields as possible career choices.
As the role of data becomes more valuable to organizations, students need be able to analyze data and then present their findings or conclusions in plain language for everyone to understand. Computational thinking skills help students master analyzing the data and sharing their findings.
Computational thinking and data skills will be well recognized professional skills as our students begin to make connections between how they approach problems and develop solutions in a variety of disciplines. Mastering problem solving skills will impact student success throughout their college careers and as they take their places as information workers.
[Editor's note: Photo courtesy Bentley University.]