# Glossary¶

The location in memory where something is stored. Usually this is a simple number (index) into the memory.
Avatar
A graphical representation of a user. Often an image, but it can be a cartoon-like character as well. To make the web more personal (and less anonymous), sites like Gravatar help users show their chosen avatar on many web sites. I consider this usage part of setting up a professional image.
Baby Step
Baby Steps
A software development process that focuses on making very small changes to your code, followed by a quick test using the compiler to make sure you can run your code, and a run that generates output you can inspect to see how your changes are working. The key to this is doing this sequence often.
Blasting Code
Blast Code
An “old school” method of software development. This method involves long sessions of writing code with few attempts to test the code. The result is often long sessions fixing typing mistakes, followed by long sessions with a debugger trying to figure out why things do not work.
Camel Case
A naming convention where the name is made up of multiple words, each with the first letter capitalized, and spaces removed. For example: “CamelCase”.
Code of Conduct
Every profession has a defined set of rules they expect members of that profession to follow. Most of the time, these rules are common sense, but they are defined to make sure every member understands what the profession seeks to present itself to the public. You are expected to know these rules and follow them when you join the profession. Look into each profession’s primary organization for guidance. For computer folks, this is probably the Association for Computing Machinery.
Command
A series of space-separated text items handed to the operating system. The first of these items is the name of some program (which may be internal to the operating system) you want to run. The rest of the items are called parameters which are processed by the program and control exactly what that program does.
Command Line
A simple text line on your screen where you can type in a command to the operating system.
Comment
Short chunks of text added to program code that seeks to explain when is going on. Far too often, this text just repeats what the code actually says, making them useless. Comments should explain the “why” of a block of code.
Compile
Compiler
Compilers
When we process a program written in a high-level programming language, the tool we use is called a compiler. That tool converts our program into the machine language the processor actually understands. We say we compile our programs.
When you right-click on something in Windows (and other systems as well), the menu that pops up is called a “context menu”. That means what appears depends on the “context”, or what you clicked on.
Current
This is the flow of electrons through a circuit. Moving electrons generate heat and electromagnetic waves as a by-product of this motion.
data
A set of bits in memory representing an encoded thing from our human world.
DDNS
DynDNS
Dynamic DNS
A service that updates DNS tables used by Internet services to map domain names to addresses. These services are helpful if your network address changes often, as it might if you are working from home and want to set up a server.
Debugger
A software development tool that is used to step a program one line at a time, then allows the developer to inspect the internal state of the machine as the program runs. They are a vital, and often under-used tool in programming.
Directory
Directory Tree

The operating system on most computers, today, uses tree-like structure to store files. The top of this tree, called the root of the tree, is a directory (or folder as Microsoft want us to call it). The name of this directory is either “/” on a Linux/Mac system, or “” on a Windows system.

A Directory is a container that can hold either files (objects that contain only data, such as text, images, of other binary data) or other directory objects (called subdirectories). Subdirectories have names that follow the rules for the operating system. Any directory or subdirectory can hold files of further subdirectories, giving the entire file system a (upside down) tree-like structure.

DNS
Domain Name Service
A phone book like service that maps domain names, like www.pylit.org, to an IP address.
Domain Name
Servers on the Internet are all part of some registered domain, which has a name associated with it. I own pylit.org for example. The last part is used to brand the kind of domain I am part of, in this case a non-profit organization. The first part is often chosen to identify the company involved. You can add a machine name to the front of this name. Often www is tacked on to identify a web server where the companies website is found.
Drag and Drop
A modern method of constructing programs, or executing commands by dragging an icon on the screen and dropping it onto another place. Learning how all of this works can make you highly productive!
encoding
Creating a way to figure out a particular human thing from a simple number. There should be a unique number for each unique thing from our world.
Environment Variable
Environment Variables
Named strings managed by the command line processor. These strings are available to programs and are commonly used to set up data for a variety of purposes.
Execute
Executes
Executable
Executable File
In spite of the negative connotations of the term, we say a computer executes a program. The program that can be run is called executable.
Execute
Execution
We call the act of actually processing something in a computer executing that something. The something can be a single Machine Instruction, or a complete program. We sure are a brutal race of beings!
Flow Chart
A form of diagram showing the logic of a program. These diagrams have been around for almost as long as computers have been available. They are a great way (but not the only way) to visualize how your program will “flow” and think about what will happen when you run the program.
Gravatar
A service that will provide your image when you log into a number of web sites. That image can be viewed by others to make sure they recognize the you they are communicating with. I consider using such a service part of setting up a professional image.
GUI
Graphical User Interface
A user interface were the mouse and windows are used to control applications.
Hidden File
Most operating systems “hide” file names that start with a dot “.”. These normally contain configuration information that should not be modified unless you know what you are doing You need to use a special command to display these files when generating a directory list.
High-Level Language
Most programming languages are designed to help humans instruct a machine in how to solve some problem. These languages do not care what processor they will run on, and are called “machine independent”. You use a compiler designed to convert your high-level code into machine language for a particular processor. Different compilers support different machines.
Home Directory
Most operating systems create a directory you are to use for all of your files on that system. This directory is tied to the user account you log into when you access that system. On Windows, this is the directory where your “My Documents” folder is found, usually a place like C:\Users\username. On Linux systems the directory will be in /home/username. On Macs, it will be in /Users/username.
IDE
Integrated Development Environment
Integrated Development Environments
A collection of common programmer’s tools integrated into a single application with features that can greatly speed up program development. Unfortunately, typical IDE systems are complex and may not support all the languages you use, or be available on all the platforms you use.
keyword
A word defined by the programming language. Most of the time, you should never try to use one of these words as the name of a data item in your program. Look for a list of these in the documentation for your programming language.
A phase in transforming your program into a final executable file where one or more object files are combined with system libraries to build a final executable file. The tool that does this work is called a linker.
literal data
In your program, you can enter a series of text characters that represent the data item you want in your program. This text will be converted to internal binary form and used in your program.
Old School
The place where old methods were learned. These methods are any methods not accepted as modern by current workers.
OOP
Object Oriented Programming
A design technique where the fundamental program components model objects from the real world the application is to serve.
OPC
Other People’s Code
You should study code written by other folks, especially those who seem to do the job well. Eventually, you will learn how to write well respected code and become the author of what others read. Just make sure you give credit for anything you decide to incorporate into your projects, and respect the license that goes with the code.
Open-Source
An open-source project is freely made available to the public in source code form. Such projects are usually protected by a license of some kind, designed to protect the rights of the author(s).
OS
Operating System
All general purpose machines need a piece of software to manage the hardware of the system. Typically, these programs provide a user interface to make controlling the machine simple. No on buys a system just for the OS. Instead, you pick an OS based on the applications you need to use to do real work (or play) on that system.
Parameter
Parameters
Values passed to a sub-program for it to use in it’s work.
Problem Statement
Every programming project should start with a problem statement that you analyze to see exactly what you are supposed to create. Your job is to create a solution to some problem. You may need to go to the originator of the statement to clarify things, and you should do this rather than guess at what is really wanted.
Professional Image
You have an image on the Web. Like it or not, this image follows you everywhere, even into the first job interview. Are you proud of that image? May folks post the most outrageous junk on their FaceBook pages, thinking no one but their “Friends” look at it. Not so! Unfortunately, your potential employer might check you out and not like what they see. Your choice. I recommend making sure you look like someone others want to employ, or at least someone who does more with their lives than just keep everyone informed about every aspect of your life on FaceBook! YMMV!
Real World
A fictitious place everyone claims exists. In this world things work perfectly (or at least better than in your present world!)
Refactor
Modify a programs code to improve its quality without changing how it works. This is a clean-up step in development designed to keep ugly code out of a project, and use best-practices in how code is presented.
refer
To use a name when you want to manipulate a piece of data. The computer will figure out the actual memory address for the item based on the name.
reStructuredText
A simple markup language designed to make documentation readable with no processing. Processing tools like SPhinx can turn documents written in this markup into HTML or PDF output that looks very nice!
Script
Programs designed to control computers are often called scripts. Most scripts are written using simple languages like bash on a Linux system or Python.
Semantic Analysis
The process of taking a properly formed construct in a programming language and converting it into another form the has the same meaning as the original construct. Typically, a tool like a compiler transforms your high-level code into machine language the processor can actually run.
Semantics
A properly written programming language construct causes the computer to do something. Exactly what that something is is called the semantics of that construct. You must understand the semantics in order to make sure you use that construct properly. This is called picking the right tool for the job!
Semantics
This term refers to the meaning of a construct in a programming language. Only a construct that passes the syntax analysis phase of transformation has any meaning.
Shell
Command Prompt
Command Line
The “old fashioned” way of controlling a computer. On Windows systems, this involves opening a window where you can type in commands. On Mac and Linux systems, you open up a Terminal program.
Side Effects
Functions usually operate as self contained blocks of code. They get information from the outside world through the parameter list, and produce results that are returned to the caller as return values. If the function modifies anything in the outside world as it performs its task, these are called side effects. Generally, these are bad things, and should be avoided.
Style Guide
A document specifying the style to be used to projects in some organization. These guides lay out how program code should be presented, how variable names are formed, or how files should be organized to meet standards everyone in the organization will follow. Some of these guides can be extensive, others, very informal.
Syntax
The formal rules that define how to write a construct in a particular programming language. These rules are simple and precise.
Syntax
This is a term referring to exactly what a statement in a programming language looks like when written in a program.
Syntax Analysis
Syntax Analyzer
The process of examining each construct in your program to make sure it is properly formed. Only when this is true can the analysis tool move on the “semantic analysis” to figure out what each construct means. The tool that checks the syntax is called a “syntax analyzer”, usually part of a compiler.
Syntax Diagram
A visual representation of a rule in EBNF. These rules define the syntax of a language.
System Library
A file containing references needed by programs to connect to operating system of language specific functions.
System path
Most operating systems search for files to execute by examining directories listed in a system variable called the PATH`.
Texas Four-Step
All computer processors use a four step process to do their work. The four steps are called Fetch, Decode, Execute, and Store (or Retire.
Unresolved Reference
Unresolved References
When you try to link your program and there are references to items that cannot be found, we say these are “unresolved references”. The final executable file cannot be constructed in this case. System Library System Libraries Files containing code needed by a program to actually complete the transformation of a high-level language into machine language. In these libraries, we find code for input and output, code needed to interface with the operating system, etc.
URL
Uniform Resource Locator
The specific location of a web “resource”, which is normally a web page, but can be a file or anything that your browser can download to your system using the web protocol named HTTP.
variable name
A human friendly name we pick to refer to a piece of data in memory.
Voltage
This is a measure of the “force” driving electricity through a circuit. Think of pressure in a water pipe.