Programming Logic and Design - Chapter 1 Vocabulary

Computer Hardware Components

  • Hardware: The physical devices that comprise a computer system.

  • Central Processing Unit (CPU): Executes program instructions through a fetch-decode-execute cycle; requires a unique instruction set specific to the microprocessor brand (such as Intel, AMD, and Motorola).

  • ENIAC: Constructed in 19451945 to calculate artillery ballistic tables for the U.S. Army; featured a CPU measuring 8feet8\,\text{feet} tall, 100feet100\,\text{feet} long, and weighing 30tons30\,\text{tons}.

  • Main Memory (RAM): Volatile temporary workspace where the computer stores active programs and data; loses contents when powered off.

  • Read-Only Memory (ROM): Nonvolatile memory containing system startup instructions that can be read but not modified.

  • Secondary Storage: Nonvolatile media for long-term data retention, including magnetic disk drives, solid-state drives (SSD), USB flash drives, optical discs (CDs and DVDs), and cloud storage remote servers.

  • Input and Output Devices: Input devices gather data (keyboard, mouse, touch screen, scanner, microphone, digital camera); output devices present formatted data (monitor, printer).

Data Representation and Storage

  • Bits and Bytes: Memory is organized into bytes, where 1byte1\,\text{byte} consists of 88 bits (binary digits). A bit holds a positive charge (11 / on) or a negative charge (00 / off).

  • Numeric Data: Encoded in the binary numbering system. A single byte stores integer values up to 255255, while 2bytes2\,\text{bytes} store values up to 6553565535. Negative integers use two's complement, and real numbers use floating-point notation.

  • Text and Media: ASCII uses a set of 128128 numeric codes (e.g., the letter 'A' is stored as 6565); Unicode expands ASCII to support global character sets. Digital images consist of pixels, and digital sound is divided into samples.

Software and Programming Languages

  • Machine Language: Binary code (00s and 11s) directly executable by the CPU.

  • Assembly Language: Low-level programming language using mnemonic words translated into machine language by an assembler.

  • High-Level Languages: Languages designed for complex software development without needing hardware-level knowledge (e.g., Java, C++, Python, Visual Basic, Ada, Fortran, and C#).

  • Code Translation: Program source code contains key words, operators, and statements adhering to syntax rules. Translators convert source code into machine language via a compiler (generates a separate executable file) or an interpreter (translates and executes code on the fly).

  • Software Categories:

    • System Software: Manages basic computer operations, including Operating Systems, Utility Programs, and Software Development Tools.

    • Application Software: Programs designed for daily user tasks, such as word processing, spreadsheets, databases, and web browsers.