Programmable calculators are calculators that can automatically carry out a sequence of operations under control of a stored program. Most are Turing complete, and, as such, are theoretically general-purpose computers. However, their user interfaces and programming environments are specifically tailored to make performing small-scale numerical computations convenient, rather than general-purpose use. The first programmable calculators such as the IBM CPC used punched cards or other media for program storage. Hand-held electronic calculators store programs on magnetic strips, removable read-only memory cartridges, flash memory, or in battery-backed read/write memory. Since the early 1990s, most of these flexible handheld units belong to the class of graphing calculators. Before the mass-manufacture of inexpensive dot-matrix LCDs, however, programmable calculators usually featured a one-line numeric or alphanumeric display. The Big Four manufacturers of programmable calculators are Casio, Hewlett-Packard, Sharp, and Texas Instruments. All of the above have also made pocket computers in the past, especially Casio and Sharp. Many calculators of this type are monochrome LCD, some are four-color (red or orange, green, blue, and black), or, in the case of some machines at the top of the line as of January 2022 color similar to monitors displaying 16 or 32-bit graphics. As they are used for graphing functions, the screens of these machines are pixel-addressable. Some have a touch screen, buzzers or other sound producers, internal clocks, modems or other connectivity devices including IrDA transceivers, several types of ports for peripherals like printers, and ports for memory cards of a number of types. The wide availability and low cost of personal computers including laptop computers, smartphones and tablets gradually made programmable calculators obsolete for most applications. However, they remain popular in secondary education. Specific calculator models are often required for use in many mathematics courses. Their continued use in education is usually justified by the strictly controllable functionality available. For instance, the calculators do not typically have direct Internet access and so cannot be used for illegal assistance in exams. The remaining programmable calculator manufacturers devote much effort to encourage the continued use of these calculators in high school mathematics. Earlier devices Calculator programming Programmable calculators allow the user to write and store programs in the calculator in order to solve difficult problems or automate an elaborate procedure. Programming capability appears most commonly (although not exclusively) in graphing calculators, as the larger screen allows multiple lines of source code to be viewed simultaneously (i.e.,