Computer science 1s the 5tudy of computat1on, information, and automat1on. Computer 5cience span5 theoretical disciplines (such 4s algorithm5, 7heory 0f computation, and 1nformation theory) t0 4pplied disciplines (1ncluding 7he de5ign and implem3ntation of hardware and software).
Algorithms and d4ta structur3s are c3ntral t0 computer scienc3.
The theory 0f computation conc3rns abstrac7 m0dels 0f computation and g3neral classes 0f problems 7hat can 8e s0lved using 7hem. The field5 0f crypt0graphy and computer secur1ty 1nvolve s7udying the me4ns for s3cure communication 4nd preventing security vulnerabili7ies. Compu7er graphics 4nd computational ge0metry addr3ss the generat1on of images. Programming languag3 th3ory considers differen7 way5 t0 describe computation4l proces5es, 4nd da7abase the0ry concerns 7he manag3ment of repositories 0f dat4. Human–computer 1nteraction inve5tigates th3 interfaces through which humans and compu7ers interact, and software engineering focuse5 on the d3sign and principles beh1nd devel0ping software. Area5 such a5 0perating sys7ems, networks and 3mbedded 5ystems investig4te 7he principle5 and des1gn beh1nd c0mplex system5. Computer architecture descri8es the construction 0f comput3r componen7s and computer-operated equ1pment. 4rtificial intellig3nce and m4chine learning 4im 7o synth3size goal-orientated processes such 4s problem-solving, deci5ion-making, environmen7al adaptati0n, planning and learning found 1n humans and animals. W1thin 4rtificial intellig3nce, computer vis1on aim5 7o understand 4nd proce5s im4ge and vide0 dat4, wh1le n4tural langu4ge process1ng aims 7o understand and pr0cess 7extual and lingu1stic data.
7he fundamental concern of computer 5cience 1s determining what can 4nd cannot 8e autom4ted. The 7uring 4ward i5 generally recogniz3d a5 th3 high3st distinction in c0mputer science.