Glossary

Glossary#

Artificial Intelligence#

The theory and development of computer systems able to perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages.

And, to be honest, writing glossary entries.

Boolean#

A data type that has one of two possible values, usually denoted as true and false, but always analagous to “on” and “off”. In Python, the two values are represented by the built-in constants True and False.

Camel Case#

A naming convention where words are written together without spaces, and each word starts with a capital letter. For example, camelCase. In Python, camel case is used for class names. Camel case should not be used for variable names or function names.

Cheese Shop#

A sketch from Monty Python’s Flying Circus that features a customer trying to buy cheese from a cheese shop that has no cheese. The sketch is a running joke about the absurdity of the situation. The cheese shop has since become a metaphor for any situation where something is missing or unavailable. The Python Package Index (PyPi) is sometimes referred to as the Cheese Shop.

Constant#

A value that does not change. In Python, constants are usually defined before the main program and are written in all capital letters with underscores separating words. For example, MAX_SIZE = 100.

Compiled Language#

A programming language that requires its source code is converted into an executable form, using a compiler, before it can be run. For example, C.

DRY#

Stands for Don’t Repeat Yourself. A software development principle that suggests you should not repeat the same code over and over. If you find yourself copying and pasting code, you should probably refactor it into a function or class. See also WET.

Duck Debugging#

A method of debugging code by explaining it to a rubber duck. The name comes from the book The Pragmatic Programmer by Andrew Hunt and Dave Thomas. The idea is that explaining the code, line by line, to the duck will help you find bugs. Other forms of rubber wildlife are also acceptable.

EAFP#

Stands for Easier to Ask Forgiveness than Permission. A programming approach that suggests you should just try to do something and catch an exception if it fails. For example, you should try to open a file and catch the resulting exception if the file does not exist. The opposite of LBYL.

Git#

A distributed version control system. It is used to track changes in source code during software development. It was created by Linus Torvalds in 2005 to manage the development of the Linux kernel.

GitHub#

A web-based hosting service for version control using Git. It is mostly used for computer code. It offers all of the distributed version control and source code management functionality of Git as well as adding its own features.

Guido van Rossum#

The creator of Python. He started working on Python in the late 1980s, and it has been in continuous development ever since. Guido was made the BDFL (Benevolent Dictator For Life) of the Python Community, a title he held until he stepped down in 2018.

Indentation#

The spaces at the beginning of a line of code that indicate the block to which the line belongs. In Python, indentation is used to define the structure of the code. For example, all the lines of code that are part of a function should be indented by the same amount. Identation is usually four spaces, or multiples thereof.

Interactive Development Environment (IDE)#

A software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools, and a debugger. A Python IDE will normally have features specific to Python, such as easy access to the Python interpreter.

Interpreted Language#

A programming language where statements are interpreted one at a time and executed as the program runs. For example, Python. Also Ruby, or Perl.

Interpreter#

A program that reads and executes code. Python is an interpreted language, so the Python interpreter reads and executes Python code.

LBYL#

Stands for Look Before You Leap. A programming approach that suggests you should check for required conditions before executing some code. For example, you should always check that a file exists before trying to open it. The opposite of EAFP.

Monty Python’s Flying Circus#

A British sketch comedy television series featuring the comedy troupe Monty Python that originally aired on the BBC from 1969 to 1974. Later more famous for feature films including Monty Python and the Holy Grail, Life of Brian, and The Meaning of Life.

Ni#

A word used by the Knights Who Say Ni in Monty Python and the Holy Grail. The Knights Who Say Ni are a group of knights who demand a shrubbery from King Arthur. They are known for their frequent use of the word “Ni”. The word “Ni” has since become a running joke in the Monty Python community.

PEP 8#

Stands for Python Enhancement Proposal 8. PEP 8 is a style guide for Python code. It was written by Guido van Rossum, Barry Warsaw, and Nick Coghlan in 2001. PEP 8 covers topics such as indentation, line length, and function naming.

Pragmatic Programmer#

A book by Andrew Hunt and Dave Thomas that was published in 1999. It is a guide to computer programming and software development that includes tips and tricks for programmers. Every programmer should read it.

Pythonic#

A term used to describe code that follows the conventions of the Python language. Pythonic code is clean, readable, and concise. It is idiomatic Python code that takes advantage of the language’s features and libraries.

PyCharm#

A Python IDE developed by JetBrains. It is one of the most popular Python IDEs and is used by many professional Python developers. PyCharm has many features that make it easy to write, test, and debug Python code.

PyPi#

The Python Package Index. It is a repository of software packages for the Python programming language. There are thousands of packages available on PyPi that can be installed using the pip package manager.

REPL#

Stands for Read-Eval-Print Loop. A REPL is a simple interactive computer programming environment that takes single user inputs (single expressions), evaluates them, and displays the result to the user. The Python interpreter is a REPL.

Semantic Error#

An error in a program that makes it do something other than what the programmer intended. Semantic errors are difficult to find because they do not cause the program to crash or produce an error message. Instead, they cause the program to produce incorrect results.

Shrubbery#

A small to medium-sized woody plant. In Monty Python and the Holy Grail, the Knights Who Say Ni demand a shrubbery from King Arthur as a condition for passing through the forest. The knights are very particular about the type of shrubbery they want and are not satisfied with the first shrubbery King Arthur brings them.

Snake Case#

A naming convention where words are written in lowercase and separated by underscores. For example, snake_case. In Python, snake case is used for variable names and function names.

Source Code#

The human-readable version of a computer program. Source code is written in a programming language and must be translated into machine code before it can be executed. The translation is done by a compiler or interpreter. Source code is usually stored in plain text files.

Spam#

A canned meat product made mainly from ham. It is also a running joke in the Monty Python sketch “Spam”. In the sketch, a group of Vikings sing a chorus of “Spam, Spam, Spam, Spam, lovely Spam! Wonderful Spam!” to drown out other conversation. The term “spam” has since been used to refer to unwanted email.

Syntax Error#

An error in a program that occurs when the code does not follow the rules of the programming language. Syntax errors are usually easy to find because they cause the program to crash and produce an error message. Common syntax errors include missing parentheses, missing colons, and misspelled keywords.

VS Code#

Visual Studio Code. A free source-code editor made by Microsoft for Windows, Linux, and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.

WET#

Stands for Write Everything Twice. A play on DRY, WET is a sarcastic way of saying that you should not try to reuse code. It is not a good idea to write everything twice, so you should always try to refactor code into reusable chunks such as functions. Also “We Enjoy Typing”, or “Waste Everyone’s Time”. See also DRY.