Monthly Newsletter – May 2023
May 4, 2023Mesmerizing a Captivated World
May 30, 2023Educators and students alike face some difficult and unique challenges in the modern computer science classroom. Especially when it comes to tackling the “meat and cheese” of computer science: computer programming. But robotics can help us overcome these challenges!
The Importance of Computer Programming
Back when I was in high school, the extent of my computer science education was limited to a simple typing class. It wasn’t until my second year in college that I had my first interaction with programming, in the form of C and C++. Nowadays, students are learning how to interact with and program computers earlier and earlier – as they should!
The Bureau of Labor Statistics has reported that computer programming and software development-related jobs are expected to grow by 25% from 2021 to 2031 – in their own words, “much faster than average.” According to research cited by the International Monetary Fund, as of October 2022, only 33% of tech jobs worldwide have been filled by adequately skilled workers. By 2030, this global shortage of tech workers is forecasted to result in an $8.5 trillion loss in annual revenue. In other words, computer science education is more important than ever.
The Challenges Behind Computer Programming
Learning how to code is a lot like learning a new language – and can often prove to be just as difficult (in strikingly similar ways, in fact). After all, when it comes to becoming familiar with a programming language, there are lots of keywords, rules, and symbols that need to be memorized, just like the vocabulary and grammatical rules behind spoken languages like English or Spanish. This formal structure of a programming language is called “syntax,” and it acts much like the grammar of a programming language. Each programming language has a different set of syntactic rules. Parenthesis, brackets, colons, semicolons, and keywords like “if,” “for,” “while,” and “print” are all examples of syntax commonly used in programming languages. Developing an intuition for when and how to properly use coding syntax is often the most challenging aspect of learning how to program.
Luckily, we have tools like block coding to help students along their way to mastering text-based, syntax-heavy coding. (Block coding is a simplified, intuitive form of coding with an emphasis on visual learning and a de-emphasis on complicated syntax.) But even with block coding at our disposal, teaching students to grasp some of the fundamental concepts behind computer programming (like variables, lists, logic, loops, and functions) can still prove to be difficult. This is where robots come in.
Why Robots?
The incorporation of physical robotics hardware into the computer science classroom has the ability to transform the way students learn how to code, making the process smoother, more engaging, and less frustrating for students and teachers alike. During my time working with Dobot robotic arms and Dash from Wonder Workshop, I’ve encountered a slew of benefits that come with introducing these robotics technologies to students. Here are just a few:
Active Engagement:
In the “traditional” computer science classroom, your teaching tools are limited to blackboards, textbooks, and computer screens, but robots give students the opportunity to truly bring their coding to life in three-dimensional space. This sort of physical interaction is crucial to bringing the benefits of hands-on, project-based learning to the computer science classroom. Not only that, but the active engagement that this physical interaction brings ensures the success of students of all learning types, from textbook learners to tangible tinkerers. As students draw connections between their digital input (what they’ve typed on their computer screens) and the physical output (the behavior of a robot), they begin to intuitively understand how to communicate instructions to a computer/robot and how to think like a programmer.
Immediate Feedback and Iterative Learning
This, in my opinion, is by far the most important benefit that robots bring to the table. When a student is tasked with putting together a computer program that accomplishes a certain task, they will rarely get it right the first time….and that’s okay! In fact, it’s preferable – and integral to the practice and application of iterative learning. On the off chance that a student does get their program to work on the first try, terrific! When students succeed, they are building confidence and affirming their prior learning. But if they don’t get their program to work on the first try, robots are there to cushion the blow by providing them with the opportunity to actively and effectively learn from their mistakes. Let’s say that a student is writing code that instructs a robot to perform a series of three steps. If the robot fails to perform the second step properly, this serves as immediate feedback for the student and alerts them to the fact that they have made some sort of error in the part of their code that corresponds to this second step. As students begin to better understand the relationship between the specific content of their code and the behavior of a robot, they will sharpen their ability to debug their code and deeply engage in iterative learning.
Critical Reflection:
Having students control a robot via their own block-based or text-based coding gives them a certain sense of ownership in a project that you just won’t find otherwise. I like to think of it this way: it’s the difference between handing a kid an unconstructed LEGO set and a fully-constructed LEGO set. Putting something together yourself is a huge part of the fun with LEGOs, and the same holds true in the computer science classroom. Robots really create a personal connection between the student and their coding work. This intimate connection spurs students to critically reflect on their work, engage in self-evaluation, and expand on their learning by asking questions like:
- “How did I organize my computer program?”
- “What factors made my program successful and effective?”
- “How could I make my program even better in the future?”
- “How could a similar program/robotics system be used in my community? A factory? A hospital?”
Conclusion
If you’re interested in incorporating robots into your own computer science classroom, check out our Dobot and Wonder Workshop products. And for a semester-long dive into high school robotics and computer programming, check out one of our newest products, “Foundations of Engineering, Technology, and Robotics.” The packages and curriculum for this course have been specifically designed by yours truly to walk students through the process of learning how to code in Python with the help of the Dobot Magician, regardless of their prior level of experience or exposure to the subject of computer programming. This course is great for teaching concepts like computational thinking, problem-solving, advanced manufacturing, and career and technical education. I’ve been working very hard on it over the last few months and am very proud of the final polished product! I look forward intently to seeing how it will be employed in computer science classrooms in the near future.
Until next time.
– Dr. Jake Roark