# Élmu komputer

Dina basa nu umum, **élmu komputer** nyaéta élmu ngeunaan komputasi jeung information processing, boh dina hal hardware atawa software.

## Pangwanoh

Pikeun kaperluan praktis, élmu komputer kaasup ogé topik-topik anu aya hubunganana jeung komputer, tina hal saperti analisa algoritma abstrak, formal grammars, jeung salian ti eta, nepi ka subyék anu kongkrit saperti programming language, software, jeung hardware komputer. Sabagé disiplin élmu, loba bédana jeung matematik, programming, rékayasa software, sarta rékayasa komputer, sanajan kadang-kadang ngabingungkeun. Edsger Dijkstra nyebutkeun yén:

*"Computer science is no more about computers than astronomy is about telescopes."*
Dilengkepan ku physicist Richard Feynman nyebutkeun:

*"Computer science is not as old as physics; it lags by a couple of hundred years. However, this does not mean that there is significantly less on the computer scientist's plate than on the physicist's: younger it may be, but it has had a far more intense upbringing!"*
Tesis Church-Turing thesis nyebutkeun yén sakabéh tipe paradigma kanyaho anu reasonable tina komputasi mangrupa hal anu sarua pentingnya salila bisa ngagawekeun sanajan aya variasi efisien dina waktu jeung ruang. Tesis ieu lain téorema matematika anu bisa dibuktikeun, tapi a statement based on empirical observation that two distinct computational schemes do in fact have the same computational power. This thesis is a fundamental principle of computer science.

Most reséarch in computer science has been related to von Neumann computers or Turing machines (computers that do one small, deterministic task at a time). These modéls resemble most réal computers in use today. Computer scientists also study other kinds of machines, some practical (like parallel machines) and some théoretical (like random, oracle, and quantum machines).

Computer scientists study what programs can and cannot do (see computability and artificial intelligence), how programs should efficiently perform specific tasks (see algoritma), how programs should store and retrieve specific kinds of information (see data structures and data bases), and how programs and péople should communicate with éach other (see human-computer interaction and user interfaces).

Computer science has roots in electrical engineering, mathematics and linguistics. In the last third of the 20th century computer science has become recognized as a distinct discipline and has developed its own methods and terminology.

The first computer science department in the United States was founded at Purdue University in 1962. The University of Cambridge in England, among others, taught CS prior to this, however at the time, CS was seen as a branch of mathematics, and not a separate department. Cambridge claims to have the world's oldest taught qualification in computing. Most universities today have specific departments devoted to computer science.

The highest honor in computer science is the Turing Award.

## Lapang nu patali

Élmu komputer deukeut patalina jeung sawatara wilangan lapang séjénna. Lapang-lapang éta kacida pentingna, sanajan aya sababaraha kapentingan nu béda-béda.

* Élmu informasi nyaéta pangajian ngeunaan data jeung informasi, kaasup cara nganafsirkeun, nganalisis, neundeun, jeung nyokotna. Élmu Informasi dimimitian ku mangrupa yayasan analisis ilmiah ngeunaan komunikasi jeung basis data.
* Pemprograman komputer atawa pangwangunan piranti-lunak nyaéta nyusun/nulis kodeu program.
* Leksikografi jeung leksikografi nu dikhusukeun museurkeun regepan kana pangajian karya-karya rujukan leksikografik jeung ogé kaasup pangajian éléktronika jeung kamus nu dumasar-Internét.
* Linguistika nyaéta pangajian ngeunaan basa, konvergén (sarua museurna) jeung élmu komputer dina wilayah-wilayah parancangan bahasa pemprograman jeung prosésing bahasa alami.
* Rékayasa piranti lunak nganekenkeun analisis, parancangan, konstruksi, jeung pangujian kana piranti-piranti lunak nu mangfaat. Rékayasa piranti lunak kaasup cara-cara pangwangunnan (di antarana modél air-terjun jeung pemprograman ékstrém) jeung pangalolaan projék.
* Sistem informasi (SI) nyaéta aplikasi komputasi pikeun ngadukung kalangsungan organisasi: pangoperasian, pamasangan, jeung parawatan komputer, piranti lunak, jeung data.
	+ Sistem informasi pangalolaan (SIP) nyaéta lapangan bagéan tina sistem informasi, nu nekenkeun kana pangalolaan pagawe jeung kauangan.
* Matematika méré ka lapangan séjén téhnik-téhnik jeung topik-topik ngeunaan élmu komputer, tapi leuwih umum. Dina sababaraha citarasa, ÉS mangrupa matematika-na komputasi.
* Logika nyaéta sistem nalar resmi, jeung prinsip-prinsip pangajian nu aya dina dasar-dasar mesin nalar/komputasi, boh nyaéta piranti heuras (logika digital) atawa tingkatan-tingkatan piranti lunak (pamariksaan, AI jeung sajabana.). Cabang lapangan logika disebut logika komputabilitas nyadiakeun jawaban nu sistematik pikeun patanyaan-patanyaan nu dasar-pisan ngeunaan naon nu bisa dikomputasi jeung kumaha carana.
* Rekayasa komputer nyaéta analisis, parancangan, jeung konstruksi piranti heuras komputer.
* Kaamanan informasi nyaéta analisis jeung terapan kaamanan sistem informasi, kaasup kriptografi.

## Widang-widang utama anu penting dina élmu komputer

### Tatapakan matematika

* Aljabar Boolean
* Matematikan diskret
* Téori grafik
* Téori émbaran
* Logika simbolik
* Probabilitas jeung statistika

### Téori élmu komputer

* Téori émbaran algoritma
* Téori komputabilitas
* Kriptografi
* Semantika formal
* Téori komputasi (atawa *élmu komputer téoritis*)
	+ analisis algoritma jeung kompléksitas masalah
	+ logika jeung harti program
	+ Logika matematis jeung basa formal
* Téori tipe

### Hardware

(tingali ogé rékayasa listrik)

* Struktur kontrol jeung pamrograman mikro
* Aritmatika jeung Struktur logis
* Struktur mémori
* input/output and Data communications
* Logic Design
* Integrated circuits
	+ VLSI design
* Performance and reliability

### Computer systems organization

(see also electrical engineering)

* Computer architecture
* Computer networks
	+ Distributed computing
* Performance of systems
* Computer system implementation

### Software

* Computer program and Computer programming
	+ Parallel Programming
	+ Program specification
	+ Program verification
* Programming techniques
* Software engineering
	+ Optimization
	+ Software metrics
	+ Configuration management and Software Configuration Management (SCM)
	+ Structured programming
	+ Object orientation
	+ Design patterns
	+ Documentation
* Programming languages
* Operating Systems
* Compilers
	+ Lexical analysis
	+ Parsing

### Data and information systems

* Data structures
* Data storage representations
* Data encryption
* Data compression
* Data recovery
* Coding and Information theory
* Files
	+ File formats
* Information systems
	+ Databases
	+ Information Storage and retrieval
	+ Information Interfaces and Presentation

### Computing methodologies

* Symbolic and Algebraic manipulation
* Artificial intelligence
* Computer graphics
* Image processing and computer vision
* Pattern recognition
	+ Speech recognition
* Simulation and Modeling
* Document and text processing
* Digital signal processing

### Computer applications

* Administrative data processing
	+ Enterprise resource planning
	+ Customer relationship management
* Mathematical software
	+ Numerical analysis
	+ Automated theorem proving
	+ Computer algebra systems
* Physical science and Engineering
	+ Computational chemistry
	+ Computational physics
* Life and medical sciences
	+ Bioinformatics
	+ Computational Biology
	+ Medical informatics
* Social and behavioral sciences
* Arts and Humanities
* Computer-aided engineering
* Robotics
* Human-computer interaction
	+ Speech synthesis
	+ Usability engineering

### Computing milieux

* Computer industry
* History of computing hardware
* Computers and education
* Computers and society
	+ Computer supported cooperative work
* Legal aspects of computing
	+ Free software and Open Source
* Management of computing and Information systems
* Personal computing
* Computer and information security

## History

* History of computing
* Origins of computer terms
* Early programming projects
* Computer science departments
* Timeline of algorithms

## Prominent pioneers in computer science

* Charles Babbage, Designed and built a prototype for a mechanical calculator; designed, but never built, the more powerful Analytical Engine.
* John Backus Invention of FORTRAN (**For**mula **Tran**slation), the first practical high-level programming language and the Backus-Naur form for describing formal language syntax.
* James W. Cooley and John W. Tukey The Fast Fourier Transform and its impact on scientific reséarch.
* Ole-Johan Dahl and Kristen Nygaard, inventors of the proto-object oriented language SIMULA.
* Edsger Dijkstra for algorithms, Goto considered harmful, rigor, and pedagogy.
* C.A.R Hoare for the development of the formal language Communicating Sequential Processes (CSP) and Quicksort.
* Admiral Grace Murray Hopper, for doing pioneer work in the 1940s, one of the first to recognize the necessity for higher level programming languages, or what she termed *automatic programming*. She wrote the A-O compiler. Her idéas héavily influenced the COBOL language.
* Kenneth Iverson Inventor of APL, for his contribution to interactive computing.
* William Kahan for the IEEE floating-point standard. (Perhaps this reference should be moved to hardware engineering.)
* Donald Knuth for *The Art of Computer Programming* series.
* Ada Lovelace, contemporary of Charles Babbage, famous for her *Sketch of the Analytical Engine*, an analysis of Babbage's work; the namesake for the modérn computer language, Ada.
* John von Neumann for devising the von Neumann architecture upon which most modérn computers are based.
* Claude E. Shannon for information theory.
* Alan Turing for computability theory, pioneering work in the field of Artificial Intelligence, and for the design of the Pilot ACE.
* Maurice Wilkes for building the first practical stored program computer to be completed, and credited with the idéas of several high-level programming language constructs.
* James H. Wilkinson The technique of "backward error analysis" and advances in the field of matrix computations. Wilkinson was also a principal mover in the development of the Pilot ACE, the first British computer, in the late 1940s. (See more on Wilkinson in the MacTutor Biographies.)
* Konrad Zuse Builder of a binary computer in the 1930s, for which he allegedly devised a théoretical high level programming language, Plankalkül.

See list of computer scientists for many more notables.

## Tempo ogé

* Jejer dasar élmu komputer
* Jejer élmu komputer, daptar nu leuwih lengkep
* Computing
* List of computing topics
* History of computing
* History of computing hardware
* Turing Award (ACM)
* IEEE John von Neumann Medal
* Computer jargon
* Computer slang
* Computing analogies
* Internét
* Multimédia
* Data acquisition
* Benchmark
* Sensor network
* Online computations and algorithms
* Computer numbering formats
* List of important publications in computer science

## Tumbu kaluar

* *Women and Computer Science* by Ellen Spertus Archived 2004-08-11 di Wayback Machine
* Open Directory Project: Computer Science