Early in February, one of our co-workers gave us an opportunity to work with a group of young women in middle school interested in STEM. A few of us got together with the young women, and with the guidance of one of our own homegrown middle-schoolers, we selected a resource and a project to do. The middle-schoolers even went as far as to help us think up some hashtags for the event (#girlsdotech #girlsrule #supergirltech). After Onyx Point, LLC. agreed to supply us a room and some snacks, we advertised, planned some more, and rehearsed until the event happened. It was a huge success!
The program we selected was sponsored by TechGirlz. The TechGirlz mission is to inspire middle school girls to explore the possibilities of technology to empower their future careers. A co-worker was able to wrangle up enough laptops for the girls, and before we knew it, it was time to teach!
We taught “Designing a Game with GameMaker” using an existing Youtube tutorial. From this video, the middle-schoolers learned to create an “asteroids” type of game. They designed rocket ships and space rocks and made them move and interact. As a pre-made project, the lessons were pretty straightforward but we touched on many programming principles during this session. The cool thing was that the girls may have not even noticed how much they were learning!
In creating any software project, there is always analytical thinking and creativity involved. The girls had some flexibility in the objects they created for the game. They had to think about how to draw or import their “sprites” and about their sizes and shapes and how they would interact. As a matter of fact, if they were to rethink this now, I suspect many of them would choose to do things differently. Analytical thinking and creativity are important qualities for a programmer!
Another programming concept we introduced to the girls was Object-Oriented Programming (OOP). As the video illustrated to them, an object has properties and behaviors, and one must create an instance (a constructor) of this object to make it act and react, or, as the narrator said multiple times, “if this, then that.”
There were also many visual programming skills introduced. The girls learned that their ship needed an origin that would act as a center of gravity so that when it moved, it appeared visually realistic. Also, they created a “collision mask” that was an approximation of the shape of the object so it would visually act appropriately if hit. Here they learned an additional lesson! The girls learned they could use as much detail as they wanted in the collision mask, but too much detail would take up too much calculation time and slow down the game. This exercise created thoughts about computational efficiency and balance.
Other programming skills touched on were how to use variable names and create one-off variables based on events; they learned how they could select and call pre-coded functions, and they used the game’s IDE (Integrated Development Environment) to familiarize the students with the tools they may need to code and debug on the fly. They were able to test out their code at any stage of development and learned to adjust as needed.
Not only did these young women learn software development skills, but they worked in teams, making new friends, helping each other out, testing, and learning how to cope with unexpected results and difficult problems. These are great beginning skills for working in a cooperative development environment!
At the end of the day, I was extremely proud of our group, and hope to get to do more of these projects with them. In fact, we have one scheduled for March 30! Many thanks are due to the OP employees and friends who helped make this happen! I am hoping that this experience, even if it did not make the students all want to be programmers, gave them confidence in their listening, problem-solving, and cooperative skills. Hopefully at least a couple of them will end up at Onyx Point, LLC. in a decade or so!
At Onyx Point, our engineers focus on Security, System
Administration, Automation, Dataflow, and DevOps consulting for
government and commercial clients. We offer professional
services for Puppet, RedHat, SIMP, NiFi, GitLab, and the other
solutions in place that keep your systems running securely and
efficiently. We offer Open Source Software support and
Engineering and Consulting services through GSA IT Schedule 70.
As Open Source contributors and advocates, we encourage the use
of FOSS products in Government as part of an overarching IT
Efficiencies plan to reduce ongoing IT expenditures attributed
to software licensing. Our support and contributions to Open
Source, are just one of our many guiding principles
- Customer First.
- Security in All We Do.
- Pursue Innovation with Integrity.
- Communicate Openly and Respectfully.
- Offer Your Talents, and Appreciate the Talents of Others