Punched card input/output. A computer punched card reader or just computer card reader is a computer input device used to read computer programs in either source or executable form and data from punched cards. A computer card punch is a computer output device that punches holes in cards. Sometimes computer punch card readers were combined with computer card punches and, later, other devices to form multifunction machines.

History
Many early computers, such as the ENIAC, and the IBM NORC, provided for punched card input/output.   Card readers and punches, either connected to computers or in off-line card to/from magnetic tape configurations, were ubiquitous through the mid-1970s.

Punched cards had been in use since the 1890s; their technology was mature and reliable. Card readers and punches developed for punched card machines were readily adaptable for computer use. Businesses were familiar with storing data on punched cards and keypunch machines were widely employed. Punched cards were a better fit than other 1950s technologies, such as magnetic tape, for some computer applications because individual cards could easily be updated without having to access a computer. Also file drawers of punched cards served as a low-density offline storage medium for data.

Operation
The standard measure of speed is cards per minute, abbreviated CPM: The number of cards which can be read or punched in one minute. Card reader models vary from 150 to around 2,000 CPM. At 1200 CPM, i.e. 20 cards per second, this translates to 1,600 characters per second (CPS), assuming all 80 columns of each card encode information. 

Early computer card readers were base on electromechanical unit record equipment and used mechanical brushes that make an electrical contact for a hole, and no contact if no punch. Later readers used photoelectric sensors to detect the presence or absence of a hole. Timing within each read cycle relates the resulting signals to the corresponding position on the card.  Early readers read cards in parallel, row by row, following unit record practice (hence the orientation of the rectangular holes). Later, card readers that read cards serially, column by column became more common.

Card punches necessarily run more slowly to allow for the mechanical action of punching, up to around 300 CPM or 400 characters per second.

Some card devices offer the ability to interpret, or print a line on the card displaying the data that is punched. Typically this slows down the punch operation. Many punches would read the card just punched and compare its actual contents to the original data punched, to protect against punch errors. Some devices allowed data to be read from a card and additional information to be punched into the same card.

Readers and punches include a hopper for input cards and one or more stacker bins to collect cards read or punched.  A function called stacker select allows the controlling computer to choose which stacker a card just read or punched will be placed into.

Card readers/punches

Control Data Corporation
 CDC 405 — CDC 6000 series card reader, 1200 or 1600 cards per minute (CPM)
 CDC 415 — CDC 6000 series card punch, 250 cards per minute

Documation
Documation Inc., of Melbourne, Florida, made card readers for minicomputers in the 1970s:
 M-200 card reader, 300 cards/minute also sold by DEC as the CR-11 card reader for the PDP-11
 M-600 card reader, 600 cards/minute, also sold by HP as 2892A and 2893A 
 M-1000-L card reader 1,000 cards/minute

Their card readers have been used in elections, including the 2000 "chads" election in Florida.

IBM
 IBM 711 card reader computer peripheral used in the vacuum tube era, 150 or 250 CPM
 IBM 2501 card reader, 600 or 1000 CPM
 IBM 1402 high speed reader/punch introduced with the IBM 1401, 800 CPM
 IBM 1442 reader/punch introduced with the lower-cost IBM 1440, read 80-400 CPM, punch 91-355 CPM
 IBM 2540 reader/punch derived from the 1402 that was introduced with System 360
 IBM 2560 Multi-Function Card Machine (MFCM), first introduced for the IBM System/360 Model 20, could also collate, sort and print/interpret.
 IBM 3505 reader and its companion 3525 reader/printer/punch that was introduced for the System/370 in 1971, read 1200 CPM, punch 300 CPM

Binary format

For some computer applications, binary formats were used, where each hole represented a single binary digit (or "bit"), every column (or row) is treated as a simple bitfield, and every combination of holes is permitted. For example, the IBM 711 card reader used with the 704/709/7090/7094 series scientific computers treated every row as two 36-bit words, ignoring 8 columns. (The specific 72 columns used were selectable using a plugboard control panel, which is almost always wired to select columns 1–72.) Sometimes the ignored columns (usually 73–80) were used to contain a sequence number for each card, so the card deck could be sorted to the correct order in case it was dropped. 

An alternative format, used by the IBM 704's IBM 714 native card reader, is referred to as Column Binary or Chinese Binary, and used 3 columns for each 36-bit word.  Later computers, such as the IBM 1130 or System/360, used every column. The IBM 1401's card reader could be used in Column Binary mode, which stored two characters in every column, or one 36-bit word in three columns when used as input device for other computers. However, most of the older card punches were not intended to punch more than 3 holes in a column. The multipunch key is used to produce binary cards, or other characters not on the keypunch keyboard.

As a prank, in binary mode, cards could be punched where every possible punch position had a hole. Such "lace cards" lacked structural strength, and would frequently buckle and jam inside the machine.

See also
Plugboard discusses how early card readers worked in some detail
Computer programming in the punched card era
List of IBM products#Punched card and paper tape equipment

References

Punched card equipment

Punched card
Computing input devices
Computer output devices
Computing-related lists