Block I Illinois Library Illinois Open Publishing Network

Glossary

"If...Then," "If...Then...Else," and "If...Then...Else If" Statements

A Control Flow Statement that specifies the conditions under which one path or another should be taken.

Abstraction

The level of abstraction is the level of complexity to which an electronic system or computer program is created. At the lowest level of abstraction, every individual component is identifiable. As the level of abstraction increases, few details related to the system can be identified. At the highest level of abstraction, only the entire system is identifiable. Within programming, the ideal is to determine the most appropriate level of abstraction at which to incorporate the appropriate collection of blocks of code within modules stored within libraries to facilitate more general-level writing of code.

Analog

Specific to electronics, an analog signal is any continuous electric pulse of varying amplitude. If we view a tone playing from a speaker as a sine wave, an increase in amplitude is equivalent to a louder sound from the speaker. An increase in the number of waves within certain period of time is equivalent to a higher pitched tone (perhaps from a middle C note to a middle E note). In these graphs of two different sine waves, the left sine wave plot shows increasing amplitude of the same tone while the right sine wave plot shows a relatively tone held at the same amplitude.

Anode

The positively charged electrodes conducting electric current from a cell into a device like a diode.

Artificial Intelligence (AI)

The use of computers to not just collect and store data, but to run algorithms which learn from data in order to make predictions and decisions about the data.

ASCII

The American Standard Code for Information Interchange (ASCII) uses 7 binary 0s and 1s (bits) to represent characters. The first 32 characters (00000000 to 00011111) are unprintable control codes. Codes 32-127 (00100000 to 01111111) are printable American English codes, including everything seen in this glossary term definition.

Audio/Video Interfaces

Computers incorporate a range of audio/video interfaces, depending on vendor. Some of the most common interfaces currently in use include:

High-Definition Multimedia Interface (HDMI), a proprietary audio/video interface standard, currently at version 2.X. This is included as the display port on the Raspberry Pi Model 3 and Model 4 microcomputers.

DisplayPort (DP) is a VESA standard digital display interface, and is backward compatible with other interfaces such as HDMI. Apple computers use the Apple-designed Mini DisplayPort (mDP), although beginning in 2016 Apple began moving towards use of the USB-C connector.

Thunderbolt is the brand name of an interface standard developed by Intel and Apple. The standard allows the multiplex of individual data lanes from multiple connected devices to a single DisplayPort (DP) or Mini DisplayPort (mDP) (Thunderbolt versions 1 and 2) or USB-C (Thunderbolt version 3) connector.

Binary Notation

Binary notation is based on the base-2 numeral system using only two symbols. The symbols used are the digits 0 and 1. Binary is the standard notation for Boolean true or false logic tests. This is in contrast to the base-10 numeral system commonly used in the English language, and which uses the digits 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9.

Boolean Logic

A form of algebra used in mathematics, electronics, and computer hardware and software. At its base, all values are found to be either true or false using the Boolean operators "OR," "AND," and "NOT."

Breadboard

A breadboard used to be a board (sometimes literally a board for cutting bread) with nails pounded into it so that you could wrap wires around them to make experimental models of electric circuits. Today, the breadboard is a piece of plastic with holes in it. Underneath each hole is a metal clip. These metal clips connect together a specified set of holes ordered into a row or column. This way, pushing a piece of conductive material into one hole right away connects that material to things pushed into other holes that are joined together by that clip.

perfboard is a thin, rigid sheet with holes but no metal clips on the other side. Instead, copper pads are used, to which conductors can be soldered. In some cases, as with the perma-proto breadboards from Adafruit, copper is further used to group together certain holes, mimicking the breadboard in a way that provides greater durability for prototyping work.

Bundled Software

Applications like file managers, user managers, software managers. Applications like web browsers, text editors, photo and movie editors. Device and print drivers determine which hardware is "plug and play" ready.

Cable Internet

Redirects a cable channel to be used for Internet. Neighborhood shares bus topology. In the U.S., cable internet prioritizes download speeds.

Campus Area Network (CAN)

A version of a Metropolitan Area Network, the CAN is a network the size of a college, organization, or business campus. These types of networks are typically community-owned and/or managed.

Cathode

The negatively charged electrodes conducting electric current out of a device like a diode and back to a cell.

Cell-Based Internet

3G adds the EV-DO (Verizon, Sprint/Nextel) or HSDPA (AT&T, T-Mobile) protocol to cell voice's protocol. 4G adds the WiMax (Sprint) or LTE (Verizon, AT&T) standard to cell's voice protocol. Equivalent to bus (shared) topology. Prioritizes download speeds.

Central Processing Unit (CPU)

The CPU is the central processor of a computer. It is built of an ever-growing number of electronic circuits enabling it to carry out the basic arithmetic, logic, controlling, and input/output operation instructions for the computer. Over the decades, more electronic components have been placed on a single and increasingly small integrated circuit (IC) chip. Today's CPUs are actually multi-core processors, with one chip being constructed of two or more CPUs called "cores." It is on the CPU that instructions for the vast majority of programming code is actually run. The CPU uses three main steps: fetch, decode, and execute, after which the instruction is returned to a memory integrated circuit.

Circuit

When working with electrical components, a circuit is a complete, closed path that allows an electric current to flow. In this book, we work with active circuits that begin at a source voltage, pass through one or more electrical components, then end at the return, or ground.

Client-Server Architecture

A computing structure which separates the work between a resource provider, or server, and a resource requestor, or client. The client-server model is distinct from centralized computing in which servers reside in a central location or a set of regional locations. It is true that when there are many simultaneous client programs initiating requests, the server computer program(s) providing resources and services resides on centralized computer hardware called a server specifically designed for computation, storage, and networked sharing. That is, the hardware called a server is just a computer specially designated to run one or more different applications designed to provide the server side of the client-server protocol.

Cloud Computing

Cloud computing is a form of client-server architecture, where a distributed network of data centers ensure the regular availability of computer storage and power, which is accessed over the Internet.

Cobbler

A Cobbler, used in electronics in combination with a prototyping board such as a breadboard, is a plastic header to which a ribbon cable can be attached, which can then be inserted into the prototyping board. A T-cobbler extension is sometimes included using a printed circuit board, allowing the header to which the ribbon cable is attached to be separated from the male pins that are inserted into the breadboard. Labels on all cobblers identifying each of the electrical circuits associated with each pin can then also be included on the printed circuit board.

Coding

Coding is the practical work of using a system of words, letters, figures, and other symbols to substitute for another set of words, letters, figures, and other symbols. Coding can include the creation of codes of practice and codes of ethics within a profession, codes of classification or identification, and codes of information and instruction within a technology. Decoding is the work of moving a code back to the original system of words, letters, figures, and other symbols. This is compared to programming, which is the creation of a planned series of events, items, or performances using or guiding the creation of codes. Coding is more context-oriented, while programming is oriented towards the bigger picture. DifferenceBetween.net has a helpful page providing further comparisons between Coding and Programming.

Combinational Logic

Boolean logic in which the output is based only on the present input.

Community Networks

Called the "public space in cyberspace" by Doug Schuler, a community network facilitates the sharing of public information between residents within a geographic area online. Community wireless networking uses standard wireless Ethernet (WiFi) outdoors; anyone can use off-the-shelf equipment to create. Equivalent to bus (shared) topology, with synchronous upload and download speeds.

Computer

An electronic device using a program of instructions to collect, store, process, and transmit data. Many of our daily use devices, including automobiles, mobile phones, home routers connecting a building's network to the wider Internet, the growing number of "smart" internet-connected devices like watches, building heating, ventilation, and air conditioning (HVAC), and light and sound systems, and our laptops and desktops are all built using computers. While some use a more significant combination of integrated circuit processors and potentially multiple printed circuit boards, increasingly these parts are more tightly integrated into a single printed circuit board and a reduced number of integrated circuits. Depending on design and use specifications and marketing, these may be referred to as microcomputersmicrocontrollersmicroprocessors, or System on a Chip (SoC). The Raspberry Pi is a general purpose microcomputer with integrated System on Chip central processor and other microprocessors.

Conditional

A command that determines under which a specific path should be executed based on the occurrence of another sequence in the program.

Conductors

Electrical conductivity is the capacity to transmit electricity from one place to another. There are many different substances, such as copper wires and other bare metal pins, that are used to build electronic components. Examples of conductors include breadboards, jumper wires, printed circuit boards, and ribbon cables.

Control Flow Statement

A control flow statement provides a choice between two or more paths, and defines the specific sequence in which individual statements within that path should be executed or evaluated.

Controller

An integrated circuit that interfaces with one or more other devices on a printed circuit board. Besides the CPU, this can include input/output controller(s) and a graphic processing unit (GPU) controller. The Raspberry Pi Model 3 has two controllers, the System-on-Chip (SoC) controller that includes the CPU and computer memory, and a controller interfacing with the wired Ethernet and four USB ports.

Current (A or Ampere)

Current is a flow of electrons from relatively positive points to relatively negative points. Greater voltages have greater currents. As such, there is somewhat greater current when you use the 5 volt source of the Raspberry Pi than when you use the 3.3 volt source. Different electronics are capable of using different maximum currents, so it is sometimes necessary to provide resistance to reduce the current passing through the component.

Daemon

A computer program that runs in the background providing services as needed. In this case, each time it is launched, the HTTP daemon starts itself based on the specifications within the configuration file, then mostly hangs out twiddling its thumbs waiting for a call asking for something. When the call comes, it gets busy doing its stuff before going back to waiting mode. You'll often see a running HTTP server daemon listed as httpd.

Desktop Environment

The desktop environment is a collection of software that provides a predictable look and feel. Includes a Window Manager that controls the placement and appearance of windows, support icons, menus, etc. For some operating systems, such as Windows and macOS, the desktop environment is the branded look of the operating system and cannot be changed.

Digital

Specific to electronics, a digital signal is a representation of a physical quantity expressed as a series of the digits 0 and 1, that is, binary. The range of decimal numbers representing physical quantities in our work, for instance 12 seconds, is converted to a binary equivalent, in this case, 1100. In this illustration, the dots along the analog sine wave are data points collected to create the digital representation of the physical quantities.

Digital Subscriber Line (DSL)

Adds two channels to standard phone line for Internet. Hub and spoke (dedicated line) topology; full duplex. In the U.S., DSL prioritizes download speeds.

Diode

A semiconductor that passes current from one terminal to another terminal, and in which current can only flow in one direction. The kit used in this book includes a mix of different Light Emitting Diodes, or LEDs. Different LEDs work at different wavelengths (the measure of distance between the peak and the trough in a wave), associated with different recognized colors of light. Some LEDs are made to be especially bright, such as a car headlamp to help us see the road more clearly. Others are meant to be more diffuse, thereby working more as a source of information, like a car brake light or turn signal.

Domain Name System (DNS)

A naming system which translates domain names to IP addresses. This ensures a consistent name space for information resources.

Dynamic Host Configuration Protocol (DHCP)

As part of the Internet protocol suite, DHCP is a network management protocol. DHCP servers dynamically or statically assign IP addresses to connected nodes on the local area network (LAN) so that they can communicate with other IP networks.

End-to-End Principle

According to this principle, network features should be implemented as close to the end nodes of the network as possible. Everything that can be done within the client or server application should be done there. Only those things that interconnecting devices must do should be done there.

Ethernet Port

An Ethernet port is an Institute of Electrical and Electronics Engineers (IEEE) standard connector for 100BASE-Tx/1000BASE-T full duplex Fast and Gigabit wired Ethernet communications using twisted pair CAT-5 and CAT-6 copper cabling.

Federation of the Locals

The principle that networks begin and end with local area networks (LANs). The other types of area networks, including the wide area networks that comprise the Internet, then serve as a bridge between the local area networks.

Fiber Optics

Ultra-high-speed communications technology with one or more channels for Internet. Hub and spoke (dedicated) topology with synchronous upload and download speeds.

Fiber-to-the-Home (FTTH)/Fiber-to-the-Premises (FTTP)

When fiber-optic communications infrastructure reaches from the infrastructure (such as cable laid underground in the street) into privately owned property to reach an ISP subscriber’s home or workspace.

File Manager

A file manager is a software program that helps you manage all the files on your computer. For example, file managers allow you to view, edit, copy, and delete the files on your computer's storage devices. It is known as the File Manager within the Windows Operating System and as the Finder on the Mac Operating System. The file manager makes use of the Graphical User Interface (GUI). The same tasks you can complete with the file manager can also be done through the Command Line Interface (CLI) terminal.

For Loop

A Control Flow Statement that specifies the conditions under which a sequence of events should be executed.

Forever Loop

A Control Flow Statement used to create a function that keeps running a sequence of code infinitely.

Function

A unit of code defined by its role within a more general code structure. To execute the function, it is provided one or more inputs, and produces a concrete result. This result may, but is not necessarily required to, be returned back to the caller of the function.

General Purpose Input/Output (GPIO)

A general purpose input/output, or GPIO, is a common, open-ended transmission mechanism used with integrated circuits on microcontrollers, microcomputers, and other printed circuit board electronics. Pins are provided to which female-ended wires can be connected. GPIO pins can be programmed as input (e.g., sensor data; ground) or output (e.g., state change; power) sources. GPIO pins can be preconfigured for special purposes, or can remain undefined until specified by a user at run time. In general, GPIO provides a means to tailor pins to fit specific design goals within applications, as well as reusability across applications.

Hypertext Markup Language (HTML)

The standard markup language for data, structured into documents, intended to be displayed on a web browser. Using a standard syntax, HTML annotates a document with a semantic structure. For example, wrapping a phrase in <em></em> HTML tags denotes that those words are italicized when rendered in the web browser.

Hypertext Transfer Protocol (HTTP)

The ever-present application layer protocol used to request and access media (such as webpages) from across the Internet. Website URLs begin with “http” or “https” to signify this protocol (the added ‘s’ denotes the secured HTTP protocol, which is increasingly common). The Hypertext Transfer Protocol is part of the Internet protocol suite.

Initialization

The assignment of an initial value for a variable.

Input/Output Devices

Input devices let users control the computer (e.g. keyboard, mouse, touch-sensitive devices). Output devices inform the user of what is happening (e.g. monitor, printer).

Integrated Circuit

Integrated circuits (ICs) are semiconductor wafers which contain a collection of tiny resistors, capacitors, and transistors. These can then be built to serve a wide range of electronic functions. In practice, larger sized electronic components used to build circuits are first tested using materials like breadboards for rapid prototyping. They are then redesigned to be built into integrated circuits and optimized for regular, more standardized use. At times, a mix of electronic components along with integrated circuits are themselves used on breadboards to do further rapid prototyping of yet larger circuitry. The 5-Key Capacitive Touch Sensor included in the kit for this book contains a mix of integrated circuits. Examples of integrated circuits include: processors, memory, controllers.

Intelligent Agents/Smart Devices

Autonomous devices with software that facilitates the device's perception of its environment and execution of actions that maximize chances of achieving target goals.

Interconnect Device

A device used to connect nodes together. A switch or hub is used with wired Ethernet, an access point is used for wireless Ethernet (WiFi), and a router or gateway builds an Internet by connecting different LANs together.

Interdevice Internetworking

The facilitation of two or more devices working with each other.

Internet Protocol (IP)

A key communications protocol for routing data within networks, thus enabling the Internet. This protocol delivers packets from a sender to the destination and requires IP addresses for routing these packets. Domain Name Server (DNS) services are used to associate IP names with specific IP addresses.

Iteration

Repeating one step in a program multiple times.

Jumper Wires

Wires are made of either a thicker solid metal, or thinner strands of multiple wires, placed within a non-conductive material. The exposed ends of the wire can then be inserted into two different holes on the breadboard to safely conduct current from one hole to another, helping to extend the circuit between different electrical components. These are sometimes attached to a plastic holder to provide greater strength. If a solid metal wire end has been soldered into the other side of that plastic holder, it is known as a male end. If a metal wire can be temporarily inserted into the other side of that plastic holder, it is known as a female end. If a pair of metal clips attached with springs is provided, it is known as an alligator clip.

Kernel

The heart of the operating system. It is the go-between from applications between input/output controllers, memory, the Central Processing Unit (CPU) and storage devices.

Link Lights

LED light found on wired Ethernet cards and switches. When lit, indicates the card and switch are on and working properly and the Ethernet cable is plugged in and working properly.

Lists and Arrays

Lists and arrays are two commonly used ways to store data. A list is a set of data arranged in some order. Lists are mutable, meaning that the order of the items within the list can change. This allows for sorting, shuffling, adding, and deleting items from the list. One form of lists, called an array, is an indexed set of related elements associating one thing with another and are especially useful in control flow loops such as button counters. However, insertion or deletion of items within an array's list can prove difficult.

Local Area Network (LAN)

The simplest type of Internet-based area networks is a Local Area Network (LAN). A LAN is a network with connected devices in a close geographical range. It is generally owned, managed, and used by people in a building. For example, connecting to a WiFi network at a coffee shop or library would mean your device would be a node on the cafe or library's publicly accessible LAN. Many businesses and institutions have a second, private LAN for use by staff only.

Machine Learning

A branch of Artificial Intelligence (AI) in which algorithms include "teaching" models that continually improve machines predictions when fed data.

Media

Media are used to interconnect devices on a network, and are made of four primary materials: coaxial copper cable, twisted pair copper cable, fiber optics cable, and radio waves.

Media Access Control (MAC)

Media Access Control (MAC) addresses are unique identifiers assigned to network interface controllers (NICs) as part of the data link layer of the OSI model.

Memory

Memory is the part of a computer in which data or programming instructions are stored and retrieved. Memory is constructed using high-performance integrated circuit chips to increase performance as compared to storage devices such as hard drives and lower performance but less expensive flash drive integrated circuit chips. Much of this type of memory is volatile Random Access Memory (RAM), in which data is lost when power to the computer is turned off. There are multiple types of RAM: The higher cost but faster performing static RAM (SRAM) is used with the CPU to increase CPU performance, while the less costly but slightly slower dynamic RAM (DRAM), or more recently double data rate synchronous dynamic RAM (DDR SDRAM) is the main memory of computers. The Raspberry Pi Model 3 comes with 1 GB (Gigabyte) of DDR, while the Raspberry Pi Model 4 is available with 1GB, 2GB, or 4GB of DDR, making it very similar to today's smartphone and Chromebook computers. Many laptops today come with 4GB to 8GB of system memory.

Metropolitan Area Network (MAN)

A collection of LANs and devices in an area the size of a city.

Modem

A portmanteau of the words Modulator-Demodulator. This device converts data provided from computing devices into binary zeros and ones so that it can be transmitted through a network.

Modularization

Including blocks of code over and over into a program, or having a very long list of code in a single instruction set, can become confusing and hard to debug. A module is a block of code, separated out into a manageable chunk. Functions and subroutines are examples of modularization.

Motherboard

The printed circuit board found in a computer, which contains the principal components, along with ports and connectors to other devices. The term "motherboard" arose at a time when it was paired with one or more supporting printed circuit expansion boards, often referred to as daughterboards or expansion cards, in order to achieve the full general functioning of the computer. The motherboard is sometimes also referred to as system board or mainboard.

Network Interface Card (NICs)

The hardware necessary for a node to connect to a network. For example, an Ethernet card (wired or wireless) is used for a LAN connection. A modem (cable, DSL, dialup) is used for traditional Internet. Optical Network Terminals (ONT) are used for fiber to the home.

Network Manager

Operating system utility that shows network configuration. An IP address of 0.0.0.0 or one that starts with 169.254 indicates you are connected to the media but aren't getting a proper IP address from the address server (usually the gateway router).

Node

Any device directly connected to the network that has been assigned a unique identifier or address on that network, such as a MAC address (also known as the hardware, physical, or Ethernet address), the serial number for Ethernet cards, or an IP address: The address used by the Internet protocol.

Ohm's Law

German scientist Georg Simon Ohm developed this simple, linear mathematical principle relating current (I), resistance (R), and voltage (V). There are three equations that are used in direct current circuits. If needed, these can help us to determine, for instance, which voltage source or which resistor ohms we should use to achieve a certain passage of current through our circuit.

V = IR ... Electrical voltage equals amperes times ohms
I = V/R ... Current amperes equals voltage divided by ohms
R = V/I ... Resistance ohms equals voltage divided by amperes

Open Systems Interconnection (OSI) Model

The Open Systems Interconnection (OSI) model expresses the relationship between the seven layers of computer and telecommunications systems. These layers are:

1. Physical: Copper & fiber cables, radio frequency & infrared wireless.
2. Data link: Media Access Control (MAC).
3. Network: Routing of data packets.
4. Transport: End-to-end connections.
5. Session: Interhost communication.
6. Presentation: Data translation & representation.
7. Application: What the 'end user' sees.

Operating System (OS)

The core software bundle of a computer. The OS supports different aspects of a computer’s basic functions, overseeing the coordination between the physical electronics of the computer and the many software applications that allow us to do our daily computer-based activities. While the physical electronic components of most personal computers support multiple different operating systems, only one OS can be run on a computer at a given time since it is the central control system of those physical electronics. That is, the OS has the final word on how software interacts with hardware when the computer is turned on and functioning.

The kernel is the heart of the OS, and for the most part remains hidden from view. On the opposite side, the Graphical User Interface (GUI) serves as the visual mechanism for interacting with a computer, whether via keyboard, mouse, and monitor, touchpad, or something else. All modern computers also include a Command Line Interface (CLI) such as a terminal window in which applications can be run and data is displayed using text. Indeed, for higher-level programming, research and development, and systems management, a combination of GUI and CLI interfaces used in parallel prove essential.

Packets

When information and communications data sent is sent from the node and onto the LAN and often to the WAN, it is not sent as a single file such as that we store on a hard drive or flash drive. Rather, it is divided into pieces, called packets. Each packet contains a header and payload. The header contains information including the source IP address, destination IP address, and an identification tag to order the packets. The payload is the actual information that is being transmitted, such as web page data or an email. When a packet reaches its destination, the software application will piece all the packets together.

Pair/Triplet Programming

Pair programming (or triplet programming) is common in software development. Two (or three) programmers collaborate on design, coding, and testing, with qualitative evidence suggesting the subsequent design is better, resulting in simpler code that is easier to extend. Further, whether the pair programming occurs between two novice programmers, between a novice programmer and a more experienced programmer, or between two experienced programmers, people learn significantly more about the system and about software development as both participants bring unique insights. Conversation between the programming pair can occur at many levels as the driver working at the keyboard takes charge of all changes made in the program and the navigator observes all the code that is entered, considers coding options, works to spot and address problems, considers and recommends simplifications, helps with programming style, and designs and verifies testing.

Peer-to-Peer Architecture

A computing structure in which individual devices can share information and resources directly without relying on a dedicated central server. Each device can perform a mix of resource provision (e.g., computation, storage, and networked sharing) and resource requesting (e.g., web page, new email or social media posts) tasks. Compare to client-server architecture in which the client device performs requests while a server device performs resource provision.

Personal Area Networks (PAN)

Personal Area Networks (PAN) provide a simple computer network organized around a few personal devices allowing transfer of files, photos, and music without the use of the Internet or your home's local network. Two common examples would be your Bluetooth headset or keyboard/mouse. Depending on the Bluetooth range selected (or chosen for you), this could span 3 feet, 10 feet, or 100 feet. Beyond Bluetooth, other common PAN connectivity includes Infrared (IR), USB, ZigBee, Wi-Fi, and radio frequency (RF, including short distance AM and FM radio).

Ping

Run from the command line or terminal application to test if you can communicate with another node.

Power Adapter

Our homes, businesses, libraries, and other community spaces typically include wall outlets from which we can plug in our electronics. These are usually either installed to supply 120 volt or 240 volt alternating current (AC) power source to our devices. But many of our devices use a much lower voltage direct current (DC) power source. It is for this reason that we often need a power adapter that has a plug-in to connect to the wall outlet, and another that has another form of plugging, increasingly today a Micro USB connector, to your electronic device. For the kit used in this book, we use a power adapter that works with 110 to 240 volt AC power on one side, and provides 5 volt, 2.4 amp power via a Micro USB connector on the other side.

Printed Circuit Board

A printed circuit board is a board base made of fiberglass or glass-reinforced plastic with one or more layers of copper or other conductive traces placed on one or both sides of the board base. If you've ever tie dyed a shirt, you've got a good starting point for considering the printing process of a circuit board. Individual electronic components and integrated circuits are then soldered onto specific trace paths to build complex electronics. A small printed circuit board was used to build the 5-Key Capacitive Touch Sensor used in our kit.

Program

program is software containing a series of coded instructions to control the operation of an electronic device (noun), and the activity of creating coded instructions in support of a particular task of an electronic device (verb). Programs are created using a programming language that includes rules and a system of symbols. The language must conform to these rules of syntax and semantics, but unlike many commonly used physical electronics, they often are not created as part of a standards body. A programming language may be developed from scratch, but more often are built within a programming family, using previous programming languages as a base starting point, and may rely on another programming language to effectively function on a machine. This book explores several popular programming languages:

MakeCode: A web-based code editor developed by Microsoft, adapted specifically for the Circuit Playground Express in collaboration with Adafruit. It provides a block editor similar to the Scratch visual programming language developed by MIT Media Lab Lifelong Kindergarten Group. (Scratch is installed by default in the Raspberry Pi OS and with the available extension can be used with the Raspberry Pi GPIO.) The MakeCode programming language itself is TypeScript, a high-level programming language superset of another language, JavaScript. MakeCode is edited in a web browser at https://makecode.adafruit.com/ and provides a simulator of a Circuit Playground Express. Programs can be downloaded and flashed, that is, written to the Read-Only Memory (ROM) of the Circuit Playground Express, overwriting the previous MakeCode program on the physical device.

Python: A popular general-purpose programming language with a relatively easy-to-use syntax. A range of Integrated Development Environments (IDE) are available in which code is written, tested, and debugged. The Raspberry Pi comes with IDLE and Thonny, two commonly used Python IDE bundles.

PHP Hypertext Preprocessor: A scripting language used with web server applications in support of web development, as well as a general-purpose programming language.

SQL (Structured Query Language): Used within database management system servers, like the open-source relational database management system MySQL, which can be installed and used in the Raspberry Pi OS.

Programmable Circuit

An electronic component with an undefined function, allowing it to be programmed and used in reconfigurable ways.

Prototype

The first, preliminary model of a circuit or a system of circuits used when developing a product. Used both as a noun describing a model, or a verb describing the activity moving towards the creation of the model.

Request for Comments (RFC)

RFCs are technical and organizational notes about the Internet and cover many aspects of computer networking, including protocols, procedures, programs, and concepts.

Resistance (Ω or Ohm)

Electrical resistance reduces the flow of current through a circuit. Resistors are the typical electrical component used to provide resistance in a circuit. The kit used in the book comes with five 560 ohm resistors, and five 10,000 ohm (or 10k ohm) resistors. In most cases, feel encouraged to work with the 560 Ω resistor.

Ribbon Cable

When a number of insulated wires are brought together to create a flat ribbon of wires, this is called a ribbon cable. Ribbon cables may have a plastic box with solid metal pins extending out from the other side, in which case it is known as a male header. Other times, a plastic box is made with holes into which metal pins can be inserted, in which case it is known as a female header.

Router

A router is an interconnect device used to transfer data from one Local Area Network (LAN) to another LAN connected to the router.

Schematic

A symbolic and simplified diagram or other representation of a circuit. Throughout this book, schematics are used when an illustration of a circuit is needed without specifying exactly how these would be physically built using a breadboard or other prototyping platform. In this schematic illustration, we see the formal representation of the electronics used to create a complete and functioning circuit that include a 560 Ohm resistor, a 5mm LED circuit, and a battery. In the prototype illustration, we see one example of how this circuit could be constructed using a tiny breadboard and double-A battery.

Semiconductor

A substance that can conduct electricity under some conditions, but not under others. Many electrical components are built using such semi-conductive materials, including diodes, sensors, and integrated circuits.

Sensor

Electrical sensors are devices used to detect input from the physical environment. Light sensors might automatically turn on the headlights of your car, while heat and chemical sensors might turn on a fire alarm. And motion sensors might turn up the heating or cooling in a house, or might count how many people have passed through a gate to and from a library. The Circuit Playground Express that comes with the toolkit has a range of sensor inputs within this printed circuit board, including:

Analog light sensor to detect ambient light, with similar spectral response to the human eye.
Temperature sensor calculated using the analog voltage at a given moment.
Microphone audio sensor is a digital microphone that works similarly to the microphones built into our laptops and smartphones, but is smaller and less expensive, well-suited for this educational microcontroller.
Motion sensor using an accelerometer, detecting both motion and gravitational pull.
Seven capacitive touch sensors that can sense the touch of a person, human or otherwise.

Sequence

A particular set of events, and the specific ordering of those events, to complete one step in a program.

Sequential Logic

Boolean logic in which the output depends on the present input as well as a set history of the input.

Simple Mail Transfer Protocol (SMTP)

As part of the Internet protocol suite, SMTP is a communications protocol for email servers and clients. SMTP is used to send and receive email.

Specifications

Often called "specs," specifications are formalized practices created using accredited technical standards developed and adopted using an open consensus process under guidelines of a standards body, or using de facto technical standards developed and owned by a single group or company.

Statement

A statement is a single instruction given to the computer based on the rules of syntax and semantics of a programming language. The statement may include both the specific command and clarifying details, such as the color all pixels should be set to.

Storage (Optical, Magnetic, and Flash)

There are a range of different data storage devices: hard drives (HDDs) constructed using magnetic charges placed on a set of spinning platters, DVDs using pits on a spinning platter read via laser, and flash memory integrated circuit chips, such as Solid State Drives (SSDs), USB flash drives, and SD cards, provide computers with long term storage of data and software applications. Storage devices are relatively slow, so programming instructions need to be moved from storage to memory using integrated circuits to be fetched, decoded, and executed by the processors of the computer. The Raspberry Pi kit includes an 8 GB MicroSD card storage device, although 16GB, 32GB, and 128GB MicroSD cards are available and can be used with the Raspberry Pi. In addition, it is sometimes helpful to make use of USB flash drives or USB hard drives with the Raspberry Pi to provide even more storage.

Store-and-Forward Principle

A telecommunications technique in which information is stored at each intermediate node on the path to a specified destination.

Structured Query Language (SQL)

A language for creating, deleting, and manipulating data in a relational database. Although SQL is a standard language, many vendors, such as MySQL, have their own “dialect.” Relational database management systems are often a key component within the “client-server” architecture.

Subroutine

A unit of code defined by its role within a more general code structure. A subroutine does not need an input and does not provide an output, but simply executes the sequence of code within it.

Switch

Electrical switches are devices used to move between closed position, in which a current is passed through a circuit, and open position, in which the current is not passed through. A classic example is a light switch, in which a closed position would turn on a light and an open position would turn off that light. Closing the switch completes the circuit. The kit in this book includes three momentary closed tactile pushbutton switches that can be used with the breadboard, as well as three additional switches built into the Circuit Playground Express. Pressing on the round button momentarily closes the switch, temporarily passing current from one leg to the other on the switch. While the momentary switches used with the breadboard have four legs, the two legs on one side are connected together, as are the two legs on the other side. In practice, that makes these two-way switches.

Themes and Skins

Pre-set packages containing graphical appearance details. Supported in some versions of Windows and Linux. Available as third-party applications in other cases. Supported for many applications like web browsers. Changes the look and feel of many features at once (e.g. background colors, text font and size, icons, mouse cursor, etc.).

Traceroute

Run from the command line or terminal application to test the performance of each router between nodes.

Transistor

Small electronic switches allowing control of electrical flow within a circuit without using programming code.

Transmission Control Protocol (TCP)

Together with the Internet Protocol (IP), TCP is one of the primary protocols of the Internet protocol suite. TCP specifically defines how data intended to be sent over a network is broken into packets before transmission and reliably reassembled in the right order at the destination application. Many applications, including the web, email, and file transfer rely on TCP as a foundation.

Uniform Resource Locator (URL)

Also known as a web address, the URL is a commonly used form of the more general Uniform Resource Indicator (URI), strings of characters used to unambiguously identify a resource, such as “https://www.wikipedia.org.” The first part of the URL states the protocol to be used. While web browsers support several different protocols, we almost always make use of the HTTP protocol or the secure Hypertext Transfer Protocol, HTTPS.

Universal Asynchronous Receive and Transmit (UART)

Pronounced u-art, the universal asynchronous receiver-transmitter is a commonly used hardware supporting serial communication between two devices, such as between a microcomputer and a microcontroller. As an asynchronous device, UART data can be sent at different periods of time as needed. This contrasts with synchronous data communications technologies such as the dynamic random access memory (RAM) found in dual in-line memory modules (DIMM) of a computer, in which data is exchanged at precise intervals. Universal indicates the configurability of UART, allowing for unique code to be written supporting different data types and sizes to meet specific data communication needs. An independent driver circuit manages transmission levels (e.g.,115,200 kilobits per second speed) and methods (e.g., USB to TTL) used within a specific communication cable.

USB

Universal Serial Bus (USB) is a formal industry standard with specifications for cables and connectors, and also protocols for connections, communication, and power supply between electronic devices such as computers and peripherals. USB 1.x, 2.0, 3.x, and the upcoming 4 are generations of the standard and associated specifications. The USB port connector on a device is called the receptacle, while the connector on the cable is called the plug. There is a range of different USB connectors approved within USB committee specifications, including:

Standard format USB Type-A (common on computers, and used on the Raspberry Pi) and Type-B connectors (seen in a range of removable devices such as external hard drives and printers). Type-A receptacles on devices are color-coded white, indicating USB version 1 or 2 compliant low/full/high speed ports, or blue, indicating USB version 3.x SuperSpeed compliant ports.
Mini-A (common in cameras and some tablet computers) and Mini-B connectors.
Micro-A and Micro-B connectors, common in many mobile devices. For USB 3.x ports, a thin but wider Micro-B SuperSpeed plug is used.
USB-C is a formal connector specification, and does not necessarily implement USB 3.x standards.

User Datagram Protocol (UDP)

Used together with the Internet Protocol (IP), UDP is an alternative to TCP when speed is essential and error-correction is not. For example, live video streaming applications use the UDP protocol acknowledging video may occasionally freeze or appear jumpy for brief periods.

UTF-8

UTF-8, the 8-bit Unicode Transformation Format encoding system, is the most encoding for the World Wide Web. It is backward compatible with ASCII but provides support for a wide range of languages beyond American English encoding of ASCII.

Variables

A convenient name to represent numbers that change from time to time. Look at the top of your smartphone, and you may see the battery percentage charge remaining. A program exists on the smartphone to read this variable and provide a visual representation of it. Variables are often used within code to evaluate changes in patterns to determine which series of code should be executed at a given moment.

Voltage (V or Volt)

A quantitative expression of the difference in charge between two points in an electrical field. The Raspberry Pi electronics kit provides both 5 volt and 3.3 volt sources for use in our circuits.

While Loop

A Control Flow Statement that specifies the conditions under which a sequence of events should continue to be executed.

Wide Area Network (WAN)

Covers the size of a state, country, and could even be considered to include the entire Internet. A WAN is comprised of many interconnected MANs and LANs. The WAN that is used to internetwork these is typically owned and managed by one or more Internet Service Providers (ISPs: the business that provides connections to each LAN), Network Service Providers (NSPs: the business(es) that provide connections between ISPs), and Backbone Providers (the business(es) that provide the more extended connections between NSPs).

Window System

This is the part of the graphical user interface that communicates with the kernel. Many operating systems allow remote interfacing with the window system, either directly or through third-party applications.

License

Icon for the Creative Commons Attribution-ShareAlike 4.0 International License

A Person-Centered Guide to Demystifying Technology Copyright © 2020 by Copyright © 2020 Martin Wolske. Copyright “Ideating and Iterating Code: Scratch Example” © 2020 Betty Bayer and Stephanie Shallcross. Copyright “Introducing the Unix Command Line” © 2020 Martin Wolske, Dinesh Rathi, Henry Grob, and Vandana Singh. Copyright “Security and Privacy” © 2020 Sara Rasmussen. is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, except where otherwise noted.

Share This Book