Article

Problem Solving

Leadership & Governance

Have you ever looked at your academic programming and wondered how to make it relevant to real-world problems? Enter: computer science. And, the best part is that you don’t need a lab dedicated to computer science to teach these principles (though, it helps!).

Technology and computers are essential to almost all career paths (Slagg, 2022), and the market for computer science professionals is rapidly growing, with the Bureau of Labor projecting the market to double by 2024 (National Academies of Sciences, 2018, as cited in Vegas & Fowler, 2020). At the same time, only 51 percent of high schools in the U.S. offer courses (Slagg, 2022), and, in California, only 39 percent of high schools offer computer science courses (Scott et al., 2019), with higher disparity in low-income schools (Scott et al., 2019).

A quick breakdown: To use California, my home state, as an example, while students of color comprise 60 percent of California’s high school population (Scott et al., 2019), they represent only 16 percent of AP Computer Science test-takers (Scott et al., 2019). Breakdowns along gender lines are almost as stark: female and female-identifying students make up 49 percent of the population in California (California State Board of Education, 2018), the represent 20% of students taking introductory computer science courses (Scott et al., 2019). As a result, many students graduate high school feeling excluded from opportunities to join STEM fields in college. Given the ubiquitous role of technology in today’s culture and society, representation matters (but that’s a conversation for another time). 

There are plenty of valid reasons schools might not offer computer science courses:  lack of funding,  lack of professional development,  lack of qualified faculty, or lack of resources to support this programming, to name a few. Those types of infrastructural or institutional problems cannot be solved with curricula. However, there are ways to address representation and access at the classroom level with the integration of computer science across other subjects. It begins with professional development for all teachers, regardless of subject area, on the core themes, concepts, and practices of computer science. 

Before we unpack some of these, let’s first address some misconceptions about computer science academic programming. Computer science is not just learning how to use a mouse or click on links, and it encompasses more than just coding, troubleshooting a broken device, or understanding how a computer works. It also includes mindsets and attitudes, creativity, and ethics and integrates across all domains (California State Board of Education, 2018). Computer science requires collaboration, critical thinking, creativity, communication, and, fundamentally, problem-solving (California State Board of Education, 2018).

Problem-solving is a systematic, cyclical process that includes identifying and clarifying the problem and the goal state, researching and selecting potential solutions, testing and refining the solutions, and evaluating the effectiveness of the implemented solution (Smith & Ragan, 2005; California State Board of Education, 2018). When used in the context of computer science, students might identify user needs and issues with accessibility and develop solutions using a computer. A critical element is that the computer is the tool to provide the solution, whether the solution is a newly developed app, a slide deck, a short video telling a story, or some other creative artifact. 

Problem-solving is a useful skill that can be applied across many domains once the procedure has been learned, and often, complex problems require interdisciplinary knowledge to solve. Furthermore, it is a skill that is indispensable in most jobs.  Let’s take a moment to review different kinds of problems students might encounter: well-defined problems have a clear goal and clear given state (Smith & Ragan, 2005). There are commonly-accepted ways to solve these problems, and students can use their understanding of features of these problems to identify solutions  (Smith & Ragan, 2005). Troubleshooting computer equipment is a well-defined problem (usually!), as is debugging simple code. On the other side of the spectrum, an ill-defined problem is one in which the the path from given state to goal state is unclear, and, in fact, the goal state itself may be unclear. Ill-defined problems require multiple perspectives, a breadth of interdisciplinary knowledge, and there are many potential solutions (Smith & Ragan, 2005). Examples of ill-defined problems include addressing the use of artificial intelligence within schools, or … Second example?. This affects multiple domains, requires deep knowledge of those subjects, and there is no “right” answer,. So the solution will be the best answer for a given context and, for many, it might feel like a compromise.

We must prepare our students to solve these complex problems and equip them with the skills to address problems from a computational perspective, a humanitarian perspective, a mathematical perspective, or any other disciplinary perspective. If your school does not offer computer science courses, it might be time to consider ways to introduce technology as a tool for solving problems.

Some suggestions to get you started:

  • Look at your current scope and sequence with the intention of identifying authentic problems. Use current events or otherwise personally meaningful problems as a jumping off point.
  • Start with simple problems with singular solutions and provide worked examples for each stage of the problem-solving process.
  • Teach students how to address complexity by breaking down larger problems or projects into subproblems or subtasks.
  • Highlight patterns and promote pattern recognition to illustrate how to decompose bigger pictures into smaller parts.
  • Use data and data visualizations to help students understand the world around them and to communicate patterns and trends.

If you’d like to learn more, explore Code.Org’s unplugged activities, or check out different Project-Based Learning prompts from PBLWorks’ sites. Each time students learn ways to break apart and understand complex problems, they are practicing a computer science mindset. And, as students begin to see computers as a tool for solving real-world problems, they might be more inclined to explore that high school computer science course or take the afterschool coding class.  

References:

California State Board of Education. (2018). Computer science standards for california public schools kindergarten through grade twelve. California Department of Education.

Scott, A. S., Koshy, M., Rao, L., Hinton, J., Flapan, E. D. A., Martin, F., Mcalear, M., & Res. (2019). Computer Science In California’s Schools: An analysis of access, enrollment, and equity 2 date.

Slagg, A. (2022, June 23,). Teaching the principles of computer science early in K-12 schools. www.edtechmagazine.com. Retrieved July 4, 2023, from https://edtechmagazine.com/k12/article/2022/06/teaching-principles-computer-science-early-k-12-schools-perfcon

Smith, P. L., & Ragan, T. J. (2005). Instructional design (3rd ed.). John Wiley & Sons, Inc.

Vegas, E., & Fowler, B. (2020, August 4,). What do we know about the expansion of K-12 computer science education? Brookings. Retrieved Jul 4, 2023, from https://www.brookings.edu/articles/what-do-we-know-about-the-expansion-of-k-12-computer-science-education/