Taking A Byte Out Of Computer Science Education: A #MathwithCode Journey
By Jeramie Oliveira, Teacher at Simi Valley High School
According to Merriam-Webster Dictionary a byte is “a unit of computer information or data-storage capacity that consists of a group of eight bits and that is used especially to represent an alphanumeric character.” Using that idea, think about how many bytes it takes to just write each letter used in this paragraph.
Now imagine you are a computer science student. You are typing code for a complex project. Your teacher uses words and phrases like functions, array, while loop, for loop, if — else choices, etc. The only looping is what is going on in your head.
As students, we are often left on our own to reproduce complex computer tasks our teachers have assigned and/or created. As Teachers, we think what we assign is accessible because, well, we “taught” it.
Even the best students and the best teachers struggle with these tasks. As a teacher, my job it to prepare students for their future careers. I believe, nothing is more important to CS education than learning how to function as part of a team. As teachers, we are not just a leader, we need to be a participant on the classroom team. Learn with and, more importantly from your students. As students, we need to talk to each other, openly share ideas, and learn from each other.
When I started my journey teaching hybrid CS/Math, that was my philosophy towards class. I knew from day one, my students would know more about code than I did. It had been 20 years since I last typed code. That was only one quarter of a C++ course I took in college. My students and I were starting something completely new. My role as the expert changed to the facilitator very fast.
As a team member, instead of the expert, I learned how to ask the students for help teaching the class. Students jumped at the chance to share ideas they had learned with each other including tips, tricks, add-ons etc. My classroom became our classroom. When I was working on the next project for the class and I was stuck, I asked them for help.
There is only one thing for sure in all of CS education: Nothing will ever work right the first time. More often than not, your program will not work the second or third time either. The beauty of writing code is that you will know right way if your program does not do what you expect. The productive struggle is part of the joy of CS.
This year the struggle is not productive. My students taught me that by failing, miserably. I had to change what I was doing. My programs already had all the right components, but I did not have the right lesson design. I wanted cooperative learning. I wanted team building. I wanted everyone working simultaneously.
In Talking with my students, I learned that my projects were created to be completed before they were tested. Students needed mid project feedback and that was not something I had created. Even though I told them to work together, my directions we linear. Each student was waiting in line for the student in front of them to write their part of the code. That was not working.
This is when I went back to the planning cycle. I started reviewing what true collaborative education was all about. Students need to be told what the specific details of their job in the group. They need directions about the location in the project where their piece should be added to the code. But, most importantly, they need to be able to independently test each and every function they write before it becomes part of their final project.
Then it hit me. I always tell students to work through a math problem one step at a time. I compare it to eating a burger. If you try to swallow it in one bite you will choke. That is what I did to my students, I was trying to make them code in one byte!
That is when I started combining the “jigsaw” reading strategy with something I noticed from working in CodeHS. In CodeHS, I noticed how there was often lessons that started small and then were improved upon until you arrived at the final project you were asked to create. But that was still a solo project and I wanted collaborative groups. In all those ‘jigsaw” readings we might not read the whole article or story, but each member of the group contributes a synopsis of what happened.
I started redoing my projects. I created new base files and took each function out and created a new “mini code” to individually test each function. These individual pieces can be coded simultaneously by the team. More importantly, these mini functions were often simple enough to be coded quickly. Students could code more than one “mini code” per class period. With the directions for placement in the main program “shell” program ready for a project leader to put the pieces together, we were back in business.
Students were working, collaborating, learning and creating very complex code. Even better, my class projects are becoming closer to what they will experience when they get their first coding jobs.
This was my journey into Taking a “Byte” out of Computer Science Education. If you would like to know more or want to share some ideas, please contact me at mathwithcode@gmail.com.
Meet Jeramie Oliveira
Jeramie Oliveira is a Math (with Code) and ROP Video Game Design teacher at Simi Valley High School in California. He’s a two time Simi Valley High School Crystal Apple Award Winner and a Simi Valley Education Foundation Teacher of the Month. This is his 19th year teaching math and he has taught intervention most of his career.
He’s involved in multiple “behind the scenes” aspects of school, serving on Simi Valley Unified’s math subject area committee, curriculum council, graduation requirements committee, LCAP, health and wellness committee, district writing task force, district technology committee and was an induction mentor teacher.
In 2016, Jeramie started working with the University of California Curriculum Integration project (UCCI) teaching Math/Computer Science hybrid Career Technical Education classes (CTE). In October 2017, he was part of the team that created the Algebra 1:Abstract to Visual course that was approved and became available to teach anywhere in Fall 2018.
Follow Jeramie on Twitter: @mrosvhs