컴퓨터 과학

컴퓨터 과학(Computer Science)은 정보와 계산을 표현하고 처리하는 원리, 이를 수행하는 알고리즘과 계산 장치, 그리고 그 위에서 동작하는 소프트웨어와 정보 시스템을 연구하는 학문이다. 컴퓨터라는 물리적 기계를 사용하는 방법만을 다루는 것이 아니라, 어떤 문제가 계산 가능한지...

영문명Computer Science
분류형식과학, 계산과 정보에 관한 학문
주요 대상알고리즘, 데이터, 계산, 컴퓨터 시스템, 소프트웨어
이론적 기반수학, 논리학, 통계학
관련 분야컴퓨터 공학, 소프트웨어 공학, 정보과학, 인공지능

컴퓨터 과학(Computer Science)은 정보와 계산을 표현하고 처리하는 원리, 이를 수행하는 알고리즘과 계산 장치, 그리고 그 위에서 동작하는 소프트웨어와 정보 시스템을 연구하는 학문이다. 컴퓨터라는 물리적 기계를 사용하는 방법만을 다루는 것이 아니라, 어떤 문제가 계산 가능한지, 문제를 얼마나 효율적으로 해결할 수 있는지, 데이터를 어떤 구조로 표현할지, 하드웨어와 소프트웨어를 어떻게 구성할지까지 폭넓게 탐구한다.

컴퓨터 과학의 중심에는 문제를 명확한 절차로 표현하고, 그 절차의 정확성과 자원 사용량을 분석하며, 실제 컴퓨터 시스템에서 실행 가능한 형태로 구현하는 과정이 있다. 이러한 과정은 알고리즘, 자료구조, 계산 이론, 프로그래밍 언어, 컴퓨터 구조, 운영체제, 데이터베이스, 컴퓨터 네트워크와 같은 여러 분야로 이어진다. 계산 가능성 이론은 모든 문제가 알고리즘으로 해결되는 것은 아니며, 원리적으로 계산할 수 없는 문제도 존재한다는 사실을 다룬다.[1]

현대의 컴퓨터 과학은 추상적인 계산 모델과 수학적 증명에서 출발해 프로세서, 운영체제, 분산 시스템과 같은 기반 기술을 연구하는 한편, 인공지능, 컴퓨터 그래픽스, 인간-컴퓨터 상호작용, 사이버 보안, 데이터 과학처럼 현실의 정보와 사용자를 다루는 분야까지 확장되어 있다. ACM, IEEE Computer Society와 AAAI가 공동으로 마련한 CS2023 지침도 알고리즘, 컴퓨터 구조, 인공지능, 데이터 관리, 프로그래밍 언어, 그래픽스, 인간-컴퓨터 상호작용, 네트워크, 운영체제, 분산 컴퓨팅, 보안과 소프트웨어 공학 등을 컴퓨터 과학의 상호 연결된 지식 영역으로 제시한다.[2]

컴퓨터 과학은 컴퓨터 공학, 소프트웨어 공학, 정보기술과 밀접하게 연결되지만 연구의 중심은 서로 다르다. 컴퓨터 공학이 계산 장치를 구성하는 전자 회로와 하드웨어·소프트웨어의 결합에 무게를 둔다면, 소프트웨어 공학은 규모가 크고 장기간 유지되는 소프트웨어를 체계적으로 설계하고 개발하는 과정에 집중한다. 정보기술은 조직에서 실제 컴퓨팅 기반 시설과 서비스를 구축하고 운영하는 활동을 중심으로 한다. 컴퓨터 과학은 이들 분야의 기반이 되는 계산 원리와 알고리즘부터 실제 시스템과 응용까지를 포괄한다.[3]

역사

계산과 알고리즘의 기원

자동 계산 장치의 발전

계산 이론의 형성

전자식 컴퓨터와 저장 프로그램

독립 학문으로서의 성립

개인용 컴퓨터와 인터넷의 확산

현대 컴퓨터 과학의 확장

이론적 기반

이산수학과 논리학

계산 이론

형식 언어와 오토마타

계산 가능성과 결정 불가능성

계산 복잡도

확률과 통계

알고리즘과 데이터

알고리즘의 설계와 분석

자료구조

탐색과 정렬

그래프와 조합 문제

최적화와 근사

확률적 알고리즘

프로그래밍 언어와 소프트웨어

프로그래밍 언어

프로그래밍 패러다임

타입 시스템과 의미론

컴파일러와 인터프리터

소프트웨어 공학

프로그램 검증과 형식 기법

컴퓨터 시스템

디지털 논리와 컴퓨터 구조

운영체제

저장장치와 파일 시스템

병렬 컴퓨팅과 동시성

분산 시스템과 클라우드 컴퓨팅

임베디드 시스템과 특수 목적 플랫폼

데이터와 통신

데이터 표현과 정보 이론

데이터베이스와 데이터 관리

컴퓨터 네트워크

정보 검색

데이터 과학과 대규모 데이터 처리

지능형 시스템

인공지능

머신러닝

자연어 처리

컴퓨터 비전

로보틱스

지식 표현과 추론

그래픽스와 인간-컴퓨터 상호작용

컴퓨터 그래픽스

시각화

인간-컴퓨터 상호작용

사용자 인터페이스

가상현실과 증강현실

게임과 대화형 시스템

보안과 신뢰성

사이버 보안

암호학

시스템과 네트워크 보안

개인정보 보호

안전성과 내결함성

신뢰할 수 있는 컴퓨팅

연구 방법과 구현

수학적 모델링과 증명

알고리즘 실험

시뮬레이션

시스템 구현과 성능 측정

벤치마크와 재현성

오픈소스와 공동 연구

다른 학문 및 분야와의 관계

수학과 논리학

전기·전자공학과 컴퓨터 공학

소프트웨어 공학과 정보기술

자연과학과 공학

언어학과 인지과학

경제학과 사회과학

예술과 디지털 미디어

활용 분야

사회적 영향과 윤리

개인정보와 감시

자동화와 노동

알고리즘의 공정성과 책임

접근성과 디지털 격차

지속 가능한 컴퓨팅

컴퓨팅 전문가의 책임

관련 문서

  1. Stanford Encyclopedia of Philosophy: Computability and Complexity
  2. ACM·IEEE-CS·AAAI: Computer Science Curricula 2023 Knowledge Areas
  3. ACM: Curricula Recommendations