romikgosai/squad_modified_2 huggingface dataset:
The Mark 1 in turn quickly became the prototype for the Ferranti Mark 1, the world's first commercially available general-purpose computer. Built by Ferranti, it was delivered to the University of Manchester in February 1951. At least seven of these later machines were delivered between 1953 and 1957, one of them to Shell labs in Amsterdam. In October 1947, the directors of British catering company J. Lyons & Company decided to take an active role in promoting the commercial development of computers. The LEO I computer became operational in April 1951  and ran the world's first regular routine office computer job.

Q1: What was the prototype for the Ferranti Mark 1?
A1: The Mark 1
Q2: What was the first available computer for the public?
A2: Ferranti Mark 1
Q3: When was the Ferranti Mark 1 built?
A3: 1951
Q4: Where was the Ferranti Mark 1 sent to after it was developed?
A4: University of Manchester
Q5: When was the LEO 1 computer first operational?
A5: April 1951
The bipolar transistor was invented in 1947. From 1955 onwards transistors replaced vacuum tubes in computer designs, giving rise to the "second generation" of computers. Compared to vacuum tubes, transistors have many advantages: they are smaller, and require less power than vacuum tubes, so give off less heat. Silicon junction transistors were much more reliable than vacuum tubes and had longer, indefinite, service life. Transistorized computers could contain tens of thousands of binary logic circuits in a relatively compact space.

Q1: When was the bipolar transistor created?
A1: 1947.
Q2: When did transistors start replacing vacuum tubes in computers?
A2: 1955
At the University of Manchester, a team under the leadership of Tom Kilburn designed and built a machine using the newly developed transistors instead of valves. Their first transistorised computer and the first in the world, was operational by 1953, and a second version was completed there in April 1955. However, the machine did make use of valves to generate its 125 kHz clock waveforms and in the circuitry to read and write on its magnetic drum memory, so it was not the first completely transistorized computer. That distinction goes to the Harwell CADET of 1955, built by the electronics division of the Atomic Energy Research Establishment at Harwell.

Q1: At the University of Manchester, who oversaw the building of a computer using transistors instead of valves?
A1: Tom Kilburn
Q2: The first transistorised computer was operational in what year?
A2: 1953
Q3: What did the machine use to generate its clock waveforms?
A3: valves
Q4: Who built the Harwell CADET?
A4: electronics division of the Atomic Energy Research Establishment at Harwell
Q5: In what year was the Harwell CADET built?
A5: 1955
The next great advance in computing power came with the advent of the integrated circuit. The idea of the integrated circuit was first conceived by a radar scientist working for the Royal Radar Establishment of the Ministry of Defence, Geoffrey W.A. Dummer. Dummer presented the first public description of an integrated circuit at the Symposium on Progress in Quality Electronic Components in Washington, D.C. on 7 May 1952.

Q1: The integrated circuit of a computer was the idea of whom?
A1: Geoffrey W.A. Dummer
Q2: Where did Geoffrey W.A. Dummer work at?
A2: Royal Radar Establishment of the Ministry of Defence
The first practical ICs were invented by Jack Kilby at Texas Instruments and Robert Noyce at Fairchild Semiconductor. Kilby recorded his initial ideas concerning the integrated circuit in July 1958, successfully demonstrating the first working integrated example on 12 September 1958. In his patent application of 6 February 1959, Kilby described his new device as "a body of semiconductor material ... wherein all the components of the electronic circuit are completely integrated". Noyce also came up with his own idea of an integrated circuit half a year later than Kilby. His chip solved many practical problems that Kilby's had not. Produced at Fairchild Semiconductor, it was made of silicon, whereas Kilby's chip was made of germanium.

Q1: Where created the first practical integrated circuits?
A1: Jack Kilby at Texas Instruments and Robert Noyce at Fairchild Semiconductor.
Q2: Where did Jack Kilby work at when he created the first IC?
A2: Texas Instruments
Q3: When was the first functional IC demonstrated?
A3: 12 September 1958.
Q4: What was Kilby's IC made of?
A4: germanium
Q5: Noyce's IC was made up of what material?
A5: silicon
This new development heralded an explosion in the commercial and personal use of computers and led to the invention of the microprocessor. While the subject of exactly which device was the first microprocessor is contentious, partly due to lack of agreement on the exact definition of the term "microprocessor", it is largely undisputed that the first single-chip microprocessor was the Intel 4004, designed and realized by Ted Hoff, Federico Faggin, and Stanley Mazor at Intel.

Q1: What was the name of the first single-chip microprocessor?
A1: Intel 4004
Q2: Who created the Intel 4004 microprocessor?
A2: Ted Hoff, Federico Faggin, and Stanley Mazor
Q3: Where did Ted Hoff, Federico Faggin, and Stanley Mazor work at?
A3: Intel.
With the continued miniaturization of computing resources, and advancements in portable battery life, portable computers grew in popularity in the 2000s. The same developments that spurred the growth of laptop computers and other portable computers allowed manufacturers to integrate computing resources into cellular phones. These so-called smartphones and tablets run on a variety of operating systems and have become the dominant computing device on the market, with manufacturers reporting having shipped an estimated 237 million devices in 2Q 2013.

Q1: Computing resources that are created in cell phones are called what?
A1: smartphones
Q2: How many tablets were sold in 2Q 2013?
A2: 237 million devices
In practical terms, a computer program may be just a few instructions or extend to many millions of instructions, as do the programs for word processors and web browsers for example. A typical modern computer can execute billions of instructions per second (gigaflops) and rarely makes a mistake over many years of operation. Large computer programs consisting of several million instructions may take teams of programmers years to write, and due to the complexity of the task almost certainly contain errors.

Q1: Billions of instructions per second are called what in computer terms?
A1: (gigaflops)
Program execution might be likened to reading a book. While a person will normally read each word and line in sequence, they may at times jump back to an earlier place in the text or skip sections that are not of interest. Similarly, a computer may sometimes go back and repeat the instructions in some section of the program over and over again until some internal condition is met. This is called the flow of control within the program and it is what allows the computer to perform tasks repeatedly without human intervention.

Q1: When a computer goes back and repeats instructions of a program over until an internal condition is met is called what?
A1: the flow of control
Q2: What allows a computer to perform repetitive tasks without human intervening?
A2: the flow of control
In most computers, individual instructions are stored as machine code with each instruction being given a unique number (its operation code or opcode for short). The command to add two numbers together would have one opcode; the command to multiply them would have a different opcode, and so on. The simplest computers are able to perform any of a handful of different instructions; the more complex computers have several hundred to choose from, each with a unique numerical code. Since the computer's memory is able to store numbers, it can also store the instruction codes. This leads to the important fact that entire programs (which are just lists of these instructions) can be represented as lists of numbers and can themselves be manipulated inside the computer in the same way as numeric data. The fundamental concept of storing programs in the computer's memory alongside the data they operate on is the crux of the von Neumann, or stored program[citation needed], architecture. In some cases, a computer might store some or all of its program in memory that is kept separate from the data it operates on. This is called the Harvard architecture after the Harvard Mark I computer. Modern von Neumann computers display some traits of the Harvard architecture in their designs, such as in CPU caches.

Q1: Which computer is the Harvard architecture modeled after?
A1: Harvard Mark I computer
Q2: A computer that stores its program in memory and kept separate from the data is called what?
A2: the Harvard architecture
While it is possible to write computer programs as long lists of numbers (machine language) and while this technique was used with many early computers, it is extremely tedious and potentially error-prone to do so in practice, especially for complicated programs. Instead, each basic instruction can be given a short name that is indicative of its function and easy to remember – a mnemonic such as ADD, SUB, MULT or JUMP. These mnemonics are collectively known as a computer's assembly language. Converting programs written in assembly language into something the computer can actually understand (machine language) is usually done by a computer program called an assembler.

Q1: A computer's assembly language is known as what?
A1: basic instruction can be given a short name that is indicative of its function
Q2: Programs that convert assembly language into machine language are called what?
A2: an assembler.
Q3: Computer programs that are long lists of numbers are called what?
A3: machine language
Programming languages provide various ways of specifying programs for computers to run. Unlike natural languages, programming languages are designed to permit no ambiguity and to be concise. They are purely written languages and are often difficult to read aloud. They are generally either translated into machine code by a compiler or an assembler before being run, or translated directly at run time by an interpreter. Sometimes programs are executed by a hybrid method of the two techniques.

Q1: Programming languages are translated into machine code by what?
A1: a compiler or an assembler
Q2: Programming languages are translated at run time by what?
A2: an interpreter
Machine languages and the assembly languages that represent them (collectively termed low-level programming languages) tend to be unique to a particular type of computer. For instance, an ARM architecture computer (such as may be found in a PDA or a hand-held videogame) cannot understand the machine language of an Intel Pentium or the AMD Athlon 64 computer that might be in a PC.

Q1: An ARM architecture computer can be found in what?
A1: a PDA or a hand-held videogame
Though considerably easier than in machine language, writing long programs in assembly language is often difficult and is also error prone. Therefore, most practical programs are written in more abstract high-level programming languages that are able to express the needs of the programmer more conveniently (and thereby help reduce programmer error). High level languages are usually "compiled" into machine language (or sometimes into assembly language and then into machine language) using another computer program called a compiler. High level languages are less related to the workings of the target computer than assembly language, and more related to the language and structure of the problem(s) to be solved by the final program. It is therefore often possible to use different compilers to translate the same high level language program into the machine language of many different types of computer. This is part of the means by which software like video games may be made available for different computer architectures such as personal computers and various video game consoles.

Q1: Assembly language that is translated into machine language is done by what type of computer?
A1: a compiler
These 4G languages are less procedural than 3G languages. The benefit of 4GL is that it provides ways to obtain information without requiring the direct help of a programmer. Example of 4GL is SQL.

Q1: An example of a 4GL is what?
A1: SQL
Q2: What is the pro of 4GL over a 3G language?
A2: provides ways to obtain information without requiring the direct help of a programmer
Errors in computer programs are called "bugs". They may be benign and not affect the usefulness of the program, or have only subtle effects. But in some cases, they may cause the program or the entire system to "hang", becoming unresponsive to input such as mouse clicks or keystrokes, to completely fail, or to crash. Otherwise benign bugs may sometimes be harnessed for malicious intent by an unscrupulous user writing an exploit, code designed to take advantage of a bug and disrupt a computer's proper execution. Bugs are usually not the fault of the computer. Since computers merely execute the instructions they are given, bugs are nearly always the result of programmer error or an oversight made in the program's design.

Q1: Another name for errors in programs are called what?
A1: "bugs
Q2: Bugs are usually the fault of whom or what?
A2: programmer error or an oversight made in the program's design
Admiral Grace Hopper, an American computer scientist and developer of the first compiler, is credited for having first used the term "bugs" in computing after a dead moth was found shorting a relay in the Harvard Mark II computer in September 1947.

Q1: Who was the developer of the first compier?
A1: Admiral Grace Hopper
Q2: Who first coined the term "bugs"?
A2: Admiral Grace Hopper
Q3: What type of creature shorted a relay of Grace Hopper's computer?
A3: moth
Q4: What type of computer of Grace Hopper's was shorted by a moth?
A4: Harvard Mark II
Q5: When was Grace Hopper's Hardvard Mark II shorted by a moth?
A5: September 1947
A general purpose computer has four main components: the arithmetic logic unit (ALU), the control unit, the memory, and the input and output devices (collectively termed I/O). These parts are interconnected by buses, often made of groups of wires.

Q1: The ALU of a computer stands for what?
A1: arithmetic logic
Q2: Input and output devices are known as what term?
A2: I/O
Q3: Besides the ALU, input and output devices, what are the other two main components of a computer?
A3: the control unit, the memory
Inside each of these parts are thousands to trillions of small electrical circuits which can be turned off or on by means of an electronic switch. Each circuit represents a bit (binary digit) of information so that when the circuit is on it represents a "1", and when off it represents a "0" (in positive logic representation). The circuits are arranged in logic gates so that one or more of the circuits may control the state of one or more of the other circuits.

Q1: A circuit in a computer part represents what?
A1: a bit (binary digit) of information
Q2: In positive logic representation a "1" represents when a circuit is what?
A2: on
Q3: In positive logic representation a "0" represents when a circuit is what?
A3: off
The control unit (often called a control system or central controller) manages the computer's various components; it reads and interprets (decodes) the program instructions, transforming them into control signals that activate other parts of the computer. Control systems in advanced computers may change the order of execution of some instructions to improve performance.

Q1: What are other names for a control unit for a computer?
A1: a control system or central controller)
Q2: Reading and interpreting from a control unit is called doing what?
A2: (decodes
A key component common to all CPUs is the program counter, a special memory cell (a register) that keeps track of which location in memory the next instruction is to be read from.

Q1: A special memory cell of a CPU is called what?
A1: a register
Q2: A register of a CPU keeps track of what?
A2: which location in memory the next instruction is to be read from
Q3: What is a component that all CPUs have?
A3: the program counter
Since the program counter is (conceptually) just another set of memory cells, it can be changed by calculations done in the ALU. Adding 100 to the program counter would cause the next instruction to be read from a place 100 locations further down the program. Instructions that modify the program counter are often known as "jumps" and allow for loops (instructions that are repeated by the computer) and often conditional instruction execution (both examples of control flow).

Q1: In what part can the program counter be changed by calculations?
A1: the ALU
Q2: Instructions that change the program counter are called what?
A2: "jumps"
Q3: Loops are defined as what?
A3: instructions that are repeated by the computer)
The sequence of operations that the control unit goes through to process an instruction is in itself like a short computer program, and indeed, in some more complex CPU designs, there is another yet smaller computer called a microsequencer, which runs a microcode program that causes all of these events to happen.

Q1: In some CPU designs there is tinier computer called what?
A1: microsequencer
Q2: A microsequencer can be found in what other computer component?
A2: CPU
The control unit, ALU, and registers are collectively known as a central processing unit (CPU). Early CPUs were composed of many separate components but since the mid-1970s CPUs have typically been constructed on a single integrated circuit called a microprocessor.

Q1: The CPU is an abbreviation for what?
A1: central processing unit
Q2: What 3 parts make up the CPU?
A2: The control unit, ALU, and registers
Q3: CPUs that are constructed on a single integrated circuit are called what?
A3: a microprocessor
Q4: Since when have CPUs been constructed with a microprocessor?
A4: mid-1970s
The set of arithmetic operations that a particular ALU supports may be limited to addition and subtraction, or might include multiplication, division, trigonometry functions such as sine, cosine, etc., and square roots. Some can only operate on whole numbers (integers) whilst others use floating point to represent real numbers, albeit with limited precision. However, any computer that is capable of performing just the simplest operations can be programmed to break down the more complex operations into simple steps that it can perform. Therefore, any computer can be programmed to perform any arithmetic operation—although it will take more time to do so if its ALU does not directly support the operation. An ALU may also compare numbers and return boolean truth values (true or false) depending on whether one is equal to, greater than or less than the other ("is 64 greater than 65?").

Q1: Some trigonometry functions are what?
A1: sine, cosine,
Q2: The term for whole numbers is what?
A2: (integers
Logic operations involve Boolean logic: AND, OR, XOR, and NOT. These can be useful for creating complicated conditional statements and processing boolean logic.

Q1: Boolean logic consists of what?
A1: AND, OR, XOR, and NOT
Superscalar computers may contain multiple ALUs, allowing them to process several instructions simultaneously. Graphics processors and computers with SIMD and MIMD features often contain ALUs that can perform arithmetic on vectors and matrices.

Q1: Computers that have multiple ALUs are called what?
A1: Superscalar
A computer's memory can be viewed as a list of cells into which numbers can be placed or read. Each cell has a numbered "address" and can store a single number. The computer can be instructed to "put the number 123 into the cell numbered 1357" or to "add the number that is in cell 1357 to the number that is in cell 2468 and put the answer into cell 1595." The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. Since the CPU does not differentiate between different types of information, it is the software's responsibility to give significance to what the memory sees as nothing but a series of numbers.

Q1: How many numbers can a cell of a computer's memory hold?
A1: a single number
Q2: What is the responsibility of giving significance to what the memory sees as nothing but numbers?
A2: the software's
In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits (called a byte). Each byte is able to represent 256 different numbers (28 = 256); either from 0 to 255 or −128 to +127. To store larger numbers, several consecutive bytes may be used (typically, two, four or eight). When negative numbers are required, they are usually stored in two's complement notation. Other arrangements are possible, but are usually not seen outside of specialized applications or historical contexts. A computer can store any kind of information in memory if it can be represented numerically. Modern computers have billions or even trillions of bytes of memory.

Q1: A group of 8 bits is called what?
A1: a byte
Q2: How many numbers can a byte represent?
A2: 256 different numbers
Q3: What is the range of the numbers that a byte can represent?
A3: 0 to 255 or −128 to +127
The CPU contains a special set of memory cells called registers that can be read and written to much more rapidly than the main memory area. There are typically between two and one hundred registers depending on the type of CPU. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed. As data is constantly being worked on, reducing the need to access main memory (which is often slow compared to the ALU and control units) greatly increases the computer's speed.

Q1: What part of the computer has memory cells called registers?
A1: The CPU
Q2: What is the typical range of registers for a CPU?
A2: two and one hundred registers
RAM can be read and written to anytime the CPU commands it, but ROM is preloaded with data and software that never changes, therefore the CPU can only read from it. ROM is typically used to store the computer's initial start-up instructions. In general, the contents of RAM are erased when the power to the computer is turned off, but ROM retains its data indefinitely. In a PC, the ROM contains a specialized program called the BIOS that orchestrates loading the computer's operating system from the hard disk drive into RAM whenever the computer is turned on or reset. In embedded computers, which frequently do not have disk drives, all of the required software may be stored in ROM. Software stored in ROM is often called firmware, because it is notionally more like hardware than software. Flash memory blurs the distinction between ROM and RAM, as it retains its data when turned off but is also rewritable. It is typically much slower than conventional ROM and RAM however, so its use is restricted to applications where high speed is unnecessary.

Q1: What type of memory can a CPU only read from?
A1: ROM
Q2: What type of memory can a CPU read and write from?
A2: RAM
Q3: What type of memory is always kept and kept the same?
A3: ROM
Q4: A progam inside the ROM of a PC is called what?
A4: the BIOS
Q5: Software stored in ROM is called what usually?
A5: firmware,
In more sophisticated computers there may be one or more RAM cache memories, which are slower than registers but faster than main memory. Generally computers with this sort of cache are designed to move frequently needed data into the cache automatically, often without the need for any intervention on the programmer's part.

Q1: RAM cache memory is slower than what?
A1: registers