On October 4, I watched a video produced by Code.org in which Chris Bosh (my favorite NBA player) was talking about procedures. Only the script that Mr. Bosh was reading used the word “function” instead of “procedure”. It may seem like a small thing, but as a teacher who has dealt with algebra and geometry students who find the vocabulary of mathematics somewhere between merely off-putting and thoroughly confusing, I thought I would defend the distinction. So, I had the audacity to post a polite complaint to the CS Education Discussion Forum on Facebook as I know it is gets attention from the good folks at Code.org.
The ensuing discussion with Hadi Partovi, Emmanuel Schanzer, Baker Franke, and others was interesting. Because the words are conflated in the computing industry (and very specifically in some languages such as JavaScript), there was an argument that the two were synonymous. It’s a very reasonable point, but there is a distinction between a student learning math and computer science and a programming professional. I’m worried only about the former. (I was amused to learn from Hadi that Bill Gates apparently takes my side of this argument. Yay Bill!)
To my surprise–and educating me on how to deal with people with whom one has a professional disagreement, Hadi dropped me an email, asking me to look over a document that Code.org was drafting that talked about various terms as they arise in a typical math class and in a typical CS class.
More recently, Baker Franke and I talked and he suggested that I put these distinctions into my blog. Thus begins a series of entries that discusses linguistic issues as regards the learning of mathematics and the learning of computer science.
Hopefully, this will generate some discussion. Computer science is still a very young field and figuring out how to best communicate big ideas in the field has its challenges, vocabulary being a big one, particularly with novices.
Here are the topics that will be covered. I will provide links to them as I create blog entries.
- Function v. Procedure
- Variables
- =
- Numbers and other data types
- Operators
- Abstraction
🙂