Perspective on what real-world, relevant skill building can bring to everyone.
GUEST COLUMN | by Emmanuelle Deaton
In computer programming, there are real-world reasons for teaching students to use syntax and to use and create vocabulary.
Block languages, best defined by what they restrict (including the possibility of making syntactical mistakes and the inability to work freely with vocabulary), are of potential interest in functional, procedural, or modeling work.
The nature of block languages makes them antithetical to programming languages, which are best defined by their creative potential.
Indeed, real computer programming languages should be approached and taught as a literacy, providing a natural on-ramp to computer science, while not necessitating that every programming literate individual become a computer scientist.
‘…real computer programming languages should be approached and taught as a literacy, providing a natural on-ramp to computer science, while not necessitating that every programming literate individual become a computer scientist.’
A Multiplicity of Voices
This idea of programming languages having creative potential connects to a semi-persistent problem within the computing industry: diversity.
While many people worry about the lack of diversity in the computing industry, rightfully pointing out that the lack of diversity means that the work being done today is potentially (and in some cases, demonstrably) rife with bias, we are not seeing much change in who is participating in computer science: in Canada and the United States, white men still dominate.
The successful inclusion of a multiplicity of voices in computing is dependent on understanding that programming languages are designed to capitalize on and to maximize freedom: let those who are interested first in producing computer programs do so—in whatever native language they speak; let them focus on reading and writing with real computer languages, and then see if they want to dabble in some parts of the science of computing, without requiring it.
The Freedom of a Writer
Programming languages are defined by their specific syntax and vocabulary in a way that is similar to spoken and written languages. Major differences exist: notably, computer programming languages are primarily defined by the vocabulary they lack, and the freedom they provide; each one allows—even demands—that a writer create a whole host of vocabulary words.
These words form one of two categories of vocabulary: unreserved keywords (aka: variable keywords); the other category is reserved keywords (words that are pre-set within a programming language).
As most programming languages have at most 1,000 reserved keywords, those writing computer programs must create most of the vocabulary that they need to express their thoughts.
Meaning and Clarity
One of the real-world reasons for learning to use syntax and to both use and create vocabulary is that it teaches students to read code for meaning and to write for clarity, strong communication, and excellence in collaboration. To avoid problems on teams, and to avoid problems related to individual recall, programmers need to use unreserved keywords that clearly match their intent. Writing a computer program with a real-world programming language is what lets students practice these skills.
Those who belong to a minority language group have another important reason for learning to use syntax and learning to use and to create vocabulary: it minimizes their need to know English, and can allow them to work primarily with their native language; they do need to use the Roman alphabet to provide phonetic spellings of their native tongue, unless it already uses the Roman alphabet.
Beyond the removal of a language barrier, the importance of unreserved keywords is that they can keep people in their communities if they want to stay there. For instance, francophones can start a business in technology without needing to be good at English.
The same is true for individuals whose native language is a First Nations language, for instance, such as Cree: they can learn the reserved keywords of a programming language, while doing most of their work in Cree.
A Programming Literate Population
As for computer science: as a field, it benefits from having a programming literate population—more of whom might want to participate in computer science, and more of whom might be more successful at computer science if a major part of that curriculum (programming literacy) is already mastered prior to taking Introduction to Algorithms.
The possibility of interdisciplinary team work is also interesting: programming literate biologists, historians, political scientists, and economists, might work very well with computer scientists—providing insights and data points for their work, or contributing directly to computer science as, over time or through professional development, their literacy skills transform into scientific understanding.
Emmanuelle Deaton is the co-founder and co-CEO of Hatch Coding, a Toronto-based developer of project-based learning software offering classes and camps for children, teens, and adults. Write to: [email protected]