* computer languages relate somewhat roughly to human languages. they use standard/ common/ shared words. consider that there are thousands of human languages, some defunct, others active, and their vocabulary and usage is continually evolving over time. some people create new useful words to express concepts that were not previously expressible. another overlapping aspect of computer language and human language is grammar. some languages eg english have very complex grammar. consider all the different tenses and the complex rules that govern them. other languages do not have the same tenses. another correlation is with parts of speech categories eg noun, verb, adverb, adjective etc, these function somewhat like types in computer languages. imagine creating new languages with different parts of speech categories that have not previously been considered, or with new combinations of parts of speech that come from different languages, etc.; so note that linguistics has a connection to computer science eg esp in Chomskian language theory.
* software and hardware often are related to engines and machines and even are named after this. there is an old software analogy that trying to modify a complex 24/7 production system is like changing the engines of a plane while it is in flight. 634
also note that jet engines are highly complex and involve massive precise specifications of interchangeable parts and here there is some analogy to computer languages that control hardware. imagine all the complexity of documents that describe exactly how to build jet engines: all the parts, how they are constructed, how they fit together, how they are assembled etc; they are created/ compiled by engineers using a precise format/ structure/ conventional rules; software is somewhat analogous to this.
* re machines, anyone without scientific or mathematical education or even a child can understand the basic concept and many aspects of a <PERSON> machine! a wondrous creation. one suspects <PERSON> was inspired by typewriters and/or teletype machines. one could describe the state table, and show them a sample state table that computes multiplication, and someone could watch a youtube animation of a Turing machine compute a basic computation like a multiplication. tell them that the state table can compute or literally decide a language, and that the inputs are literally called words. in fact, Turing machines accept words in languages etc. then tell them that there are two state tables that both compute multiplication, but one is much faster or more efficient than the other, and that your research involves finding better state table concepts. figuring out how to build state tables effectively involve programming languages that summarize the contents of large state tables! a compiler converts code written in a programming language into a large state table.
* sorting algorithms are a great entry level metaphor into computer science. one can look at the different lists of instructions aka algorithm for each sort. one can learn what a bubble sort is versus an insertion sort, one can use a deck of cards. now focus on the different sets of instructions, and consider that they have to be written in a very precise language, as precise as mathematical statements, which has a strict syntax etc, and has basic commonalities/ structures: conditional logic, loops, variables etc, and explain that the art of this precise specification is about computer languages, and that some different languages may yield the same algorithms, but that there is some subtle stylistic variations in these languages that are studied at great depth, etc 634