Bringing Wolfram Programming Lab into the Classroom
Welcome to the first in a series of blog posts on experiencing Wolfram Programming Lab. In this series, my colleague and I will share our thoughts on using Wolfram Programming Lab as a tool to develop a computational thinking mindset in students. Modern industry has recognized a serious lack of problem solving and critical thinking in recent graduates. In a world going digital, there is an ever-increasing demand for a curriculum that is current and equips students with skills they need to succeed outside the classroom. Adding a computational thinking approach in the classroom addresses these issues. With Wolfram Programming Lab, injecting computational thinking activities to support the curriculum has never been easier. In fact, with the tools and methods we are going to describe in this series, it is possible to do this across a wide range of subjects, not just math and computer science.
Wolfram Programming Lab is an immersive programming environment that is also fun! You can run Programming Lab through a web browser as well as on desktop systems. It is compatible on Mac, Windows, and Linux. Though Wolfram Programming Lab officially released earlier this year, the education folks here at Wolfram have been using it for a while now. Apart from constantly adding and tweaking content, we have been very busy conducting workshops in schools and libraries in Champaign-Urbana and nearby cities. Today I’ll discuss experiences from two workshops that I led using Wolfram Programming Lab.
Programming Lab is a hands-on introduction to the Wolfram Language and everything it makes possible. It is a practical tool even for users who have never programmed before. For students who are familiar with introductory block-based programming languages, the Wolfram Language is a natural next step into the world of text-based code. The students at my workshops frequently refer to this as the “grownup’s coding language.” They love that they are able to create something in a language used in almost every university in the country.
A notable workshop experience was at a middle school in Rantoul, Illinois. I worked with students there for a two-week workshop series. The students had zero experience with programming, block or text based. They were some of the most enthusiastic and eager kids I have worked with.
I love that even elementary code can have a big payoff. To make things convenient, the Explorations in Programming Lab are divided into Starter, Basic, Intermediate, and Advanced levels.
We started with, of course, the Starter activities (“Get Started”). The students created a variety of geometric shapes and figures, and loved playing with colors. We tried the “Draw a Sphere” Exploration, and I frequently heard laughter as they tried wacky colors like “turquoise-sea-foam.” But this experimentation is a big part of being a programmer, and they were already taking their first steps with it. We moved on to styling text and creating mini-websites that displayed names in multiple colors and fonts. We created a ninja name generator website (“Create a Ninja Name Generator”), always a big hit. We created melodies (“Random Melodies”) using the Wolfram Language, and even had their music teacher stop by and listen. She loved it! This was a very successful workshop, by the end of which we had students saying, “I want to become a computer programmer.” Their teacher was so proud, frequently commenting that he had rarely seen his students so engaged as a group.
One of the first schools I worked at is a middle school in Champaign, Illinois. Here I worked with a STEM teacher who was interested in bringing programming into her curriculum. I conducted coding sessions with her students for two quarters. Along the way, we discussed functions, variables, input parameters, and other concepts. We worked our way through sample Explorations in Programming Lab step by step until the students knew their way around. By this time, students were helping their neighbors. This is a definite win from a teacher’s point of view, when students are engaged enough to work together constructively.
After this, we began creating coding activities specific to what they were learning in class. For example, in a home design unit we built web forms that calculated the water you would save if you reduced your shower time by one minute. Students were surprised at how much water they use annually, and how a small change can make a big difference. We built a neat program that used public city data to map the electricity consumption in major Chicago suburbs. The kids were tasked with building foam board models of their dream homes, and together we built a web survey that would determine if your house is energy efficient using Wolfram Language code. For a forensics unit, we built a tool that would automatically count the bugs in a picture using some quick image processing transformations. Interestingly, a couple months later we met a biology major at a talk who recalled that he spent a summer internship at his university doing exactly that—counting bugs in images. He was amazed that middle schoolers were able to help build a tool that would have reduced his summer workload significantly. We saw yet again that good code, no matter how small, can have big possibilities.
It is easy to see with these units that students are especially engaged when they understand the relevance of the code they write. These activities felt more real-world to them, directly related to their lives, as opposed to following stock tutorials on websites. Programming Lab already contains Explorations that span a wide range of subject areas, from astronomy to English to, of course, math.
All our workshops have a few things in common. The first time students create something using Wolfram Language code, there are excited squeals and “Look what I did!” and lots of surprised laughter. Students love seeing an instant payoff, and this happens all the time with the Wolfram Language and its characteristically short and readable code. This is perfectly suited for the younger audience, as they present programs in small, accessible steps that are easy to understand and modify. Furthermore, as the Wolfram Language is text based, students learn much more than “coding” during these sessions. They learn about programming syntax and logic, among other things, and oftentimes even improve their spelling!
With my experiences at all these schools, I feel that Wolfram Programming Lab is the perfect companion for teachers who are interested in integrating code into their classrooms. Whether it is by giving students a general exposure to computer programming or creating coding activities that are directly related to their curriculum, this is really the perfect choice. There is something in Wolfram Programming Lab for every student, and every subject too, as we will demonstrate in the next post of our series.
Wolfram regularly hosts virtual workshops for educators, and we are holding one specifically to discuss Wolfram Programming Lab.
What: Introducing Wolfram Programming Lab: Virtual Workshop for Educators
When: February 25, 4–5pm EST
Where: Free online
Who: Anyone who’s interested—no coding experience needed!
We’ll go over how to get started using Programming Lab, its built-in Explorations, and case studies from elementary schools and secondary classrooms with plenty of time for Q&A. You can register here. I look forward to seeing you there!