Improving Computer Education: Less Code, More Programming
High school students benefit tremendously when computer science courses become part of standard curriculum. Learning to program is learning to think in a very important way. Just look at the popularity of software like Scratch, or initiatives supported by code.org — even President Obama had his face on the homepage! It’s an important issue.
But there’s an important point no one is talking about.
Learning to write code isn’t for everyone.
Only 10% of high schools throughout the U.S. offered computer science education last year, and roughly 3/4 of the country still hasn’t adopted significant education standards for computer science within their states. Yes, computer science is a relatively new field. But we believe there’s another glaring factor: computer science, as it’s currently introduced to students, is too foreign, tedious, and complex.
Indeed, if you are a high school student with no desire to become an engineer or computer scientist, then that’s a lot of unnecessary syntax you will be forced to learn once computer science becomes a standard part of your education. So the question becomes how can we maximize the educational value of programming and expose students to this relatively new field, while avoiding the need of having every student learn code?
The first step would be divorcing the logic of programming from the syntax of coding. High school students can extract tremendous value from learning how to program. The problem is that, until recently, the only way to learn how to program was to simultaneously learn how to write code.
This is exactly what we’re addressing with Bubble (read more about Bubble here).
We’ve created a platform where students can create apps and express their logic visually — without code — opening up the educational value of programming to a much broader audience.
Computational Thinking is a Fundamental Skill
A synonymous term for programmatic thinking is “computational thinking” — a phrase brought to the forefront of the computer science community via an article on the subject by Jeannette Wing. She writes,
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability.
Let’s look at some of the characteristics of computational thinking (“Defining Computational Thinking for K-12” written for the CSTA Voice — Computer Science Teacher’s Association).
1) Analyzing and logically organizing data
2) Data modeling, data abstractions, and simulations
3) Formulating problems such that computers may assist
4) Identifying, testing, and implementing possible solutions
5) Automating solutions via algorithmic thinking
In other words, computational thinking is about teaching students how to think in very important ways. And this, we believe, should be a primary motivation in general education. Thinking programmatically is important not just for building apps; it helps thinking about other issues in a structured manner. Even for general business decisions, you’ll have to think about the different scenarios and circumstances, make simulations, etc.
Math is also largely about solving a problem under a set of constraints. But what if we used programming instead of solely math courses? That would lead to a much more vivid, modern and interactive experience. Kids will be able to experiment with things and see how it behaves immediately, while math is a bit disconnected from reality.
To us, that’s a great use of technology.
Bubble is a Powerful Educational Tool
Once you remove the obstacle of code, programmatic thinking becomes quasi-synonymous with pragmatic thinking, which is a lifelong valuable skill for every student. To be clear, it would be a mistake to label Bubble as a “simple” tool — even when divorced from writing code, programming an application still requires students to decide what elements are necessary to enable users to perform necessary actions. They must consider the set of events (series of actions) that execute what the application should do. They must set the appropriate conditions and actions to make sure the application handles different circumstances well. They must setup appropriate data structures, etc. (If it were too easy, where would the educational value be?).
For example, see the differences between the 2 workflows below. You need to think about what should happen when the user is logged in vs.logged out. This can be tricky at times, but working through these different circumstances and offering solutions is fundamental to not only creating great software, but developing the skills necessary to solve complex problems more generally.
Bubble’s real value is that it is a visual, more instantaneous tool. Building your first prototype takes about 30 minutes, and you can test, experiment, and fix your prototype in real time. We believe this can add tremendous value to a high school student’s general education, because it makes programming — which is a beautiful hybrid of the rigid logic in mathematics and the creative self-expression promoted by the liberal arts — broadly accessible to all students.
You’re an educator and curious about Bubble? Reach out! We’d love to chat!