Big Idea 2: Abstraction
low-level languages
Code in a programming language is often translated into code in another (lower-level) language to be executed on a computer. Examples: assembly and machine language
levels of abstraction
Different programming languages offer different levels of abstraction.
bits
a series of binary digits, 1 or 0 - at the lowest level, all digital data are represented by bits.
chip (as an abstraction)
an abstraction composed of low-level components and circuits that perform a specific function
binary numbers (base 2)
at one of the lowest levels of abstraction, digital data is represented in binary (base 2) using only combinations of the digits zero and one.
software
developed using multiple levels of abstractions, such as constants, expressions, statements, procedures, and libraries
hardware
A hardware component can be low level like a transistor or high level like a video card. Hardware is built using multiple levels of abstractions, such as transistors, logic gates, chips, memory, motherboards, special purpose cards, and storage devices.
logic gate
A logic gate is a hardware abstraction that is modeled by a Boolean function.
high-level languages
High-level programming languages provide more abstractions for the programmer and make it easier for people to read and write a program. It may use natural language elements, be easier to use, or may automate (or even hide entirely) significant areas of computing systems (e.g. memory management), making the process of developing a program simpler and more understandable relative to a lower-level language. The amount of abstraction provided defines how "high-level" a programming language is.
real numbers (floating-point)
In many programming languages, the fixed number of bits used to represent real numbers (as floating-point numbers) limits the range of floating-point values and mathematical operations; this limitation can result in round-off and other errors
SMS, email as used as an abstraction
Lower-level abstractions can be combined to make higher-level abstractions, such as short message services (SMS) or email messages, images, audio files, and videos
models
Models often omit unnecessary features of the objects or phenomena that are being modeled.
simulations
Simulations mimic real-world events without the cost or danger of building and testing the phenomena in the real world
overflow error
error that results when the number of bits is not enough to hold the number, like a car's odometer "rolling over"
round-off error
error that results when the number of bits is not enough to represent the actual number, like 3 digits to represent π as 3.14
RGB color value
is specified with: rgb(red, green, blue). Each parameter (red, green, and blue) defines the intensity of the color as an integer between 0 and 255. For example, rgb(0, 0, 255) is rendered as blue, because the blue parameter is set to its highest value (255) and the others are set to 0.
boolean function
one of two states - on or off, true or false, 1 or 0
binary data
processed by physical layers of computing hardware, including gates, chips, and components
abstraction
reduces information and detail to facilitate focus on relevant concepts, manages complexity. In computer science, abstraction is a central problem-solving technique. It is a process, a strategy, and the result of reducing detail to focus on concepts relevant to understanding and solving problems
digital data
represented by abstractions at different levels.
programming languages
the fixed number of bits used to represent characters or integers limits the range of integer values and mathematical operations; this limitation can result in overflow or other errors
number bases
used to represent and investigate digital data - including binary, decimal, and hexadecimal
hexadecimal (base 16)
used to represent digital data because hexadecimal representation uses fewer digits than binary. The hexadecimal numeral system, also known as just hex, is a numeral system made up of 16 symbols (base 16). Hexadecimal uses the decimal numbers and includes six extra symbols. There are no symbols that mean ten, or eleven etc. so these symbols are letters taken from the English alphabet: A, B, C, D, E and F. Hexadecimal A = decimal 10, and hexadecimal F = decimal 15
binary sequences
used to represent digital data. A finite representation is used to model the infinite mathematical concept of a number. The interpretation of a binary sequence depends on how it is used. A sequence of bits may represent instructions or data. A sequence of bits may represent different types of data in different contexts.