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.
It is a input device and also an output device.
Most 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 as individual cards could easily be updated without having to access a computer.

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 300 to around 2,000 CPM. If all columns of an 80 column card encode information this translates to approximately 2,500 characters per second (CPS).

Cards may be read using mechanical brushes that make an electrical contact for a hole, and no contact if no punch, or photoelectric sensors that function similarly. Timing relates the signals to the position on the card.  Cards may be read serially, column by column, or in parallel, row by row.

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 read the card just punched and compare its actual contents to the original data punched, to protect against punch errors. Some devices allow 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 stackers for 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 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
Computing output devices
Computing-related lists