Computers are an everyday part of life. We use them constantly in our personal lives and in the workplace. According the the U.S. Bureau of Labor statistics, over 50% of jobs today require some level of technology skills. And, that percentage is expected to grow to almost 80% in the next ten years.
There’s no question that computer science skills are helping students succeed. But, computer science is about more than just learning to program. Students also need to learn how to think programmatically, to use programming as a problem-solving tool, and to understand the global impact of computer science and computing.
The most effective STEM programs include what are sometimes called the “Big Ideas” of computer science – foundational principles that are central to computing and help show students how computer science can change the world. Here’s a quick overview of some of the big ideas we think are important, and some tips on how you can incorporate them into your STEM Robotics or Computer Science classroom:
- Abstraction – Abstraction is a key problem-solving technique that we use in our everyday lives and that can be applied across disciplines and problems. Abstraction helps students manage complexity by reducing the information and details of a problem, allowing them to focus on the main idea. But how do you teach students abstraction?
One way is to Implement a project that start with a complex problem but uses mini-challenges to break the problem into smaller pieces. Have students solve the mini-challenges, focusing on one aspect of the problem at a time, and then use those mini-challenge solutions to build a final solution to the larger, more complex problem.
2. Algorithms – Algorithms are used to develop and express computational problems and they’re an important part of Computer Science. But, algorithmic thinking is a tool that students can apply across disciplines and problems. Algorithmic thinking means defining a series of ordered steps you can take to solve a problem. Therefore, it’s important that students learn how to not only develop algorithms, but to also learn how to express algorithms in language, connect problems to algorithmic solutions, and evaluate algorithms effectively and analytically.
Here’s one idea for introducing algorithms into your STEM Robotics or Computer Science classroom: Provide students with a list of numbers. Ask them to find the largest number and document the procedure they used. (This is also good pseudocode practice!) Next, tell students that they will be given a program that generates 10 random numbers between 0 and 30 and they will have to provide an algorithm to find the largest number from the list. Once students have generated the algorithm and seen it in action, discuss why the algorithm is valuable. While it may not be a big deal to find the largest number out of a group of 10, what if we increased the range of numbers from 0 to 10,000, and increased the amount of numbers from 10 to 1000? In a situation like that, an algorithm would be able to find the largest number much faster than a human.
To learn more about implementing computational thinking in your classroom, read our blog post from last month, “What is Computational Thinking and Why Should You Care?
4. Creativity – People often think that science and creativity are two terms that don’t belong together. However, that couldn’t be further from the truth. Innovation and creativity are at the heart of STEM and Computer Science. Along with programming skills, students need to learn how to think creatively and need to get comfortable with the creative process.
One great way to do this is by using structured problem-solving in your classroom. Structured problem-solving allows students to be creative, but within parameters. While students will still have opportunities to personalize their projects and justify their solutions, their creativity will still be structured. That way, teachers don’t have to worry about students constantly losing focus.
5. Data – This “Big Idea” revolves around the fact that data and information facilitate the creation of knowledge. Over the past 50 years, the tasks that we perform on a routine basis have gotten more and more complex. According to an analysis done by Frank Levy and Richard J. Murane, the amount that employees are asked to solve unstructured problems and acquire and make sense of new information has increased dramatically, by more than 40% .[i] Therefore, it’s important to teach students how to analyze and interpret data.
You can do this by having students use coordinate data to code precise movements. Or, ask students to design a short, school-appropriate survey to collect data and answer specific questions. Then, have students write a program to input and analyze their data and calculate basic descriptive statistics such as mean, mode, range, and frequency. You can also ask students to plot their data on a chart or graph, and identify subgroups within the dataset to explain response patterns. Finally ask students to draw conclusions or make generalizations from their data and present their results to the class.
6. Impact – Computers have had a global impact on the way we think and live. The way we work, play, collaborate, communicate, and do business has changed dramatically in recent years and will likely continue to change. It’s important for students to understand the global impact of computing in everyday life, and the numerous ways computing helps enable innovation in other fields.
One way to help students understand the impact of computer science is to use activities that involve things like the internet, cybersecurity, internet searches, and the power of programming within advertising. You can also create activities that ask students to connect their programming skills to content from other classes (science, math, etc.). Or, you can ask students to think about and report on the less obvious ways they use technology every day, such as making breakfast, driving in a car, using the self-checkout line at the grocery store, etc.
7. Precision – Programming is precise. It’s important for students to learn that a computer program will do exactly what they tell it to do. This is especially evident with robots. If you aren’t precise about what you tell your robots to do, they probably won’t do what you want. However, precision does not need to be complex. Even simple programming activities can require precise, thoughtful communication – How far should the robot move? How far should it turn?
Ultimately, we’re asking students to change the way they think about giving directions. So, a great activity is to have students create a set of instructions explaining how to do a task like following a recipe, drawing a house, or making a paper airplane. Have one student provide the instructions and a second student act as a robot, doing exactly what student #1 is telling him or her to do. Most times, it quickly becomes apparent that students have not fully considered the level of detail required for programming and that they need to be more precise with how they provide instructions.
If you’re looking for more ideas on how to integrate “Big Ideas” into your STEM classroom, we’ve embedded these “Big Ideas” into our research-based curriculum, which is available for free online, or through the purchase of a classroom edition that comes with the benefits of:
- Guaranteed Uptime – Keep your classroom up, even if your internet is down.
- Zero bandwidth requirements – 30 kids accessing the same curriculum can really slow things down.
- High Quality Support – Have a question or need help getting started? You’ll have access to our best-in-class support team.
- Individual curriculum access for each student or group – With individual access to the curriculum, students can move at the instructional pace that’s right for them.