This post was jointly written by our team, including Giacomo Vianello (Senior Data Scientist), Kyler Brown (Senior Data Scientist), Kajari Ghosh (Software Engineer), Dan Vasquez (Senior Software Engineer), & Michael Chen (Senior Software Engineer)
Since 2016, Cape Analytics has partnered with a local high school called Cristo Rey, whose student body is comprised of underserved teens from the San Jose area. We’re proud to be a major supporter of Cristo Rey’s innovative work study program, where 8-10 high school students are paid interns at Cape Analytics for the year. Not only do we get to support these students, but they also provide us with tangible work of real value. It’s a true win-win program that we’ve been thrilled to be a part of.
Recently, we had the opportunity to change things up a little bit. When the director of the Cristo Rey program asked for volunteers to teach a summer coding and software development class, five of our data scientists and software engineers stepped up to the plate: Giacomo, Kyler, Dan, Michael, and Kajari. Rather than Cristo Rey students coming to us, it was our turn to go to Cristo Rey. Our team members made the trek to San Jose once a week for four weeks in order to teach the course.
Software systems are all around us, in cell phones, cars, airplanes, factories, gas stations, and of course, the internet. In this digital age, basic literacy in coding opens the door to more creative and active interactions with technology. Unfortunately, this level of interaction is not easily accessible to high school students, especially for those from low-income families that are heavily underrepresented in today’s technology industry.
The curriculum covered four three-hour sessions. Our students had very little prior exposure to coding but, by the end of class, they were successfully writing code to guide a robot through an obstacle course. To teach the course, we used a browser-based free tool from Google called Colab, and focused on programming in Python, which allowed the class to use Chromebooks provided by the school, without having to install any additional software.
In the first week, we set a foundation for the class. We discussed how coding is important in our professional and personal lives, as well as in our society. From there, we quickly started cultivating some hands-on experience. We went over how to use variables, mathematical operations, and functions which concluded with a hands-on session where the students started coding a game of rock , paper, scissors. The lesson was pretty challenging for the first week, but the students ended up doing really well.
In week two, we continued working on functions and the game of rock, paper, scissors introducing more nuances and explaining control sequences: if, then, else, etc. Control sequences served as fundamental building blocks for the following sessions, teaching the students how to control the behavior of software or hardware, given different scenarios.
By the third week, we were diving into server/client interactions. We worked with the students to code an ad-hoc cloud-based treasure hunt game, where the students had to program their client to control an avatar in the game. Students could see each other’s avatars move on the same screen and they were able to work collaboratively to figure out how to utilize remote cloud connections to drive their avatar around the screen with control instructions.
Before we knew it, we had already reached week four and we were ready to teach the students their final lesson. For this project, our team pre-assembled an NVIDIA JetBot. The JetBot is a small WiFi-controlled robot that is a fantastic tool for educational purposes. The students had to assess an improvised obstacle course consisting of classroom objects, and then write the code to correctly sequence movements that would move the bot through the course from start to finish. The students were invested by this point — as their robot passed or hit certain obstacles there was cheering or heartbreak. Given the students had little prior exposure to coding, it was thrilling to see them navigate a robot via code and commands.
This was our first time teaching a course at Cristo Rey but, based on reactions from across our team, it’s unlikely to be the last. We hope it was a great experience for the students — it was wonderful to share the passion we have for our profession with eager high schoolers, perhaps even seeding their desire to study computer science in the future.