Ethan Bogle
 
 

Computational Thinking

 

What is computational thinking? Computational thinking is the process of conceptualizing a problem in a way that a computer can assist with solving it. Think about mathematics word problems. You developed a way of thinking that allowed you to take the word problems and convert them into mathematics to find a solution, and then convert that solution back to the context of the word problem. Computational Thinking is analogous to this process, except that instead of simple word problems, you are solving real-world problems in mathematics, science, language, history... almost any subject you can think of. And instead of just mathematical notation, you use something like the Wolfram Language.

 
 
 

Computational thinking is the process of conceptualizing a problem in a way that a computer can assist with solving it.

 
Stephen showing the Wolfram Language to me for the first time.

Stephen showing the Wolfram Language to me for the first time.

Wolfram Language

Computational Thinking isn't much use without something to actually do the computations. You may be familiar with Wolfram Alpha. Its immense power of Natural Language Input ==> Computed, Detailed Output is powered by the Wolfram Language. The Wolfram Language is a Symbolic, High-Level, Interactive, Functional, Knowledge-Based Computer Language. Here's what that means:

  • Symbolic: Anything can be input or output. Feel free to try adding a string and an image! The worst thing that can happen is your code coming back unchanged.

  • High-Level: The Wolfram Language knows how to do a lot without you telling it. If it seems conceptually simple and a computer can do it, the Wolfram Language has a function for it.

  • Interactive: Autofill, automatic coloring of code, a suggestions bar, and integrated language documentation help you write your code. To run, simply press Shift-Enter. The result appears in an output cell. You can easily go back and modify your code and decompose or debug a program by running each component on its own. The interface is specially designed for writing documents with code.

  • Functional: The way you make stuff happen in the language is predominantly by applying functions, just like in math, except that the symbolic nature of the language allows the inputs and outputs to be anything. Never fear, though; the Wolfram Language has full support for procedural programming constructs as well.

  • Knowledge-Based: Not only does the Wolfram Language know how to do a lot of things, it has many of the best known algorithms (in some cases discovered by the developers) built in for accomplishing advanced tasks. Beyond this, the Wolfram Language links to the Wolfram Knowledgebase for data about almost anything conceivable.

And one more thing: The Wolfram Language makes use of Wolfram Alpha's natural language understanding to enable you to use Natural Language Input in any piece of code.

The Wolfram Language is for everyone, not just mathematicians or programmers!

 
Wolfram Summer Camp 2018

Wolfram Summer Camp 2018

Wolfram Summer Camp

Summer 2018

My enthusiasm for the Wolfram Language first grew out of meeting Dr. Stephen Wolfram, and then out of attending the Wolfram Summer Camp. After showing me the software and seeing my interest, Dr. Wolfram personally invited me to apply to the Wolfram Summer Camp. In the intervening time, I began learning the Wolfram Language. I applied and was one of 44 students accepted worldwide. At the two-week camp, I conducted and published research while surrounded by other students performing projects of their own and mentors who had been using and helping develop the Wolfram Language and Wolfram Alpha, as well as other, newer Wolfram-Language based services, for many years. Together, Dr. Wolfram and I selected my research project, and using Wolfram technologies I conducted research into Generalizing Collatz Sequences in 1 and 2 Dimensions. I presented my work at the Wolfram Summer Camp and published my computational essay on the Wolfram Research site. You can read my camp bio here and more about my research on the Math page.

 
Word Cloud created using the Wolfram Language for a Stanford OHS class discussion

Word Cloud created using the Wolfram Language for a Stanford OHS class discussion

The Computational Thinking Club

at Stanford OHS

In 2018, I founded The Computational Thinking Club, which is targeted at students in all disciplines, and focuses on practicing computational thinking: conceptualizing problems in ways that allow a computer to assist with solving them. Our tool is the Wolfram Language, a computer language which is best known as the main component of the software Mathematica and the backbone of Wolfram Alpha. As a promoter of computational thinking and the Wolfram Language at the OHS, I worked with Stephen Wolfram and Christian Rodriguez of Computational Thinking Initiatives, in order to empower computational thinking among OHS students. Club members are already using the Wolfram Language to create word clouds of assigned class readings and share these images for use in class slides and discussions.

Thumbnail.jpg

Developing a Culture of Computational Thinking

at Stanford OHS

Eventually, I realized that Computational Thinking could be more than just a hobby, but a tool to help any student achieve their academic and extracurricular goals. I wrote up a proposal for a Computational Thinking course which I submitted to the Stanford OHS administration. To my surprise, they not only decided to run a pilot in 2019-2020, but also asked me to lead it! I was one of only 2 high school students accepted to the 2019 Wolfram Summer School (the adult analog of the Wolfram Summer Camp), where I designed and wrote the curriculum for this pilot course. I was asked to speak about the curriculum at the international Wolfram Technology Conference in October 2019, where I presented the design of the curriculum and my experience using it so far. Here is an article about the curriculum.