text:
Aquilegia

Aquilegia (common names: granny's bonnet, columbine) is a genus of about 130 species of perennial plants that are found in meadows, woodlands, and at higher elevations throughout the Northern Hemisphere, known for the spurred petals of their flowers.

Etymology
The genus name Aquilegia comes from the Latin "Aquila", or "eagle"; this is in obvious reference to the spurred, "hook" shapes within the blooms, that many gardeners say resemble an eagle's talons.

Description
Perennial herbs, with woody, erect stock, roots forming thick rhizomes. The basal leaves are compound, 1–3 ternate, blades 3-lobed -partite, and lobes lobulate and obtuse. The cauline leaves are similar to the basal ones, while the upper ones are bract like.

The hermaphrodite (bisexual) flowers are terminal to stem and branches. They are usually pentamerous (with five spreading perianth petaloid sepal segments). Five tubular honey-leaves are semi erect with a flat limb and spurred or saccate at the base. The spur is directed backwards and secretes nectar. Stamens are numerous (often more than 50) in whorls of 5, the innermost being scarious staminodes. There are ten membranaceous intrastaminal scales. There are five pistils and the carpels are free.

The fruit has several (five to 15) follicles which are semi erect and slightly connate downwards. These hold many seeds and are formed at the end of the pistils. The nectar is mainly consumed by long-beaked birds such as hummingbirds. Almost all Aquilegia species have a ring of staminodia around the base of the stigma, which may help protect against insects. Chromosome number is x=7.

Relatives
Columbines are closely related to plants in the genera Actaea (baneberries) and Aconitum (wolfsbanes/monkshoods), which like Aquilegia produce cardiogenic toxins.

Insects
They are used as food plants by some Lepidoptera (butterfly and moth) caterpillars. These are mainly of noctuid moths – noted for feeding on many poisonous plants without harm – such as cabbage moth (Mamestra brassicae), dot moth (Melanchra persicariae) and mouse moth (Amphipyra tragopoginis). The engrailed (Ectropis crepuscularia), a geometer moth, also uses columbine as a larval food plant. The larvae of the Papaipema leucostigma also feed on columbine.

Plants in the genus Aquilegia are a major food source for Bombus hortorum, a species of bumblebee. Specifically, they have been found to forage on species of Aquilegia vulgaris in Belgium and Aquilegia chrysantha in North America and Belgium. The bees do not show any preference in color of the flowers.

Cultivation

Columbine is a hardy perennial, which propagates by seed. It will grow to a height of 15-20 in. It will grow in full sun; however, it prefers growing in partial shade and well drained soil, and is able to tolerate average soils and dry soil conditions. Columbine is rated at hardiness zone 3 in the United States so does not require mulching or protection in the winter.

Large numbers of hybrids are available for the garden, since the European A. vulgaris was hybridized with other European and North American varieties. Aquilegia species are very interfertile, and will self-sow. Some varieties are short-lived so are better treated as biennials.

The British National Collection of Aquilegias was held by Mrs Carrie Thomas at Killay near Swansea. Some time during or before 2014 the collection started to succumb to Aquilegia Downy Mildew Peronospora aquilegiicola which was at the time an emerging disease to which the plants had no resistance. By 2018 the entire collection had been lost. Aquilegia can be grown from seeds or rhizomes.

Uses
The flowers of various species of columbine were consumed in moderation by Native Americans as a condiment with other fresh greens, and are reported to be very sweet, and safe if consumed in small quantities. The plant's seeds and roots, however, are highly poisonous and contain cardiogenic toxins which cause both severe gastroenteritis and heart palpitations if consumed as food. Native Americans used very small amounts of Aquilegia root as a treatment for ulcers. However, the medical use of this plant is better avoided due to its high toxicity; columbine poisonings may be fatal.

An acute toxicity test in mice has demonstrated that ethanol extract mixed with isocytisoside, the main flavonoid compound from the leaves and stems of Aquilegia vulgaris, can be classified as non-toxic, since a dose of 3000 mg/kg did not cause mortality.

Culture
The Colorado blue columbine (A. coerulea) is the official state flower of Colorado (see also Columbine, Colorado). It is also used as a symbol of the former city of Scarborough in the Canadian province of Ontario.

Evolution
Columbines have been important in the study of evolution. It was found that the Sierra columbine (A. pubescens) and crimson columbine (A. formosa) each has adapted specifically to a pollinator. Bees and hummingbirds are the visitors to A. formosa, while hawkmoths would only visit A. pubescens when given a choice. Such a "pollination syndrome", being due to flower color and orientation controlled by their genetics, ensures reproductive isolation and can be a cause of speciation.

Aquilegia petals show an enormous range of petal spur length diversity ranging from a centimeter to the 15 cm spurs of Aquilegia longissima. Selection from pollinator shifts is suggested to have driven these changes in nectar spur length. It was shown that this spur length diversity is achieved solely through changing cell shape, not cell number or cell size. This suggests that a simple microscopic change can result in a dramatic evolutionarily relevant morphological change.

Species

130 columbine species are accepted.

 * Aquilegia alpina L. – alpine columbine
 * Aquilegia amaliae Heldr. ex Boiss.
 * Aquilegia apuana (Marchetti) E.Nardi
 * Aquilegia aradanica Shaulo & Erst
 * Aquilegia aragonensis Willk.
 * Aquilegia atrata W.D.J.Koch – dark columbine
 * Aquilegia atrovinosa Popov ex Gamajun.
 * Aquilegia atwoodii S.L.Welsh
 * Aquilegia aurea Janka
 * Aquilegia ballii (Litard. & Maire) E.Nardi
 * Aquilegia baluchistanica Qureshi & Chaudhri
 * Aquilegia barbaricina Arrigoni & E.Nardi (doubtfully valid) – Barbaricina columbine
 * Aquilegia barnebyi Munz – oil shale columbine
 * Aquilegia barykinae Erst, Karakulov & Luferov
 * Aquilegia bashahrica Erst
 * Aquilegia bernardii Gren. & Godr. – Bernard's columbine
 * Aquilegia bertolonii Schott – Bertoloni columbine
 * Aquilegia blecicii Podobnik (doubtfully valid)
 * Aquilegia borodinii Schischk.
 * Aquilegia brevistyla Hook. – smallflower columbine
 * Aquilegia buergeriana Siebold & Zucc.
 * Aquilegia canadensis L. – Canadian columbine, wild columbine
 * Aquilegia cazorlensis Heywood
 * Aquilegia champagnatii Moraldo, E.Nardi & la Valva (doubtfully valid)
 * Aquilegia chaplinei Standl. ex Payson
 * Aquilegia chitralensis Qureshi & Chaudhri
 * Aquilegia chrysantha A.Gray – golden columbine
 * Aquilegia coerulea E.James – Colorado blue columbine
 * Aquilegia colchica Kem.-Nath.
 * Aquilegia confusa Rota
 * Aquilegia cossoniana (Maire & Sennen) Rivas Mart.
 * Aquilegia × cottia Beyer
 * Aquilegia cremnophila Bacch., Brullo, Congiu, Fenu, J.L.Garrido & Mattana
 * Aquilegia cymosa Qureshi & Chaudhri
 * Aquilegia daingolica Erst & Shaulo
 * Aquilegia desertorum (M.E.Jones) Cockerell ex A.Heller – desert columbine
 * Aquilegia desolaticola S.L.Welsh & N.D.Atwood – desolation columbine
 * Aquilegia dichroa Freyn
 * Aquilegia dinarica Beck - Dinaric columbine
 * Aquilegia discolor Levier & Leresche
 * Aquilegia dumeticola Jord.
 * Aquilegia ecalcarata Maxim.
 * Aquilegia einseleana F.W.Schultz – Einsele's columbine
 * Aquilegia elegantula Greene – western red columbine
 * Aquilegia × emodi Erst
 * Aquilegia eximia Van Houtte ex Planch. – Van Houtte's columbine
 * Aquilegia flabellata Siebold & Zucc. – fan columbine, Japanese wodamakinari (including A. akitensis)
 * Aquilegia flavescens S.Watson – yellow columbine
 * Aquilegia formosa Fisch. ex DC. – crimson columbine, western columbine
 * Aquilegia formosa var. truncata (Fisch. & C.A.Mey.) Baker (synonym Aquilegia truncata Fisch. & C.A.Mey.) – red columbine
 * Aquilegia fosteri (S.L.Welsh) S.L.Welsh
 * Aquilegia fragrans Benth. – fragrant columbine
 * Aquilegia ganboldii Kamelin & Gubanov
 * Aquilegia gegica Jabr.-Kolak.
 * Aquilegia glandulosa Fisch. ex Link. – Siberian columbine
 * Aquilegia gracillima Rech.f.
 * Aquilegia grata Maly ex Zimmeter
 * Aquilegia grubovii Erst, Luferov, Wei Wang & K.l.Xiang
 * Aquilegia guarensis Losa
 * Aquilegia hebeica Erst
 * Aquilegia hinckleyana Munz
 * Aquilegia hirsutissima Timb.-Lagr. ex Gariod
 * Aquilegia hispanica (Willk.) Borbás
 * Aquilegia holmgrenii S.L.Welsh & N.D.Atwood
 * Aquilegia × hybrida Sims – hybrids of Aquilegia vulgaris and Aquilegia canadensis
 * Aquilegia incurvata P.K.Hsiao - Qinling columbine
 * Aquilegia iulia E.Nardi
 * Aquilegia jonesii Parry – Jones' columbine
 * Aquilegia kamelinii Erst, Shaulo & Shmakov
 * Aquilegia kanawarensis Jacquem. ex Cambess.
 * Aquilegia kansuensis (Brühl) Erst
 * Aquilegia karatavica Mikeschin
 * Aquilegia karelinii (Baker) O.Fedtsch. & B.Fedtsch. - Afghan columbine
 * Aquilegia kitaibelii Schott
 * Aquilegia kozakii Masam.
 * Aquilegia kubanica I.M.Vassiljeva
 * Aquilegia lactiflora Kar. & Kir.
 * Aquilegia laramiensis A.Nelson – Laramie columbine
 * Aquilegia litardierei Briq.
 * Aquilegia longissima – Gray. – longspur columbine
 * Aquilegia lucensis E.Nardi
 * Aquilegia magellensis F.Conti & Soldano – Magella columbine
 * Aquilegia maimanica Rech.f.
 * Aquilegia marcelliana E.Nardi
 * Aquilegia × maruyamana Kitam.
 * Aquilegia meridionalis (Quézel & Contandr.) E.Nardi
 * Aquilegia micrantha Eastw. – Mancos columbine, Bluff City columbine
 * Aquilegia micrantha var. grahamii (S.L.Welsh & Goodrich) N.H.Holmgren & P.K.Holmgren – Graham's columbine
 * Aquilegia micrantha var. loriae (S.L.Welsh & N.D.Atwood) N.H.Holmgren & P.K.Holmgren – Lori's columbine
 * Aquilegia micrantha var. micrantha
 * Aquilegia microcentra Rech.f.
 * Aquilegia × miniana (J.F.Macbr. & Payson) Cronk
 * Aquilegia montsicciana Font Quer
 * Aquilegia moorcroftiana Wall. ex Royle
 * Aquilegia nevadensis Boiss. & Reut.
 * Aquilegia nigricans Baumg. – Bulgarian columbine
 * Aquilegia nikolicii Niketić & Cikovak
 * Aquilegia nivalis (Falc. ex Brühl) J.R.Drumm. & Hutch.
 * Aquilegia nugorensis Arrigoni & E.Nardi
 * Aquilegia nuragica Arrigoni & E.Nardi – Nuragica columbine
 * Aquilegia ochotensis Vorosch.
 * Aquilegia × oenipontana A.Kern. ex Riedl
 * Aquilegia olympica Boiss.
 * Aquilegia ophiolithica Barberis & E.Nardi
 * Aquilegia ottonis Orph. ex Boiss.
 * Aquilegia oxysepala Trautv. & C.A.Mey.
 * Aquilegia pancicii Degen
 * Aquilegia parviflora Ledeb.
 * Aquilegia paui Font Quer
 * Aquilegia pubescens Coville – Sierra columbine, Coville's columbine
 * Aquilegia pubiflora Wall. ex Royle
 * Aquilegia pyrenaica DC. – Pyrenean columbine
 * Aquilegia reuteri Boiss.
 * Aquilegia rockii Munz
 * Aquilegia saxifraga Casim.-Sor.Solanas & Cabezudo
 * Aquilegia saximontana Rydb. – Rocky Mountain columbine
 * Aquilegia scopulorum Tidestr. – blue columbine, Utah columbine
 * Aquilegia shockleyi Eastw. – desert columbine
 * Aquilegia sibirica Lam. – Siberian columbine
 * Aquilegia sicula (Strobl) E.Nardi
 * Aquilegia skinneri Hook.
 * Aquilegia sternbergii Rchb.
 * Aquilegia subscaposa Borbás
 * Aquilegia synakensis Shaulo & Erst
 * Aquilegia taygetea Orph.
 * Aquilegia tianschanica Butkov
 * Aquilegia transsilvanica Schur
 * Aquilegia turczaninovii Kamelin & Gubanov
 * Aquilegia tuvinica I.M.Vassiljeva
 * Aquilegia ullepitschii Pax
 * Aquilegia vicaria Nevski
 * Aquilegia viridiflora Pall. – green columbine, green-flowered columbine
 * Aquilegia viscosa Gouan
 * Aquilegia vitalii Gamajun.
 * Aquilegia vulgaris L. – common columbine, European columbine, granny's nightcap
 * Aquilegia wittmanniana Steven ex Fisch., C.A.Mey. & Avé-Lall.
 * Aquilegia xinjiangensis Erst
 * Aquilegia yabeana Kitag.
 * Aquilegia yangii Y.Luo & Lu Li
 * Aquilegia zapateri Pau

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Aquilegia


text:
Cache (computing)

In computing, a cache is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. A cache hit occurs when the requested data can be found in a cache, while a cache miss occurs when it cannot. Cache hits are served by reading data from the cache, which is faster than recomputing a result or reading from a slower data store; thus, the more requests that can be served from the cache, the faster the system performs.

To be cost-effective, caches must be relatively small. Nevertheless, caches are effective in many areas of computing because typical computer applications access data with a high degree of locality of reference. Such access patterns exhibit temporal locality, where data is requested that has been recently requested, and spatial locality, where data is requested that is stored near data that has already been requested.

Motivation
In memory design, there is an inherent trade-off between capacity and speed because larger capacity implies larger size and thus greater physical distances for signals to travel causing propagation delays. There is also a tradeoff between high-performance technologies such as SRAM and cheaper, easily mass-produced commodities such as DRAM, flash, or hard disks.

The buffering provided by a cache benefits one or both of latency and throughput (bandwidth).

A larger resource incurs a significant latency for access – e.g. it can take hundreds of clock cycles for a modern 4 GHz processor to reach DRAM. This is mitigated by reading large chunks into the cache, in the hope that subsequent reads will be from nearby locations and can be read from the cache. Prediction or explicit prefetching can be used to guess where future reads will come from and make requests ahead of time; if done optimally, the latency is bypassed altogether.

The use of a cache also allows for higher throughput from the underlying resource, by assembling multiple fine-grain transfers into larger, more efficient requests. In the case of DRAM circuits, the additional throughput may be gained by using a wider data bus.

Operation
Hardware implements cache as a block of memory for temporary storage of data likely to be used again. Central processing units (CPUs), solid-state drives (SSDs) and hard disk drives (HDDs) frequently include hardware-based cache, while web browsers and web servers commonly rely on software caching.

A cache is made up of a pool of entries. Each entry has associated data, which is a copy of the same data in some backing store. Each entry also has a tag, which specifies the identity of the data in the backing store of which the entry is a copy.

When the cache client (a CPU, web browser, operating system) needs to access data presumed to exist in the backing store, it first checks the cache. If an entry can be found with a tag matching that of the desired data, the data in the entry is used instead. This situation is known as a cache hit. For example, a web browser program might check its local cache on disk to see if it has a local copy of the contents of a web page at a particular URL. In this example, the URL is the tag, and the content of the web page is the data. The percentage of accesses that result in cache hits is known as the hit rate or hit ratio of the cache.

The alternative situation, when the cache is checked and found not to contain any entry with the desired tag, is known as a cache miss. This requires a more expensive access of data from the backing store. Once the requested data is retrieved, it is typically copied into the cache, ready for the next access.

During a cache miss, some other previously existing cache entry is typically removed in order to make room for the newly retrieved data. The heuristic used to select the entry to replace is known as the replacement policy. One popular replacement policy, least recently used (LRU), replaces the oldest entry, the entry that was accessed less recently than any other entry. More sophisticated caching algorithms also take into account the frequency of use of entries.

Writing policies

When a system writes data to cache, it must at some point write that data to the backing store as well. The timing of this write is controlled by what is known as the write policy. There are two basic writing approaches:
 * Write-through: write is done synchronously both to the cache and to the backing store.
 * Write-back: initially, writing is done only to the cache. The write to the backing store is postponed until the modified content is about to be replaced by another cache block.

A write-back cache is more complex to implement since it needs to track which of its locations have been written over and mark them as dirty for later writing to the backing store. The data in these locations are written back to the backing store only when they are evicted from the cache, a process referred to as a lazy write. For this reason, a read miss in a write-back cache will often require two memory backing store accesses to service: one for the write back, and one to retrieve the needed data. Other policies may also trigger data write-back. The client may make many changes to data in the cache, and then explicitly notify the cache to write back the data.

Since no data is returned to the requester on write operations, a decision needs to be made whether or not data would be loaded into the cache on write misses.
 * Write allocate (also called fetch on write): data at the missed-write location is loaded to cache, followed by a write-hit operation. In this approach, write misses are similar to read misses.
 * No-write allocate (also called write-no-allocate or write around): data at the missed-write location is not loaded to cache, and is written directly to the backing store. In this approach, data is loaded into the cache on read misses only.

Both write-through and write-back policies can use either of these write-miss policies, but usually they are paired.
 * A write-back cache uses write allocate, hoping for subsequent writes (or even reads) to the same location, which is now cached.
 * A write-through cache uses no-write allocate. Here, subsequent writes have no advantage, since they still need to be written directly to the backing store.

Entities other than the cache may change the data in the backing store, in which case the copy in the cache may become out-of-date or stale. Alternatively, when the client updates the data in the cache, copies of those data in other caches will become stale. Communication protocols between the cache managers that keep the data consistent are associated with cache coherence.

Prefetch
On a cache read miss, caches with a demand paging policy read the minimum amount from the backing store. A typical demand-paging virtual memory implementation reads one page of virtual memory (often 4 KB) from disk into the disk cache in RAM. A typical CPU reads a single L2 cache line of 128 bytes from DRAM into the L2 cache, and a single L1 cache line of 64 bytes from the L2 cache into the L1 cache.

Caches with a prefetch input queue or more general anticipatory paging policy go further—they not only read the data requested, but guess that the next chunk or two of data will soon be required, and so prefetch that data into the cache ahead of time. Anticipatory paging is especially helpful when the backing store has a long latency to read the first chunk and much shorter times to sequentially read the next few chunks, such as disk storage and DRAM.

A few operating systems go further with a loader that always pre-loads the entire executable into RAM. A few caches go even further, not only pre-loading an entire file, but also starting to load other related files that may soon be requested, such as the page cache associated with a prefetcher or the web cache associated with link prefetching.

CPU cache
Small memories on or close to the CPU can operate faster than the much larger main memory. Most CPUs since the 1980s have used one or more caches, sometimes in cascaded levels; modern high-end embedded, desktop and server microprocessors may have as many as six types of cache (between levels and functions). Some examples of caches with a specific function are the D-cache, I-cache and the translation lookaside buffer for the memory management unit (MMU).

GPU cache
Earlier graphics processing units (GPUs) often had limited read-only texture caches and used Swizzling (computer graphics) to improve 2D locality of reference. Cache misses would drastically affect performance, e.g. if mipmapping was not used. Caching was important to leverage 32-bit (and wider) transfers for texture data that was often as little as 4 bits per pixel.

As GPUs advanced (especially with General Purpose GPU compute shaders) they have developed progressively larger and increasingly general caches, including instruction caches for shaders, exhibiting increasingly common functionality with CPU caches. For example, GT200 architecture GPUs did not feature an L2 cache, while the GTX 490 GPU has 768 KB of last-level cache, the GTX TITAN GPU has 1536 KB of last-level cache, and the GTX 980 GPU has 2048 KB of last-level cache. These caches have grown to handle synchronisation primitives between threads and atomic operations, and interface with a CPU-style MMU.

DSPs
Digital signal processors have similarly generalised over the years. Earlier designs used scratchpad memory fed by direct memory access, but modern DSPs such as Qualcomm Hexagon often include a very similar set of caches to a CPU (e.g. Modified Harvard architecture with shared L2, split L1 I-cache and D-cache).

Translation lookaside buffer
A memory management unit (MMU) that fetches page table entries from main memory has a specialized cache, used for recording the results of virtual address to physical address translations. This specialized cache is called a translation lookaside buffer (TLB).

Information-centric networking
Information-centric networking (ICN) is an approach to evolve the Internet infrastructure away from a host-centric paradigm, based on perpetual connectivity and the end-to-end principle, to a network architecture in which the focal point is identified information (or content or data). Due to the inherent caching capability of the nodes in an ICN, it can be viewed as a loosely connected network of caches, which has unique requirements of caching policies. However, ubiquitous content caching introduces the challenge to content protection against unauthorized access, which requires extra care and solutions.

Unlike proxy servers, in ICN the cache is a network-level solution. Therefore, it has rapidly changing cache states and higher request arrival rates; moreover, smaller cache sizes further impose a different kind of requirements on the content eviction policies. In particular, eviction policies for ICN should be fast and lightweight. Various cache replication and eviction schemes for different ICN architectures and applications have been proposed.

Time aware least recently used (TLRU)
The Time aware Least Recently Used (TLRU) is a variant of LRU designed for the situation where the stored contents in cache have a valid life time. The algorithm is suitable in network cache applications, such as ICN, content delivery networks (CDNs) and distributed networks in general. TLRU introduces a new term: TTU (Time to Use). TTU is a time stamp of a content/page which stipulates the usability time for the content based on the locality of the content and the content publisher announcement. Owing to this locality based time stamp, TTU provides more control to the local administrator to regulate in network storage.

In the TLRU algorithm, when a piece of content arrives, a cache node calculates the local TTU value based on the TTU value assigned by the content publisher. The local TTU value is calculated by using a locally defined function. Once the local TTU value is calculated the replacement of content is performed on a subset of the total content stored in cache node. The TLRU ensures that less popular and small life content should be replaced with the incoming content.

Least frequent recently used (LFRU)
The Least Frequent Recently Used (LFRU) cache replacement scheme combines the benefits of LFU and LRU schemes. LFRU is suitable for 'in network' cache applications, such as ICN, CDNs and distributed networks in general. In LFRU, the cache is divided into two partitions called privileged and unprivileged partitions. The privileged partition can be defined as a protected partition. If content is highly popular, it is pushed into the privileged partition. Replacement of the privileged partition is done as follows: LFRU evicts content from the unprivileged partition, pushes content from privileged partition to unprivileged partition, and finally inserts new content into the privileged partition. In the above procedure the LRU is used for the privileged partition and an approximated LFU (ALFU) scheme is used for the unprivileged partition, hence the abbreviation LFRU. The basic idea is to filter out the locally popular contents with ALFU scheme and push the popular contents to one of the privileged partition.

Weather forecast
In 2011, the use of smartphones with weather forecasting options was overly taxing AccuWeather servers; two requests within the same park would generate separate requests. An optimization by edge-servers to truncate the GPS coordinates to fewer decimal places meant that the cached results from the earlier query would be used. The number of to-the-server lookups per day dropped by half.

Disk cache
While CPU caches are generally managed entirely by hardware, a variety of software manages other caches. The page cache in main memory, which is an example of disk cache, is managed by the operating system kernel.

While the disk buffer, which is an integrated part of the hard disk drive or solid state drive, is sometimes misleadingly referred to as "disk cache", its main functions are write sequencing and read prefetching. Repeated cache hits are relatively rare, due to the small size of the buffer in comparison to the drive's capacity. However, high-end disk controllers often have their own on-board cache of the hard disk drive's data blocks.

Finally, a fast local hard disk drive can also cache information held on even slower data storage devices, such as remote servers (web cache) or local tape drives or optical jukeboxes; such a scheme is the main concept of hierarchical storage management. Also, fast flash-based solid-state drives (SSDs) can be used as caches for slower rotational-media hard disk drives, working together as hybrid drives or solid-state hybrid drives (SSHDs).

Web cache
Web browsers and web proxy servers employ web caches to store previous responses from web servers, such as web pages and images. Web caches reduce the amount of information that needs to be transmitted across the network, as information previously stored in the cache can often be re-used. This reduces bandwidth and processing requirements of the web server, and helps to improve responsiveness for users of the web.

Web browsers employ a built-in web cache, but some Internet service providers (ISPs) or organizations also use a caching proxy server, which is a web cache that is shared among all users of that network.

Another form of cache is P2P caching, where the files most sought for by peer-to-peer applications are stored in an ISP cache to accelerate P2P transfers. Similarly, decentralised equivalents exist, which allow communities to perform the same task for P2P traffic, for example, Corelli.

Memoization
A cache can store data that is computed on demand rather than retrieved from a backing store. Memoization is an optimization technique that stores the results of resource-consuming function calls within a lookup table, allowing subsequent calls to reuse the stored results and avoid repeated computation. It is related to the dynamic programming algorithm design methodology, which can also be thought of as a means of caching.

Content delivery network
A content delivery network (CDN) is a network of distributed servers that deliver pages and other Web content to a user, based on the geographic locations of the user, the origin of the web page and the content delivery server.

CDNs began in the late 1990s as a way to speed up the delivery of static content, such as HTML pages, images and videos. By replicating content on multiple servers around the world and delivering it to users based on their location, CDNs can significantly improve the speed and availability of a website or application. When a user requests a piece of content, the CDN will check to see if it has a copy of the content in its cache. If it does, the CDN will deliver the content to the user from the cache.

Cloud storage gateway
A cloud storage gateway, also known as an edge filer, is a hybrid cloud storage device that connects a local network to one or more cloud storage services, typically object storage services such as Amazon S3. It provides a cache for frequently accessed data, providing high speed local access to frequently accessed data in the cloud storage service. Cloud storage gateways also provide additional benefits such as accessing cloud object storage through traditional file serving protocols as well as continued access to cached data during connectivity outages.

Other caches
The BIND DNS daemon caches a mapping of domain names to IP addresses, as does a resolver library.

Write-through operation is common when operating over unreliable networks (like an Ethernet LAN), because of the enormous complexity of the coherency protocol required between multiple write-back caches when communication is unreliable. For instance, web page caches and client-side network file system caches (like those in NFS or SMB) are typically read-only or write-through specifically to keep the network protocol simple and reliable.

Search engines also frequently make web pages they have indexed available from their cache. For example, Google provides a "Cached" link next to each search result. This can prove useful when web pages from a web server are temporarily or permanently inaccessible.

Database caching can substantially improve the throughput of database applications, for example in the processing of indexes, data dictionaries, and frequently used subsets of data.

A distributed cache uses networked hosts to provide scalability, reliability and performance to the application. The hosts can be co-located or spread over different geographical regions.

Buffer vs. cache
The semantics of a "buffer" and a "cache" are not totally different; even so, there are fundamental differences in intent between the process of caching and the process of buffering.

Fundamentally, caching realizes a performance increase for transfers of data that is being repeatedly transferred. While a caching system may realize a performance increase upon the initial (typically write) transfer of a data item, this performance increase is due to buffering occurring within the caching system.

With read caches, a data item must have been fetched from its residing location at least once in order for subsequent reads of the data item to realize a performance increase by virtue of being able to be fetched from the cache's (faster) intermediate storage rather than the data's residing location. With write caches, a performance increase of writing a data item may be realized upon the first write of the data item by virtue of the data item immediately being stored in the cache's intermediate storage, deferring the transfer of the data item to its residing storage at a later stage or else occurring as a background process. Contrary to strict buffering, a caching process must adhere to a (potentially distributed) cache coherency protocol in order to maintain consistency between the cache's intermediate storage and the location where the data resides. Buffering, on the other hand,

 * reduces the number of transfers for otherwise novel data amongst communicating processes, which amortizes overhead involved for several small transfers over fewer, larger transfers,
 * provides an intermediary for communicating processes which are incapable of direct transfers amongst each other, or
 * ensures a minimum data size or representation required by at least one of the communicating processes involved in a transfer.

With typical caching implementations, a data item that is read or written for the first time is effectively being buffered; and in the case of a write, mostly realizing a performance increase for the application from where the write originated. Additionally, the portion of a caching protocol where individual writes are deferred to a batch of writes is a form of buffering. The portion of a caching protocol where individual reads are deferred to a batch of reads is also a form of buffering, although this form may negatively impact the performance of at least the initial reads (even though it may positively impact the performance of the sum of the individual reads). In practice, caching almost always involves some form of buffering, while strict buffering does not involve caching.

A buffer is a temporary memory location that is traditionally used because CPU instructions cannot directly address data stored in peripheral devices. Thus, addressable memory is used as an intermediate stage. Additionally, such a buffer may be feasible when a large block of data is assembled or disassembled (as required by a storage device), or when data may be delivered in a different order than that in which it is produced. Also, a whole buffer of data is usually transferred sequentially (for example to hard disk), so buffering itself sometimes increases transfer performance or reduces the variation or jitter of the transfer's latency as opposed to caching where the intent is to reduce the latency. These benefits are present even if the buffered data are written to the buffer once and read from the buffer once.

A cache also increases transfer performance. A part of the increase similarly comes from the possibility that multiple small transfers will combine into one large block. But the main performance-gain occurs because there is a good chance that the same data will be read from cache multiple times, or that written data will soon be read. A cache's sole purpose is to reduce accesses to the underlying slower storage. Cache is also usually an abstraction layer that is designed to be invisible from the perspective of neighboring layers.

title: Cache (computing)


text:
Columbus, Indiana

Columbus is a city in, and the county seat of, Bartholomew County, Indiana, United States. The population was 50,474 at the 2020 census. The city is known for its architectural significance, having commissioned noted works of modern architecture and public art since the mid-20th century; the annual program Exhibit Columbus celebrates this legacy. Located about 40 mi south of Indianapolis, on the east fork of the White River, it is the state's 20th-largest city. It is the principal city of the Columbus, Indiana metropolitan statistical area, which encompasses all of Bartholomew County. Columbus is the birthplace of former Indiana Governor and former Vice President of the United States, Mike Pence.

Columbus is the headquarters of the engine company Cummins, Inc. In 2004 the city was named as one of "The Ten Most Playful Towns" by Nick Jr. Family Magazine. In the July 2005 edition of GQ magazine, Columbus was named as one of the "62 Reasons to Love Your Country". Columbus won the national contest "America in Bloom" in 2006, and in late 2008, National Geographic Traveler ranked Columbus 11th on its historic destinations list, describing the city as "authentic, unique, and unspoiled."

History
The land developed as Columbus was bought by General John Tipton and Luke Bonesteel in 1820. Tipton built a log cabin on Mount Tipton, a small hill overlooking White River and the surrounding flat, heavily forested and swampy valley. It held wetlands of the river. The town was first known as Tiptona, named in honor of Tipton. The town's name was changed to Columbus on March 20, 1821. Many people believe Tipton was upset by the name change, but no evidence exists to prove this. Nonetheless, he decided to leave the newly founded town and did not return.

Tipton was later appointed as the highway commissioner for the State of Indiana and was assigned to building a highway from Indianapolis, Indiana to Louisville, Kentucky. When the road approached Columbus, Tipton constructed the first bypass road ever built; it detoured south around the west side of Columbus en route to Seymour.

Joseph McKinney was the first to plot the town of Columbus, but no date was recorded. Local history books for years said that the land on which Columbus sits was donated by Tipton. But in 2003, Historic Columbus Indiana acquired a deed showing that Tipton had sold the land.

A ferry was established below the confluence of the Flatrock and Driftwood rivers, which form the White River. A village of three or four log cabins developed around the ferry landing, and a store was added in 1821. Later that year, Bartholomew County was organized by an act of the State Legislature and named to honor the famous Hoosier militiaman, General Joseph Bartholomew. Columbus was incorporated on June 28, 1864.

The first railroad in Indiana was constructed to Columbus from Madison, Indiana in 1844. This eventually became the Madison branch of the Pennsylvania Railroad. The railroad fostered the growth of the community into one of the largest in Indiana, and three more railroads reached the city by 1850.

The Crump Theatre in Columbus, built in 1889 by John Crump, is the oldest theater in Indiana. Today the building is included within the Columbus Historic District. Before it closed permanently in 2010, it was an all-ages venue with occasional musical performances.

The Cummins Bookstore began operations in the city in 1892. Until late 2007, when it closed, it was the oldest continually operated bookstore in Indiana.

The Irwin Union Bank building was built in 1954. It was designated as a National Historic Landmark by the National Park Service in 2001 in recognition of its unique architecture. The building consists of a one-story bank structure adjacent to a three-story office annex. A portion of the office annex was built along with the banking hall in 1954. The remaining larger portion, designed by Kevin Roche John Dinkeloo and Associates, was built in 1973. Eero Saarinen designed the bank building with its glazed hall to be set off against the blank background of its three-story brick annex. Two steel and glass vestibule connectors lead from the north side of this structure to the annex. The building was designed to distance the Irwin Union Bank from traditional banking architecture, which mostly echoed imposing, neoclassical style buildings of brick or stone. Tellers were behind iron bars and removed from their customers. Saarinen worked to develop a building that would welcome customers rather than intimidate them.

Economy
Columbus has been home to many manufacturing companies, including Noblitt-Sparks Industries, which built radios under the Arvin brand in the 1930s, and Arvin Industries, now Meritor After merging with Meritor Automotive on July 10, 2000, the headquarters of the newly created ArvinMeritor Industries was established in Troy, Michigan, the home of parent company, Rockwell International. It was announced in February 2011 that the company name would revert to Meritor, Inc.

Cummins is by far the region's largest employer, and the Infotech Park in Columbus accounts for a sizable number of research jobs in the city itself. Just south of Columbus are the North American headquarters of Toyota Material Handling, the world's largest material handling (forklift) manufacturer.

Other notable industries include architecture, a discipline for which Columbus is famous worldwide. The late Joseph Irwin Miller (then president and chairman of Cummins) launched the Cummins Foundation, a charitable program that helps subsidize a large number of architectural projects throughout the city by up-and-coming engineers and architects.

Early in the 20th century, Columbus also was home to a number of pioneering car manufacturers, including Reeves, which produced the unusual four-axle Octoauto and the twin rear-axle Sextoauto, both around 1911.

Geography
The Driftwood and Flatrock Rivers converge at Columbus to form the East Fork of the White River.

According to the 2010 census, Columbus has a total area of 27.886 sqmi, of which 27.5 sqmi (or 98.62%) is land and 0.386 sqmi (or 1.38%) is water.

2010 census
As of the census of 2010, there were 44,061 people, 17,787 households, and 11,506 families residing in the city. The population density was 1602.2 PD/sqmi. There were 19,700 housing units at an average density of 716.4 /sqmi. The racial makeup of the city was 86.9% White, 2.7% African American, 0.2% Native American, 5.6% Asian, 0.1% Pacific Islander, 2.5% from other races, and 2.0% from two or more races. Hispanic or Latino of any race were 5.8% of the population.

There were 17,787 households, of which 33.5% had children under the age of 18 living with them, 48.5% were married couples living together, 11.7% had a female householder with no husband present, 4.5% had a male householder with no wife present, and 35.3% were non-families. 29.7% of all households were made up of individuals, and 11.5% had someone living alone who was 65 years of age or older. The average household size was 2.43 and the average family size was 3.00.

The median age in the city was 37.1 years. 25.2% of residents were under the age of 18; 8.1% were between the ages of 18 and 24; 27.3% were from 25 to 44; 24.9% were from 45 to 64; and 14.4% were 65 years of age or older. The gender makeup of the city was 48.4% male and 51.6% female.

2000 census
As of the census of 2000, there were 39,059 people, 15,985 households, and 10,566 families residing in the city. The population density was 1,505.3 PD/sqmi. There were 17,162 housing units at an average density of 661.4 /sqmi. The racial makeup of the city was 91.32% White, 2.71% Black or African American, 0.13% Native American, 3.23% Asian, 0.05% Pacific Islander, 1.39% from other races, and 1.19% from two or more races. 2.81% of the population were Hispanic or Latino of any race.

There were 15,985 households, out of which 31.8% had children under the age of 18 living with them, 51.9% were married couples living together, 11.0% had a female householder with no husband present, and 33.9% were non-families. 29.1% of all households were composed of individuals, and 10.7% had someone living alone who was 65 years of age or older. The average household size was 2.39, and the average family size was 2.94.

In the city, the population was spread out, with 25.7% under the age of 18, 8.0% from 18 to 24 years, 29.5% from 25 to 44 years, 23.0% from 45 to 64 years, and 13.7% over the age of 65. The median age was 36 years. There were 92.8 males for every 100 females and 89.6 males for every 100 females over age 18.

The median income for a household in the city was $41,723, and the median income for a family was $52,296. Males had a median income of $40,367 versus $24,446 for females, and the per capita income was $22,055. About 6.5% of families and 8.1% of the population were below the poverty line, including 9.7% of those under age 18 and 8.8% of those age 65 or over.

Arts and culture
Columbus is a city known for its modern architecture and public art. J. Irwin Miller, 2nd CEO and a nephew of a co-founder of Cummins Inc., the Columbus-headquartered diesel engine manufacturer, instituted a program in which the Cummins Foundation paid the architects' fees, provided the client selected a firm from a list compiled by the foundation. The plan was initiated with public schools and was so successful that the foundation decided to offer such design support to other non-profit and civic organizations. The high number of notable public buildings and public art in the Columbus area, designed by such individuals as Eero Saarinen, I.M. Pei, Robert Venturi, Cesar Pelli, and Richard Meier, led to Columbus earning the nickname "Athens on the Prairie."

Seven buildings, constructed between 1942 and 1965, are National Historic Landmarks, and approximately 60 other buildings sustain the Bartholomew County seat's reputation as a showcase of modern architecture. National Public Radio once devoted an article to the town's architecture.

In 2015, Landmark Columbus was created as a program of Heritage Fund - The Community Foundation of Bartholomew county.

In addition to the Columbus Historic District and Irwin Union Bank, the city has numerous buildings listed on the National Register of Historic Places, including seven National Historic Landmarks of modernist architecture: Bartholomew County Courthouse, Columbus City Hall, First Baptist Church, First Christian Church, Haw Creek Leather Company, Mabel McDowell Elementary School, McEwen-Samuels-Marr House, McKinley School, Miller House, North Christian Church, and The Republic Newspaper Office.

The city is the basis for the 2017 film Columbus by independent filmmaker Kogonada. The film was shot on location in Columbus over 18 days in the summer of 2016.

National Historic Landmarks

 * First Baptist Church was designed by Harry Weese without windows and was dedicated in 1965. Its architectural features include a high-pitched roof and skylight.
 * First Christian Church was designed by Eliel Saarinen with a 160-ft (49m) tower and was dedicated in 1942. Among the first Modern religious buildings in America, it includes a sunken terrace and a 900-person sanctuary.
 * Irwin Union Bank was designed by Eero Saarinen and includes an addition by Kevin Roche. The building was dedicated in 1954 and is possibly the first financial institution in America to use glass walls and an open floor plan.
 * The Mabel McDowell School opened in 1960 and was designed by John Carl Warnecke early in his career, using his "early comprehensive diverse approach." The architect fee was the second to be funded by the Cummins Engine Foundation.
 * The Miller House and Garden was constructed in 1957 and was designed by Eero Saarinen and landscaped by Dan Kiley. One of the few residential designs by Saarinen, the home is an expression of International Style and was built for J. Irwin Miller of the Cummins Engine corporation and foundation.
 * North Christian Church was designed by Eero Saarinen and held its first worship in 1964. The hexagonal-shaped building includes a 192-ft (59m) spire and houses a Holtkamp organ.
 * The Republic Newspaper Office was designed by Myron Goldsmith at SOM.

Other notable Modern buildings

 * St. Bartholomew Catholic Church, by William Browne Jr. and Steven Risting
 * Cleo Rogers Memorial Library, by I. M. Pei
 * Columbus East High School, by Romaldo Giurgola
 * Commons Centre and Mall, by César Pelli
 * St. Peter's Lutheran Church, by Gunnar Birkerts
 * Lincoln Elementary School, by Gunnar Birkerts
 * Otter Creek Golf Course, by Harry Weese
 * Fire Station Number 4, by Robert Venturi
 * Columbus Regional Hospital, by Robert A.M. Stern

Notable historic buildings

 * Bartholomew County Courthouse by Isaac Hodgson
 * Columbus Power House by Harrison Albright
 * The Crump Theatre by Charles Franklin Sparrell

Public art

 * Chaos I by Jean Tinguely
 * Friendship Way by William A. Johnson, containing an untitled neon sculpture by Cork Marcheschi
 * Irwin Gardens at the Inn at Irwin Gardens
 * Large Arch by Henry Moore
 * 2 Arcs de 212.5˚ by Bernar Venet
 * Horses by Costantino Nivola
 * The Family by Harris Barron
 * Yellow Neon Chandelier and Persians by Dale Chihuly
 * C by Robert Indiana
 * Sermon on the Mount by Loja Saarinen and Eliel Saarinen
 * History and Mystery by William T. Wiley
 * Exploded Engine by Rudolph de Harak
 * Eos by Dessa Kirk

Exhibit Columbus
In May 2016, Landmark Columbus launched Exhibit Columbus as a way to continue the ambitious traditions of the past into the future. Exhibit Columbus features annual programming that alternates between symposium and exhibition years.

Sports
Columbus High School was home to footwear pioneer Chuck Taylor, who played basketball in Columbus before setting out to promote his now famous shoes and the sport of basketball before being inducted into the Naismith Memorial Basketball Hall of Fame.

Two local high schools compete within the state in various sports. Columbus North and Columbus East both have competitive athletics and have many notable athletes that go on to compete in college and beyond. Columbus North High School houses one of the largest high school gyms in the United States. CNHS vs CEHS

Indiana Diesels of the Premier Basketball League play their home games at the gymnasium at Ceraland Park, with plans to move to a proposed downtown sports complex in the near future.

Parks and recreation
Columbus boasts over 700 acres of parks and green space and over 20 miles of People Trails. These amenities, in addition to several athletic and community facilities, including Donner Aquatic Center, Lincoln Park Softball Complex, Hamilton Center Ice Arena, Clifty Park, Foundation for Youth/Columbus Gymnastics Center and The Commons, are managed and maintained by the Columbus Parks and Recreation Department.

Transit
ColumBUS provides bus service in the city with five routes operating Monday through Saturday.

Roads and highways
The north–south US Route 31 has been diverted to the northeastern part of the city. Interstate 65 bypasses Columbus to the west. Indiana Route 46 runs-east-west through the southern section of the city.

Railroads
Freight rail service is provided by the Louisville and Indiana Railroad (LIRC). The LIRC line runs in a north–south orientation along the western edge of Columbus.

The Pennsylvania Railroad's Kentuckyian (Chicago-Louisville) made stops in the city until 1968. The PRR and its successor, the Penn Central, ran the Florida-bound South Wind up to 1971.

The city has been earmarked as a location for a new Amtrak station along the Chicago-Indianapolis-Louisville rail corridor.

Airport
Columbus is served by the Columbus Municipal Airport (KBAK). It is located approximately 3 mi north of Columbus. The airport handles approximately 40,500 operations per year, with roughly 87% general aviation, 4% air taxi, 8% military and less than 1% commercial service. The airport has two concrete runways; a 6,401-foot runway with approved ILS and GPS approaches (Runway 5-23) and a 5,001 foot crosswind runway, also with GPS approaches, (Runway 14-32).

The nearest commercial airport which currently has scheduled airline service is Indianapolis International Airport (IND), located approximately 55 mi northwest of Columbus. Louisville Muhammad Ali International Airport and Cincinnati/Northern Kentucky International Airport are 78 mi to the south and 83 mi to the southeast, respectively.

Notable people
This is a list of notable people who were born in, or who currently live, or have lived in Columbus.
 * Ross Barbour and Don Barbour, singers, The Four Freshmen
 * Michael Evans Behling, actor
 * Kate Bruce, silent-film actress
 * Clessie Cummins, inventor, mechanic, salesman, and founder of engine manufacturer Cummins, Inc.
 * William H. Donner, businessman, industrialist and philanthropist
 * Tyler Duncan, golfer
 * Dutch Fehring, Major League Baseball player and Purdue coach
 * Arthur W Graham III, creator of first fully automatic electronic race timing & scoring system, long-time Indy 500 executive race official
 * Lee H. Hamilton, member of U.S. Congress and co-chair of the 9/11 Commission
 * Jordan Bryce Hutson, gospel musician
 * Jamie Hyneman, former host of MythBusters
 * Blair Kiel, Notre Dame and pro football quarterback
 * Debbi Lawrence, race walker
 * Scott McNealy, chairman and co-founder of Sun Microsystems
 * J. Irwin Miller, industrialist
 * Mike Moore, Minor League Baseball president
 * Jeff Osterhage, television and film actor
 * Bob Paris, best-selling author, award-winning public speaker and social change agent, former Mr. Universe
 * Greg Pence, U.S. representative since 2019, older brother of Mike Pence
 * Mike Pence, 50th Governor of Indiana (2013–2017), 48th Vice President of the United States (2017–2021), 2024 presidential candidate
 * Mike Phipps, Purdue All-American and #3 draft pick, NFL quarterback (Browns and Bears)
 * Frank Richman, Justice of the Indiana Supreme Court, judge at the Nuremberg trials
 * Terry Schmidt, NFL cornerback
 * Stephen Sprouse, fashion designer
 * Tony Stewart, auto racing champion driver and owner, USAC, 3-time NASCAR Cup Series Champion, owner of NASCAR Team; Stewart Haas Racing – SHR
 * Jill Tasker, television and voice actor
 * Chuck Taylor, shoe designer
 * Bruce Tinsley, creator of Mallard Fillmore
 * Herbert Wright, producer

Education
The Bartholomew Consolidated School Corporation (BCSC) is the local school district. High schools include:
 * Columbus East High School
 * Columbus North High School

Columbus has a public library, a branch of the Bartholomew County Public Library.

Secondary education includes Indiana University–Purdue University Columbus (IUPUC), an Ivy Tech campus, a Purdue Polytechnic campus, and an Indiana Wesleyan University education center.

title: Columbus, Indiana


text:
List of computer scientists

This is a list of computer scientists, people who do work in computer science, in particular researchers and authors.

Some persons notable as programmers are included here because they work in research as well as program. A few of these people pre-date the invention of the digital computer; they are now regarded as computer scientists because their work can be seen as leading to the invention of the computer. Others are mathematicians whose work falls within what would now be called theoretical computer science, such as complexity theory and algorithmic information theory.

A

 * Atta ur Rehman Khan – Mobile Cloud Computing, Cybersecurity, IoT
 * Wil van der Aalst – business process management, process mining, Petri nets
 * Scott Aaronson – quantum computing and complexity theory
 * Rediet Abebe – algorithms, artificial intelligence
 * Hal Abelson – intersection of computing and teaching
 * Serge Abiteboul – database theory
 * Samson Abramsky – game semantics
 * Leonard Adleman – RSA, DNA computing
 * Manindra Agrawal – polynomial-time primality testing
 * Luis von Ahn – human-based computation
 * Alfred Aho – compilers book, the 'a' in AWK
 * Frances E. Allen – compiler optimization
 * Gene Amdahl – supercomputer developer, Amdahl Corporation founder
 * David P. Anderson – volunteer computing
 * Lisa Anthony – natural user interfaces
 * Andrew Appel – compiler of text books
 * Cecilia R. Aragon – invented treap, human-centered data science
 * Bruce Arden – programming language compilers (GAT, Michigan Algorithm Decoder (MAD)), virtual memory architecture, Michigan Terminal System (MTS)
 * Kevin Ashton – pioneered and named The Internet of Things at M.I.T.
 * Sanjeev Arora – PCP theorem
 * Winifred "Tim" Alice Asprey – established the computer science curriculum at Vassar College
 * John Vincent Atanasoff – computer pioneer, creator of Atanasoff Berry Computer (ABC)
 * Shakuntala Atre – database theory
 * Lennart Augustsson – languages (Lazy ML, Cayenne), compilers (HBC Haskell, parallel Haskell front end, Bluespec SystemVerilog early), LPMud pioneer, NetBSD device drivers

B

 * Charles Babbage (1791–1871) – invented first mechanical computer called the supreme mathematician
 * Charles Bachman – American computer scientist, known for Integrated Data Store
 * Roland Carl Backhouse – mathematics of computer program construction, algorithmic problem solving, ALGOL
 * John Backus – FORTRAN, Backus–Naur form, first complete compiler
 * David F. Bacon – programming languages, garbage collection
 * David Bader
 * Victor Bahl
 * Anthony James Barr – SAS System
 * Jean Bartik (1924–2011) – one of the first computer programmers, on ENIAC (1946), one of the first Vacuum tube computers, back when "programming" involved using cables, dials, and switches to physically rewire the machine; worked with John Mauchly toward BINAC (1949), EDVAC (1949), UNIVAC (1951) to develop early "stored program" computers
 * Andrew Barto
 * Friedrich L. Bauer – Stack (data structure), Sequential Formula Translation, ALGOL, software engineering, Bauer–Fike theorem
 * Rudolf Bayer – B-tree
 * Gordon Bell (born 1934) – computer designer DEC VAX, author: Computer Structures
 * Steven M. Bellovin – network security
 * Cecilia Berdichevsky (1925–2010) – pioneering Argentinian computer scientist
 * Tim Berners-Lee – World Wide Web
 * Daniel J. Bernstein – qmail, software as protected speech
 * Peter Bernus
 * Jeff Bezos – founder of Amazon
 * Abhay Bhushan
 * Dines Bjørner – Vienna Development Method (VDM), RAISE
 * Gerrit Blaauw – one of the principal designers of the IBM System 360 line of computers
 * Sue Black
 * David Blei
 * Dorothy Blum – National Security Agency
 * Lenore Blum – complexity
 * Manuel Blum – cryptography
 * Barry Boehm – software engineering economics, spiral development
 * Corrado Böhm – author of the structured program theorem
 * Kurt Bollacker
 * Jeff Bonwick – invented slab allocation and ZFS
 * Grady Booch – Unified Modeling Language, Object Management Group
 * George Boole – Boolean logic
 * Andrew Booth – developed the first rotating drum storage device
 * Kathleen Booth – developed the first assembly language
 * Anita Borg (1949–2003) – American computer scientist, founder of Anita Borg Institute for Women and Technology
 * Bert Bos – Cascading Style Sheets
 * Mikhail Botvinnik – World Chess Champion, computer scientist and electrical engineer, pioneered early expert system AI and computer chess
 * Jonathan Bowen – Z notation, formal methods
 * Stephen R. Bourne – Bourne shell, portable ALGOL 68C compiler
 * Harry Bouwman (born 1953) – Dutch Information systems researcher, and Professor at the Åbo Akademi University
 * Robert S. Boyer – string searching, ACL2 theorem prover
 * Karlheinz Brandenburg – Main mp3 contributor
 * Gilles Brassard – BB84 protocol and quantum cryptography pioneer
 * Lawrence M. Breed – implementation of Iverson Notation (APL), co-developed APL\360, Scientific Time Sharing Corporation cofounder
 * Jack E. Bresenham – early computer-graphics contributions, including Bresenham's algorithm
 * Sergey Brin – co-founder of Google
 * David J. Brown – unified memory architecture, binary compatibility
 * Per Brinch Hansen (surname "Brinch Hansen") – RC 4000 multiprogramming system, operating system kernels, microkernels, monitors, concurrent programming, Concurrent Pascal, distributed computing & processes, parallel computing
 * Sjaak Brinkkemper – methodology of product software development
 * Fred Brooks – System 360, OS/360, The Mythical Man-Month, No Silver Bullet
 * Rod Brooks
 * Margaret Burnett – visual programming languages, end-user software engineering, and gender-inclusive software
 * Rod Burstall – languages COWSEL (renamed POP-1), POP-2, NPL, Hope; ACM SIGPLAN 2009 PL Achievement Award
 * Michael Butler – Event-B

C

 * Pino Caballero Gil – cryptography
 * Tracy Camp – wireless computing
 * Martin Campbell-Kelly – history of computing
 * Rosemary Candlin
 * Rod Canion – cofounder of Compaq Computer Corporation
 * Bryan Cantrill – invented DTrace
 * Luca Cardelli
 * John Carmack – codeveloped Doom
 * Michael Caspersen – programming methodology, education in OO programming, leadership in developing informatics education
 * Edwin Catmull – computer graphics
 * Vint Cerf – Internet, TCP/IP
 * Gregory Chaitin
 * Robert Cailliau – Belgian computer scientist
 * Zhou Chaochen – duration calculus
 * Peter Chen – entity-relationship model, data modeling, conceptual model
 * Leonardo Chiariglione – founder of MPEG
 * Tracy Chou – computer scientist and activist
 * Alonzo Church – mathematics of combinators, lambda calculus
 * Alberto Ciaramella – speech recognition, patent informatics
 * Edmund M. Clarke – model checking
 * John Cocke – RISC
 * Edgar F. Codd (1923–2003) – formulated the database relational model
 * Jacques Cohen – computer science professor
 * Ian Coldwater – computer security
 * Simon Colton – computational creativity
 * Alain Colmerauer – Prolog
 * Douglas Comer – Xinu
 * Paul Justin Compton – Ripple Down Rules
 * Richard W. Conway – CORC, CUPL, and PL/C languages and dialects; programming textbooks
 * Gordon Cormack – co-invented dynamic Markov compression
 * Stephen Cook – NP-completeness
 * James Cooley – Fast Fourier transform (FFT)
 * Danese Cooper – open-source software
 * Fernando J. Corbató – Compatible Time-Sharing System (CTSS), Multics
 * Kit Cosper – open-source software
 * Patrick Cousot – abstract interpretation
 * Ingemar Cox – digital watermarking
 * Damien Coyle – computational neuroscience, neuroimaging, neurotechnology, and brain-computer interface
 * Seymour Cray – Cray Research, supercomputer
 * Nello Cristianini – machine learning, pattern analysis, artificial intelligence
 * Jon Crowcroft – networking
 * W. Bruce Croft
 * Glen Culler – interactive computing, computer graphics, high performance computing
 * Haskell Curry

D

 * Luigi Dadda – designer of the Dadda multiplier
 * Ole-Johan Dahl – Simula, object-oriented programming
 * Ryan Dahl – founder of node.js project
 * Andries van Dam – computer graphics, hypertext
 * Samir Das – Wireless Networks, Mobile Computing, Vehicular ad hoc network, Sensor Networks, Mesh networking, Wireless ad hoc network
 * Neil Daswani – computer security, co-founder and co-director of Stanford Advanced Computer Security Program, co-founder of Dasient (acquired by Twitter), former chief information security of LifeLock and Symantec's Consumer Business Unit
 * Christopher J. Date – proponent of database relational model
 * Terry A. Davis – creator of TempleOS
 * Jeff Dean – Bigtable, MapReduce, Spanner of Google
 * Erik Demaine – computational origami
 * Tom DeMarco
 * Richard DeMillo – computer security, software engineering, educational technology
 * Dorothy E. Denning – computer security
 * Peter J. Denning – identified the use of an operating system's working set and balance set, President of ACM
 * Michael Dertouzos – Director of Massachusetts Institute of Technology (MIT) Laboratory for Computer Science (LCS) from 1974 to 2001
 * Alexander Dewdney
 * Robert Dewar – IFIP WG 2.1 member, ALGOL 68, chairperson; AdaCore cofounder, president, CEO
 * Vinod Dham – P5 Pentium processor
 * Jan Dietz (born 1945) (decay constant) – information systems theory and Design & Engineering Methodology for Organizations
 * Whitfield Diffie (born 1944) (linear response function) – public key cryptography, Diffie–Hellman key exchange
 * Edsger W. Dijkstra – algorithms, Dijkstra's algorithm, Go To Statement Considered Harmful, semaphore (programming), IFIP WG 2.1 member
 * Matthew Dillon – DragonFly BSD with LWKT, vkernel OS-level virtualisation, file systems: HAMMER1, HAMMER2
 * Alan Dix – wrote important university level textbook on human–computer interaction
 * Jack Dongarra – linear algebra high performance computing (HCI)
 * Marco Dorigo – ant colony optimization
 * Paul Dourish – human computer interaction
 * Charles Stark Draper (1901–1987) – designer of Apollo Guidance Computer, "father of inertial navigation", MIT professor
 * Susan Dumais – information retrieval
 * Adam Dunkels – Contiki, lwIP, uIP, protothreads
 * Jon Michael Dunn – founding dean of Indiana University School of Informatics, information based logics especially relevance logic
 * Schahram Dustdar – Distributed Systems, TU Wien, Austria

E

 * Peter Eades – graph drawing
 * Annie Easley
 * Wim Ebbinkhuijsen – COBOL
 * John Presper Eckert – ENIAC
 * Alan Edelman – Edelman's Law, stochastic operator, Interactive Supercomputing, Julia (programming language) cocreator, high performance computing, numerical computing
 * Brendan Eich – JavaScript, Mozilla
 * Philip Emeagwali – supercomputing
 * E. Allen Emerson – model checking
 * Douglas Engelbart – tiled windows, hypertext, computer mouse
 * Barbara Engelhardt – latent variable models, genomics, quantitative trait locus (QTL)
 * David Eppstein
 * Andrey Ershov – languages ALPHA, Rapira; first Soviet time-sharing system AIST-0, electronic publishing system RUBIN, multiprocessing workstation MRAMOR, IFIP WG 2.1 member, Aesthetics and the Human Factor in Programming
 * Don Estridge (1937–1985) – led development of original IBM Personal Computer (PC); known as "father of the IBM PC"
 * Oren Etzioni – MetaCrawler, Netbot
 * Christopher Riche Evans
 * David C. Evans – computer graphics
 * Shimon Even

F

 * Scott Fahlman
 * Edward Feigenbaum – intelligence
 * Edward Felten – computer security
 * Tim Finin
 * Raphael Finkel
 * Donald Firesmith
 * Gary William Flake
 * Tommy Flowers – Colossus computer
 * Robert Floyd – NP-completeness
 * Sally Floyd – Internet congestion control
 * Lawrence J. Fogel – evolutionary programming
 * James D. Foley
 * Ken Forbus
 * L. R. Ford, Jr.
 * Lance Fortnow
 * Mahmoud Samir Fayed – PWCT, Ring
 * Martin Fowler
 * Robert France
 * Herbert W. Franke
 * Edward Fredkin
 * Yoav Freund
 * Daniel P. Friedman
 * Charlotte Froese Fischer – computational theoretical physics
 * Ping Fu
 * Xiaoming Fu
 * Kunihiko Fukushima – neocognitron, artificial neural networks, convolutional neural network architecture, unsupervised learning, deep learning
 * D. R. Fulkerson

G

 * Richard P. Gabriel – Maclisp, Common Lisp, Worse is Better, League for Programming Freedom, Lucid Inc., XEmacs
 * Zvi Galil
 * Bernard Galler – MAD (programming language)
 * Hector Garcia-Molina
 * Michael Garey – NP-completeness
 * Hugo de Garis
 * Bill Gates – cofounder of Microsoft
 * David Gelernter
 * Lisa Gelobter – was the Chief Digital Service Officer for the U.S. Department of Education, founder of teQuitable
 * Charles Geschke
 * Zoubin Ghahramani
 * Sanjay Ghemawat
 * Jeremy Gibbons – generic programming, functional programming, formal methods, computational biology, bioinformatics
 * Juan E. Gilbert – human-centered computing
 * Lee Giles – CiteSeer
 * Seymour Ginsburg – formal languages, automata theory, AFL theory, database theory
 * Robert L. Glass
 * Kurt Gödel – computability; not a computer scientist per se, but his work was invaluable in the field
 * Ashok Goel
 * Joseph Goguen
 * E. Mark Gold – Language identification in the limit
 * Adele Goldberg – Smalltalk
 * Andrew V. Goldberg – algorithms, algorithm engineering
 * Ian Goldberg – cryptographer, off-the-record messaging
 * Judy Goldsmith – computational complexity theory, decision theory, and computer ethics
 * Oded Goldreich – cryptography, computational complexity theory
 * Shafi Goldwasser – cryptography, computational complexity theory
 * Gene Golub – Matrix computation
 * Martin Charles Golumbic – algorithmic graph theory
 * Gastón Gonnet – cofounder of Waterloo Maple Inc.
 * Ian Goodfellow – machine learning
 * James Gosling – Network extensible Window System (NeWS), Java
 * Paul Graham – Viaweb, On Lisp, Arc
 * Robert M. Graham – programming language compilers (GAT, Michigan Algorithm Decoder (MAD)), virtual memory architecture, Multics
 * Susan L. Graham – compilers, programming environments
 * Jim Gray – database
 * Sheila Greibach – Greibach normal form, Abstract family of languages (AFL) theory
 * David Gries – The Science of Programming, Interference freedom, Member Emeritus, IFIP WG 2.3 on Programming Methodology
 * Robert Griesemer – Go language
 * Ralph Griswold – SNOBOL
 * Bill Gropp – Message Passing Interface, Portable, Extensible Toolkit for Scientific Computation (PETSc)
 * Tom Gruber – ontology engineering
 * Shelia Guberman – handwriting recognition
 * Ramanathan V. Guha – Resource Description Framework (RDF), Netscape, RSS, Epinions
 * Neil J. Gunther – computer performance analysis, capacity planning
 * Jürg Gutknecht – with Niklaus Wirth: Lilith computer; Modula-2, Oberon, Zonnon programming languages; Oberon operating system
 * Michael Guy – Phoenix, work on number theory, computer algebra, higher dimension polyhedra theory; with John Horton Conway
 * Giri Topper - Topper of Anna University and Programmer

H

 * Nico Habermann – operating systems, software engineering, inter-process communication, process synchronization, deadlock avoidance, software verification, programming languages: ALGOL 60, BLISS, Pascal, Ada
 * Philipp Matthäus Hahn – mechanical calculator
 * Eldon C. Hall – Apollo Guidance Computer
 * Wendy Hall
 * Joseph Halpern
 * Margaret Hamilton – ultra-reliable software design, Apollo program space missions
 * Richard Hamming – Hamming code, founder of the Association for Computing Machinery
 * Jiawei Han – data mining
 * Frank Harary – graph theory
 * Brian Harris – machine translation research, Canada's first computer-assisted translation course, natural translation theory, community interpreting (Critical Link)
 * Juris Hartmanis – computational complexity theory
 * Johan Håstad – computational complexity theory
 * Les Hatton – software failure and vulnerabilities
 * Igor Hawryszkiewycz (born 1948) – American computer scientist and organizational theorist
 * He Jifeng – provably correct systems
 * Eric Hehner – predicative programming, formal methods, quote notation, ALGOL
 * Martin Hellman – encryption
 * Gernot Heiser – operating system teaching, research, commercialising, Open Kernel Labs, OKL4, Wombat
 * James Hendler – Semantic Web
 * John L. Hennessy – computer architecture
 * Andrew Herbert
 * Carl Hewitt
 * Kelsey Hightower – open source, cloud computing
 * Danny Hillis – Connection Machine
 * Geoffrey Hinton
 * Julia Hirschberg
 * Tin Kam Ho – artificial intelligence, machine learning
 * C. A. R. Hoare – logic, rigor, communicating sequential processes (CSP)
 * Louis Hodes (1934–2008) – Lisp, pattern recognition, logic programming, cancer research
 * Betty Holberton – ENIAC programmer, developed the first Sort Merge Generator
 * John Henry Holland – genetic algorithms
 * Herman Hollerith (1860–1929) – invented recording of data on a machine readable medium, using punched cards
 * Gerard Holzmann – software verification, logic model checking (SPIN)
 * John Hopcroft – compilers
 * Admiral Grace Hopper (1906–1992) – developed early compilers: FLOW-Matic, COBOL; worked on UNIVAC; gave speeches on computer history, where she gave out nano-seconds
 * Eric Horvitz – artificial intelligence
 * Alston Householder
 * Paul Hudak (1952–2015) – Haskell language design, textbooks on it and computer music
 * David A. Huffman (1925–1999) – Huffman coding, used in data compression
 * John Hughes – structuring computations with arrows; QuickCheck randomized program testing framework; Haskell language design
 * Roger Hui – co-created J language
 * Watts Humphrey (1927–2010) – Personal Software Process (PSP), Software quality, Team Software Process (TSP)
 * Sandra Hutchins (born 1946) – speech recognition

I

 * Jean Ichbiah – Ada
 * Roberto Ierusalimschy – Lua (programming language)
 * Dan Ingalls – Smalltalk, BitBlt, Lively Kernel
 * Mary Jane Irwin
 * Kenneth E. Iverson – APL, J

J

 * Ivar Jacobson – Unified Modeling Language, Object Management Group
 * Anil K. Jain (born 1948)
 * Ramesh Jain
 * Jonathan James
 * David S. Johnson
 * Stephen C. Johnson
 * Angie Jones – software engineer and automation architect. Holds 26 patented inventions in the United States of America and Japan
 * Cliff Jones – Vienna Development Method (VDM)
 * Michael I. Jordan
 * Mathai Joseph
 * Aravind K. Joshi
 * Bill Joy (born 1954) – Sun Microsystems, BSD UNIX, vi, csh
 * Dan Jurafsky – natural language processing

K

 * William Kahan – numerical analysis
 * Robert E. Kahn – TCP/IP
 * Avinash Kak – digital image processing
 * Poul-Henning Kamp – invented GBDE, FreeBSD Jails, Varnish cache
 * David Karger
 * Richard Karp – NP-completeness
 * Narendra Karmarkar – Karmarkar's algorithm
 * Marek Karpinski – NP optimization problems
 * Ted Kaehler – Smalltalk, Squeak, HyperCard
 * Alan Kay – Dynabook, Smalltalk, overlapping windows
 * Neeraj Kayal – AKS primality test
 * Manolis Kellis – computational biology
 * John George Kemeny – the language BASIC
 * Ken Kennedy – compiling for parallel and vector machines
 * Brian Kernighan (born 1942) – Unix, the 'k' in AWK
 * Carl Kesselman – grid computing
 * Gregor Kiczales – CLOS, reflective programming, aspect-oriented programming
 * Peter T. Kirstein – Internet
 * Stephen Cole Kleene – Kleene closure, recursion theory
 * Dan Klein – Natural language processing, Machine translation
 * Leonard Kleinrock – ARPANET, queueing theory, packet switching, hierarchical routing
 * Donald Knuth – The Art of Computer Programming, MIX/MMIX, TeX, literate programming
 * Andrew Koenig – C++
 * Daphne Koller – Artificial intelligence, bayesian network
 * Michael Kölling – BlueJ
 * Andrey Nikolaevich Kolmogorov – algorithmic complexity theory
 * Janet L. Kolodner – case-based reasoning
 * David Korn – KornShell
 * Kees Koster – ALGOL 68
 * Robert Kowalski – logic programming
 * John Koza – genetic programming
 * John Krogstie – SEQUAL framework
 * Joseph Kruskal – Kruskal's algorithm
 * Maarja Kruusmaa – underwater roboticist
 * Thomas E. Kurtz (born 1928) – BASIC programming language; Dartmouth College computer professor

L

 * Richard E. Ladner
 * Monica S. Lam
 * Leslie Lamport – algorithms for distributed computing, LaTeX
 * Butler Lampson – SDS 940, founding member Xerox PARC, Xerox Alto, Turing Award
 * Peter Landin – ISWIM, J operator, SECD machine, off-side rule, syntactic sugar, ALGOL, IFIP WG 2.1 member, advanced lambda calculus to model programming languages (aided functional programming), denotational semantics
 * Tom Lane – Independent JPEG Group, PostgreSQL, Portable Network Graphics (PNG)
 * Börje Langefors
 * Chris Lattner – creator of Swift (programming language) and LLVM compiler infrastructure
 * Steve Lawrence
 * Edward D. Lazowska
 * Joshua Lederberg
 * Manny M Lehman
 * Charles E. Leiserson – cache-oblivious algorithms, provably good work-stealing, coauthor of Introduction to Algorithms
 * Douglas Lenat – artificial intelligence, Cyc
 * Yann LeCun
 * Rasmus Lerdorf – PHP
 * Max Levchin – Gausebeck–Levchin test and PayPal
 * Leonid Levin – computational complexity theory
 * Kevin Leyton-Brown – artificial intelligence
 * J.C.R. Licklider
 * David Liddle
 * Jochen Liedtke – microkernel operating systems Eumel, L3, L4
 * John Lions – Lions' Commentary on UNIX 6th Edition, with Source Code (Lions Book)
 * Charles H. Lindsey – IFIP WG 2.1 member, Revised Report on ALGOL 68
 * Richard J. Lipton – computational complexity theory
 * Barbara Liskov – programming languages
 * Yanhong Annie Liu – programming languages, algorithms, program design, program optimization, software systems, optimizing, analysis, and transformations, intelligent systems, distributed computing, computer security, IFIP WG 2.1 member
 * Darrell Long – computer data storage, computer security
 * Patricia D. Lopez – broadening participation in computing
 * Gillian Lovegrove
 * Ada Lovelace – first programmer
 * David Luckham – Lisp, Automated theorem proving, Stanford Pascal Verifier, Complex event processing, Rational Software cofounder (Ada compiler)
 * Eugene Luks
 * Nancy Lynch

M

 * Nadia Magnenat Thalmann – computer graphics, virtual actor
 * Tom Maibaum
 * Simon Marlow – Haskell developer, book author; co-developer: Glasgow Haskell Compiler, Haxl remote data access library
 * Zohar Manna – fuzzy logic
 * James Martin – information engineering
 * Robert C. Martin (Uncle Bob) – software craftsmanship
 * John Mashey
 * Yuri Matiyasevich – solving Hilbert's tenth problem
 * Yukihiro Matsumoto – Ruby (programming language)
 * John Mauchly (1907–1980) – designed ENIAC, first general-purpose electronic digital computer, and EDVAC, BINAC and UNIVAC I, the first commercial computer; worked with Jean Bartik on ENIAC and Grace Murray Hopper on UNIVAC
 * Ujjwal Maulik (born 1965) multi-objective clustering and Bioinformatics
 * Derek McAuley – ubiquitous computing, computer architecture, networking
 * Conor McBride – researches type theory, functional programming; cocreated Epigram (programming language) with James McKinna; member IFIP Working Group 2.1 on Algorithmic Languages and Calculi
 * John McCarthy – Lisp (programming language), ALGOL, IFIP WG 2.1 member, artificial intelligence
 * Andrew McCallum
 * Douglas McIlroy – macros, pipes, Unix philosophy
 * Chris McKinstry – artificial intelligence, Mindpixel
 * Marshall Kirk McKusick – BSD, Berkeley Fast File System
 * Lambert Meertens – ALGOL 68, IFIP WG 2.1 member, ABC (programming language)
 * Kurt Mehlhorn – algorithms, data structures, LEDA
 * Dora Metcalf – entrepreneur, engineer and mathematician
 * Bertrand Meyer – Eiffel (programming language)
 * Silvio Micali – cryptography
 * Robin Milner – ML (programming language)
 * Jack Minker – database logic
 * Marvin Minsky – artificial intelligence, perceptrons, Society of Mind
 * James G. Mitchell – WATFOR compiler, Mesa (programming language), Spring (operating system), ARM architecture
 * Tom M. Mitchell
 * Arvind Mithal – formal verification of large digital systems, developing dynamic dataflow architectures, parallel computing programming languages (Id, pH), compiling on parallel machines
 * Paul Mockapetris – Domain Name System (DNS)
 * Cleve Moler – numerical analysis, MATLAB
 * Faron Moller – concurrency theory
 * John P. Moon – inventor, Apple Inc.
 * Charles H. Moore – Forth language
 * Edward F. Moore – Moore machine
 * Gordon Moore – Moore's law
 * J Strother Moore – string searching, ACL2 theorem prover
 * Roger Moore – co-developed APL\360, created IPSANET, co-founded I. P. Sharp Associates
 * Hans Moravec – robotics
 * Carroll Morgan – formal methods
 * Robert Tappan Morris – Morris worm
 * Joel Moses – Macsyma
 * Rajeev Motwani – randomized algorithm
 * Oleg A. Mukhanov – quantum computing developer, co-founder and CTO of SeeQC
 * Stephen Muggleton – Inductive Logic Programming
 * Klaus-Robert Müller – machine learning, artificial intelligence
 * Alan Mycroft – programming languages
 * Brad A. Myers – human-computer interaction

N

 * Mihai Nadin – anticipation research
 * Makoto Nagao – machine translation, natural language processing, digital library
 * Frieder Nake – pioneered computer arts
 * Bonnie Nardi – human–computer interaction
 * Peter Naur (1928–2016) – Backus–Naur form (BNF), ALGOL 60, IFIP WG 2.1 member
 * Roger Needham – computer security
 * James G. Nell – Generalised Enterprise Reference Architecture and Methodology (GERAM)
 * Greg Nelson (1953–2015) – satisfiability modulo theories, extended static checking, program verification, Modula-3 committee, Simplify theorem prover in ESC/Java
 * Bernard de Neumann – massively parallel autonomous cellular processor, software engineering research
 * Klara Dan von Neumann (1911–1963) – early computers, ENIAC programmer and control designer
 * John von Neumann (1903–1957) – early computers, von Neumann machine, set theory, functional analysis, mathematics pioneer, linear programming, quantum mechanics
 * Allen Newell – artificial intelligence, Computer Structures
 * Max Newman – Colossus computer, MADM
 * Andrew Ng – artificial intelligence, machine learning, robotics
 * Nils John Nilsson (1933–2019) – artificial intelligence
 * G.M. Nijssen – Nijssen's Information Analysis Methodology (NIAM) object–role modeling
 * Tobias Nipkow – proof assistance
 * Maurice Nivat – theoretical computer science, Theoretical Computer Science journal, ALGOL, IFIP WG 2.1 member
 * Phiwa Nkambule – Fintech, artificial intelligence, machine learning, robotics
 * Jerre Noe – computerized banking
 * Peter Nordin – artificial intelligence, genetic programming, evolutionary robotics
 * Donald Norman – user interfaces, usability
 * Peter Norvig – artificial intelligence, Director of Research at Google
 * George Novacky – University of Pittsburgh: assistant department chair, senior lecturer in computer science, assistant dean of CAS for undergraduate studies
 * Kristen Nygaard – Simula, object-oriented programming

O

 * Martin Odersky – Scala programming language
 * Peter O'Hearn – separation logic, bunched logic, Infer Static Analyzer
 * T. William Olle – Ferranti Mercury
 * Steve Omohundro
 * Severo Ornstein
 * John O'Sullivan – Wi-Fi
 * John Ousterhout – Tcl programming language
 * Mark Overmars – video game programming
 * Susan Owicki – interference freedom

P

 * Larry Page – co-founder of Google
 * Sankar Pal
 * Paritosh Pandya
 * Christos Papadimitriou
 * David Park (1935–1990) – first Lisp implementation, expert in fairness, program schemas, bisimulation in concurrent computing
 * David Parnas – information hiding, modular programming
 * DJ Patil – former Chief Data Scientist of United States
 * Yale Patt – Instruction-level parallelism, speculative architectures
 * David Patterson – reduced instruction set computer (RISC), RISC-V, redundant arrays of inexpensive disks (RAID), Berkeley Network of Workstations (NOW)
 * Mike Paterson – algorithms, analysis of algorithms (complexity)
 * Mihai Pătraşcu – data structures
 * Lawrence Paulson – ML
 * Randy Pausch (1960–2008) – human–computer interaction, Carnegie professor, "Last Lecture"
 * Juan Pavón – software agents
 * Judea Pearl – artificial intelligence, search algorithms
 * Alan Perlis – Programming Pearls
 * Radia Perlman – spanning tree protocol
 * Pier Giorgio Perotto – computer designer at Olivetti, designer of the Programma 101 programmable calculator
 * Rózsa Péter – recursive function theory
 * Simon Peyton Jones – functional programming, Glasgow Haskell Compiler, C--
 * Kathy Pham – data, artificial intelligence, civic technology, healthcare, ethics
 * Roberto Pieraccini – speech technologist, engineering director at Google
 * Keshav Pingali – IEEE Computer Society Charles Babbage Award, ACM Fellow (2012)
 * Gordon Plotkin
 * Amir Pnueli – temporal logic
 * Willem van der Poel – computer graphics, robotics, geographic information systems, imaging, multimedia, virtual environments, games
 * Robin Popplestone – COWSEL (renamed POP-1), POP-2, POP-11 languages, Poplog IDE; Freddy II robot
 * Cicely Popplewell (1920–1995) – British software engineer in 1960s
 * Emil Post – mathematics
 * Jon Postel – Internet
 * Franco Preparata – computer engineering, computational geometry, parallel algorithms, computational biology
 * William H. Press – numerical algorithms

R

 * Rapelang Rabana
 * Grzegorz Rozenberg – natural computing, automata theory, graph transformations and concurrent systems
 * Michael O. Rabin – nondeterministic machine
 * Dragomir R. Radev – natural language processing, information retrieval
 * T. V. Raman – accessibility, Emacspeak
 * Brian Randell – ALGOL 60, software fault tolerance, dependability, pre-1950 history of computing hardware
 * Anders P. Ravn – Duration Calculus
 * Raj Reddy – artificial intelligence
 * David P. Reed
 * Trygve Reenskaug – model–view–controller (MVC) software architecture pattern
 * John C. Reynolds – continuations, definitional interpreters, defunctionalization, Forsythe, Gedanken language, intersection types, polymorphic lambda calculus, relational parametricity, separation logic, ALGOL
 * Joyce K. Reynolds – Internet
 * Reinder van de Riet – Editor: Europe of Data and Knowledge Engineering, COLOR-X event modeling language
 * Bernard Richards – medical informatics
 * Martin Richards – BCPL
 * Adam Riese
 * C. J. van Rijsbergen
 * Dennis Ritchie – C (programming language), Unix
 * Ron Rivest – RSA, MD5, RC4
 * Ken Robinson – formal methods
 * Colette Rolland – REMORA methodology, meta modelling
 * John Romero – codeveloped Doom
 * Azriel Rosenfeld
 * Douglas T. Ross – Automatically Programmed Tools (APT), Computer-aided design, structured analysis and design technique, ALGOL X
 * Guido van Rossum – Python (programming language)
 * M. A. Rothman – UEFI
 * Winston W. Royce – waterfall model
 * Rudy Rucker – mathematician, writer, educator
 * Steven Rudich – complexity theory, cryptography
 * Jeff Rulifson
 * James Rumbaugh – Unified Modeling Language, Object Management Group
 * Peter Ružička – Slovak computer scientist and mathematician

S

 * George Sadowsky
 * Mehrnoosh Sadrzadeh – compositional models of meaning, machine learning
 * Umar Saif
 * Gerard Salton – information retrieval
 * Jean E. Sammet – programming languages
 * Claude Sammut – artificial intelligence researcher
 * Carl Sassenrath – operating systems, programming languages, Amiga, REBOL
 * Mahadev Satyanarayanan – file systems, distributed systems, mobile computing, pervasive computing
 * Walter Savitch – discovery of complexity class NL, Savitch's theorem, natural language processing, mathematical linguistics
 * Jonathan Schaeffer
 * Wilhelm Schickard – one of the first calculating machines
 * Jürgen Schmidhuber – artificial intelligence, deep learning, artificial neural networks, recurrent neural networks, Gödel machine, artificial curiosity, meta-learning
 * Steve Schneider – formal methods, security
 * Bruce Schneier – cryptography, security
 * Fred B. Schneider – concurrent and distributed computing
 * Sarita Schoenebeck – human–computer interaction
 * Glenda Schroeder – command-line shell, e-mail
 * Bernhard Schölkopf – machine learning, artificial intelligence
 * Dana Scott – domain theory
 * Michael L. Scott – programming languages, algorithms, distributed computing
 * Robert Sedgewick – algorithms, data structures
 * Ravi Sethi – compilers, 2nd Dragon Book
 * Nigel Shadbolt
 * Adi Shamir – RSA, cryptanalysis
 * Claude Shannon – information theory
 * David E. Shaw – computational finance, computational biochemistry, parallel architectures
 * Cliff Shaw – systems programmer, artificial intelligence
 * Scott Shenker – networking
 * Shashi Shekhar – spatial computing
 * Ben Shneiderman – human–computer interaction, information visualization
 * Edward H. Shortliffe – MYCIN (medical diagnostic expert system)
 * Daniel Siewiorek – electronic design automation, reliability computing, context aware mobile computing, wearable computing, computer-aided design, rapid prototyping, fault tolerance
 * Joseph Sifakis – model checking
 * Herbert A. Simon – artificial intelligence
 * Munindar P. Singh – multiagent systems, software engineering, artificial intelligence, social networks
 * Ramesh Sitaraman – helped build Akamai's high performance network
 * Daniel Sleator – splay tree, amortized analysis
 * Aaron Sloman – artificial intelligence and cognitive science
 * Arne Sølvberg – information modelling
 * Brian Cantwell Smith – reflective programming, 3lisp
 * David Canfield Smith – invented interface icons, programming by demonstration, developed graphical user interface, Xerox Star; Xerox PARC researcher, cofounded Dest Systems, Cognition
 * Steven Spewak – enterprise architecture planning
 * Carol Spradling
 * Robert Sproull
 * Rohini Kesavan Srihari – information retrieval, text analytics, multilingual text mining
 * Sargur Srihari – pattern recognition, machine learning, computational criminology, CEDAR-FOX
 * Maciej Stachowiak – GNOME, Safari, WebKit
 * Richard Stallman (born 1953) – GNU Project
 * Ronald Stamper
 * Thad Starner
 * Richard E. Stearns – computational complexity theory
 * Guy L. Steele, Jr. – Scheme, Common Lisp
 * Thomas Sterling – creator of Beowulf clusters
 * Alexander Stepanov – generic programming
 * W. Richard Stevens (1951–1999) – author of books, including TCP/IP Illustrated and Advanced Programming in the Unix Environment
 * Larry Stockmeyer – computational complexity, distributed computing
 * Salvatore Stolfo – computer security, machine learning
 * Michael Stonebraker – relational database practice and theory
 * Olaf Storaasli – finite element machine, linear algebra, high performance computing
 * Christopher Strachey – denotational semantics
 * Volker Strassen – matrix multiplication, integer multiplication, Solovay–Strassen primality test
 * Bjarne Stroustrup – C++
 * Madhu Sudan – computational complexity theory, coding theory
 * Gerald Jay Sussman – Scheme
 * Bert Sutherland – graphics, Internet
 * Ivan Sutherland – graphics
 * Latanya Sweeney – data privacy and algorithmic fairness
 * Mario Szegedy – complexity theory, quantum computing

T

 * Parisa Tabriz – Google Director of Engineering, also known as the Security Princess
 * Roberto Tamassia – computational geometry, computer security
 * Andrew S. Tanenbaum – operating systems, MINIX
 * Austin Tate – Artificial Intelligence Applications, AI Planning, Virtual Worlds
 * Bernhard Thalheim – conceptual modelling foundation
 * Éva Tardos
 * Gábor Tardos
 * Robert Tarjan – splay tree
 * Valerie Taylor
 * Mario Tchou – Italian engineer, of Chinese descent, leader of Olivetti Elea project
 * Jaime Teevan
 * Shang-Hua Teng – analysis of algorithms
 * Larry Tesler – human–computer interaction, graphical user interface, Apple Macintosh
 * Avie Tevanian – Mach kernel team, NeXT, Mac OS X
 * Charles P. Thacker – Xerox Alto, Microsoft Research
 * Daniel Thalmann – computer graphics, virtual actor
 * Ken Thompson – mainly designed and authored Unix, Plan 9 and Inferno operating systems, B and Bon languages (precursors of C), created UTF-8 character encoding, introduced regular expressions in QED, co-authored Go language
 * Simon Thompson – functional programming research, textbooks; Cardano domain-specific languages: Marlowe
 * Sebastian Thrun – AI researcher, pioneered autonomous driving
 * Walter F. Tichy – RCS
 * Seinosuke Toda – computation complexity, recipient of 1998 Gödel Prize
 * Chai Keong Toh – mobile ad hoc networks pioneer
 * Linus Torvalds – Linux kernel, Git
 * Leonardo Torres Quevedo (1852–1936) – invented El Ajedrecista (the chess player) in 1912, a true automaton built to play chess without human guidance. In his work Essays on Automatics (1913), introduced the idea of floating-point arithmetic. In 1920, built an early electromechanical device of the Analytical Engine.
 * Godfried Toussaint – computational geometry, computational music theory
 * Gloria Townsend
 * Edwin E. Tozer – business information systems
 * Joseph F Traub – computational complexity of scientific problems
 * John V. Tucker – computability theory
 * John Tukey – founder of FFT algorithm, box plot, exploratory data analysis and Coining the term 'bit'
 * Alan Turing (1912–1954) – British computing pioneer, Turing machine, algorithms, cryptology, computer architecture
 * David Turner – SASL, Kent Recursive Calculator, Miranda, IFIP WG 2.1 member
 * Murray Turoff – computer-mediated communication

U

 * Jeffrey D. Ullman – compilers, databases, complexity theory

V

 * Leslie Valiant – computational complexity theory, computational learning theory
 * Vladimir Vapnik – pattern recognition, computational learning theory
 * Moshe Vardi – professor of computer science at Rice University
 * Dorothy Vaughan
 * Bernard Vauquois – pioneered computer science in France, machine translation (MT) theory and practice including Vauquois triangle, ALGOL 60
 * Umesh Vazirani
 * Manuela M. Veloso
 * François Vernadat – enterprise modeling
 * Richard Veryard – enterprise modeling
 * Sergiy Vilkomir – software testing, RC/DC
 * Paul Vitanyi – Kolmogorov complexity, Information distance, Normalized compression distance, Normalized Google distance
 * Andrew Viterbi – Viterbi algorithm
 * Jeffrey Scott Vitter – external memory algorithms, compressed data structures, data compression, databases
 * Paul Vixie – DNS, BIND, PAIX, Internet Software Consortium, MAPS, DNSBL

W

 * Eiiti Wada – ALGOL N, IFIP WG 2.1 member, Japanese Industrial Standards (JIS) X 0208, 0212, Happy Hacking Keyboard
 * David Wagner – security, cryptography
 * David Waltz
 * James Z. Wang
 * Steve Ward
 * Manfred K. Warmuth – computational learning theory
 * David H. D. Warren – AI, logic programming, Prolog, Warren Abstract Machine (WAM)
 * Kevin Warwick – artificial intelligence
 * Jan Weglarz
 * Philip Wadler – functional programming, Haskell, Monad, Java, logic
 * Peter Wegner – object-oriented programming, interaction (computer science)
 * Joseph Henry Wegstein – ALGOL 58, ALGOL 60, IFIP WG 2.1 member, data processing technical standards, fingerprint analysis
 * Peter J. Weinberger – programming language design, the 'w' in AWK
 * Mark Weiser – ubiquitous computing
 * Joseph Weizenbaum – artificial intelligence, ELIZA
 * David Wheeler – EDSAC, subroutines
 * Franklin H. Westervelt – use of computers in engineering education, conversational use of computers, Michigan Terminal System (MTS), ARPANET, distance learning
 * Steve Whittaker – human computer interaction, computer support for cooperative work, social media
 * Jennifer Widom – nontraditional data management
 * Gio Wiederhold – database management systems
 * Norbert Wiener – Cybernetics
 * Adriaan van Wijngaarden – Dutch pioneer; ARRA, ALGOL, IFIP WG 2.1 member
 * Mary Allen Wilkes – LINC developer, assembler-linker designer
 * Maurice Vincent Wilkes – microprogramming, EDSAC
 * Yorick Wilks – computational linguistics, artificial intelligence
 * James H. Wilkinson – numerical analysis
 * Sophie Wilson – ARM architecture
 * Shmuel Winograd – Coppersmith–Winograd algorithm
 * Terry Winograd – artificial intelligence, SHRDLU
 * Patrick Winston – artificial intelligence
 * Niklaus Wirth – ALGOL W, IFIP WG 2.1 member, Pascal, Modula, Oberon
 * Neil Wiseman – computer graphics
 * Dennis E. Wisnosky – Integrated Computer-Aided Manufacturing (ICAM), IDEF
 * Stephen Wolfram – Mathematica
 * Mike Woodger – Pilot ACE, ALGOL 60, Ada (programming language)
 * Philip Woodward – ambiguity function, sinc function, comb operator, rep operator, ALGOL 68-R
 * Beatrice Helen Worsley – wrote the first PhD dissertation involving modern computers; was one of the people who wrote Transcode
 * Steve Wozniak – engineered first generation personal computers at Apple Computer
 * Jie Wu – computer networks
 * William Wulf – BLISS system programming language + optimizing compiler, Hydra operating system, Tartan Laboratories

Y

 * Mihalis Yannakakis
 * Andrew Chi-Chih Yao
 * John Yen
 * Nobuo Yoneda – Yoneda lemma, Yoneda product, ALGOL, IFIP WG 2.1 member
 * Edward Yourdon – Structured Systems Analysis and Design Method
 * Moti Yung

Z

 * Lotfi Zadeh – fuzzy logic
 * Hans Zantema – termination analysis
 * Arif Zaman – pseudo-random number generator
 * Stanley Zdonik — database management systems
 * Hussein Zedan – formal methods and real-time systems
 * Shlomo Zilberstein – artificial intelligence, anytime algorithms, automated planning, and decentralized POMDPs
 * Jill Zimmerman – James M. Beall Professor of Mathematics and Computer Science at Goucher College
 * Mark Zuckerberg – cofounder of Facebook and Meta Platforms
 * Konrad Zuse – German pioneer of hardware and software

title: List of computer scientists


text:
Reaction kinetics in uniform supersonic flow

Reaction kinetics in uniform supersonic flow (Cinétique de Réaction en Ecoulement Supersonique Uniforme, CRESU) is an experiment investigating chemical reactions taking place at very low temperatures.

The technique involves the expansion of a gas or mixture of gases through a de Laval nozzle from a high-pressure reservoir into a vacuum chamber. As it expands, the nozzle collimates the gas into a uniform supersonic beam, which is essentially collision-free and has a temperature that, in the centre-of-mass frame, can be significantly below that of the reservoir gas. Each nozzle produces a characteristic temperature. This way, any temperature between room temperature and about 10 K can be achieved.

Apparatus
There are relatively few CRESU apparatuses in existence for the simple reason that the gas throughput and pumping requirements are huge, which makes them expensive to run. Two of the leading centres have been the University of Rennes (France) and the University of Birmingham (UK). A more recent development has been a pulsed version of the CRESU, which requires far less gas and therefore smaller pumps.

Kinetics
Most species have a negligible vapour pressure at such low temperatures, and this means that they quickly condense on the sides of the apparatus. Essentially, the CRESU technique provides a "wall-less flow tube", which allows the kinetics of gas-phase reactions to be investigated at much lower temperatures than otherwise possible.

Chemical kinetics experiments can then be carried out in a pump–probe fashion, using a laser to initiate the reaction (for example, by preparing one of the reagents by photolysis of a precursor), followed by observation of that same species (for example, by laser-induced fluorescence) after a known time delay. The fluorescence signal is captured by a photomultiplier a known distance downstream of the de Laval nozzle. The time delay can be varied up to the maximum corresponding to the flow time over that known distance. By studying how quickly the reagent species disappears in the presence of differing concentrations of a (usually stable) co-reagent species, the reaction rate constant at the low temperature of the CRESU flow can be determined.

Reactions studied by the CRESU technique typically have no significant activation energy barrier. In the case of neutral–neutral reactions (i.e., not involving any charged species, ions), these type of barrier-free reactions usually involve free radical species, such as molecular oxygen (O2), the cyanide radical (CN) or the hydroxyl radical (OH). The energetic driving force for these reactions is typically an attractive long-range intermolecular potential.

CRESU experiments have been used to show deviations from Arrhenius kinetics at low temperatures: as the temperature is reduced, the rate constant actually increases. They can explain why chemistry is so prevalent in the interstellar medium, where many different polyatomic species have been detected (by radio astronomy).