We Found a Way to Explain Basic Programming Terms to Your Dad
Do you know the new “Are you winning son?” meme going around these days?
I had a moment that exactly felt like it when my dad walked in and asked me if I was done with work and could come for dinner.
Well, he didn’t exactly say “Are ya winning son?” but it felt close enough that I laughed for a while later. I told him I was working on the syntax errors in my project.
The puzzled look on his face when I said ‘syntax error’ prompted me to say “It’s a grammatical mistake in the code.” He nodded and left. It took me quite a while to figure out that the culprit was a missing comma but then I got to thinking about how other dads would need things explained better.
STEM Education (Science Technology Engineering and Math) has brought with it an age where young children begin to learn programming as part of their curriculum and more parents might face what my dad did so our team decided to write this article where we explain programming terms with examples and in layman words.
Let us consider a school classroom paradigm for some of these terms for ease of explanation. We will now check out the different terms revolving the world of code and define them in layman’s terms.
Computer Program
Technical Definition: A program is a set of instructions coded to make a machine perform a task.
Ninja Definition: A computer program is a fully functioning software that is a compilation of all the different ways and instructions that can be followed to do something. It might not be written to achieve a goal and stop, rather continue following the steps forever.
In our classroom paradigm, teachers “program” children to learn and do things. Endless programs here would be programs to “be curious and ask questions” while programs like “study this concept” would be finite ones.
Computer Code
Technical Definition: Computer code is the symbolic arrangement of data or instructions in a computer program.
Ninja Definition: Computer code is the textual or symbolic translation of our instructions from common language into a language that the computer can understand because we can’t talk to it in regular English.
In our classroom paradigm, teachers translate “subtract 8 and 15” to “open 10 fingers and keep 5 in your mind. Now close 8 fingers and add 5 to the 2 fingers that remain”
Computer Coding is technically not the same as computer programming because coding only requires you to translate commands into code for a simple program but programming requires knowledge of algorithms and data processing because a consumer-friendly program has to be built.
Algorithm
Technical Definition: An algorithm is a process or set of rules followed by a program to accomplish a task.
Ninja Definition: An algorithm is like the recipe or instruction manual that one feeds into a program to make it do things in a single way to achieve a specific goal.
In school, our classroom paradigm, the seating arrangement and the teacher saying “Open your books to this page and look at the diagram” can be examples of an algorithm.
Flow charts
Technical Definition: Flowcharts are visual depictions of algorithms that are used to find bugs or prepare the concept of a program.
Ninja Definition: Flowcharts are diagrams made from linking copies of 4 distinct shapes that show how a program will proceed in its path from the beginning of execution to the goal. A rectangle with rounded corners or an oval denotes the beginning and the end of the program, a regular rectangle signifies a step in the process, a rhombus refers to a decision to be taken while a parallelogram denotes input/output.
Statement
Technical Definition: A statement is a syntactic unit of an imperative programming language that expresses some action to be carried out
Ninja Definition: A statement is a step in the instruction manual or recipe that has proper grammar and punctuations (syntactic) and tells you how to do something (imperative programming).
In our classroom paradigm, “Open your book”, “Turn to page number x”, “Look at this diagram” are the three statements of the algorithm. If the grammar isn’t right, “Look at this. Diagram” would not lead to the same result.
Syntax
Technical Definition: The syntax is the set of rules that defines the combinations of symbols that are considered to be correctly structured statements or expressions in that language.
Ninja Definition: As I told my dad, Syntax is the grammar of the programming language. It’s the punctuation mark and locations of the verbs, adjectives, nouns and conjunctions that link everything.
Execute/ Run a Program
Technical Definition: Execution is the process by which a computer executes the instructions of a computer program
Ninja Definition: Executing a program means you’re telling the computer to start following the instructions you’ve given it in the form of the program and perform the task it was meant to.
The exams are a way of executing the “study” program where children begin studying to accomplish the goal of learning and then applying the knowledge to solve problems in them.
Compilation
Technical Definition: Compilation is the process of translating higher-level programming languages to low-level programming languages i.e. machine language.
Ninja Definition: Compilation is the process of breaking down your code into 0s and 1s i.e. its how the computer understands what you told it in the more human-friendly code.
Bug
Technical Definition: A software bug is an error, flaw, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways
Ninja Definition: A bug is a mistake in the code that means giving the wrong instructions to the computer or missing a part of the instructions that end up not giving out the proper result. It’s like when Rachel from F.R.I.E.N.D.S misses a page and ends up making a non-vegetarian dessert.
In our classroom paradigm, bugs can be seen in the form of errors in behavior or understanding of lessons in students. They can also be seen as inefficiencies in teaching.
Debugging
Technical Definition: Debugging is the process of finding and resolving bugs within computer programs.
Ninja Definition: Well this one doesn’t really require a Ninja Definition but it can be defined as de-bugging i.e. ditching the bugs.
In our classroom paradigm, debugging is done by teachers talking it out with students and addressing issues thereby removing the bugs.
Command-line interface
Technical Definition: A command-line interface (CLI) processes commands to a computer program in the form of lines of text
Ninja Definition: Command-line interface is the place where we can write the code for programs. It provides us an interface to talk to the basic processing unit of the computer by compiling and executing the commands that we give it. Examples are command prompt on windows and other programs like Python.
The classroom itself in our classroom paradigm is the Command-Line Interface since it’s where the program can be written while the teacher teaches and executed during the examination.
Editor
Technical Definition: A source-code editor is a text editor program designed specifically for editing source code of computer programs.
Ninja Definition: An editor works like a special magnifying glass through which you can view the source code i.e. the statements that form the algorithms of a program. It also lets you change the code and thereby give the program different functions. Notepad on windows is an example of program-editors.
In our classroom paradigm, the role of an editor is done by the children’s parents who can edit teachers’ programming of their children by editors called parent-teacher-interactions.
And we conclude the first part of our Ninja Glossary here. Part two and Part three will be coming soon and they will contain more terms that we provide Ninja Definitions for.
These are the basic terms that most parents would hear from their children who are learning coding at a young age like our Ninjas. We made this article so that parents can have clarity about the “jibber-jabber” that programmers use and they can easily interact with their programmer-children.
I’m going to forward this article to my dad and I hope you share it with people you know as well so that we all develop computer literacy.