컴퓨터 과학의 개요
Outline of computer science컴퓨터 사이언스(computing science라고도 함)는 정보 및 계산의 이론적 기반과 컴퓨터 시스템에서의 구현 및 응용에 대한 학문입니다.컴퓨터 과학의 잘 알려진 과목 분류 시스템 중 하나는 컴퓨터 기계 협회가 고안한 ACM 컴퓨터 분류 시스템입니다.
컴퓨터 과학이란 무엇인가?
컴퓨터 공학은 다음과 같이 설명할 수 있습니다.
서브필드
수학적 기초
- 코딩 이론– 네트워킹, 프로그래밍 및 기타 컴퓨터 간의 통신 영역에서 유용합니다.
- 게임 이론 – 인공지능 및 사이버네틱스에서 유용합니다.
- 이산 수학
- 그래프 이론 – 데이터 구조 및 검색 알고리즘의 기초입니다.
- 수학적 논리 – 부울 논리 및 논리 쿼리를 모델링하는 기타 방법, 정식 증명 방법의 사용 및 제한
- 수 이론 – 정수 이론.암호화 및 인공지능 테스트 영역에서 사용됩니다.
알고리즘 및 데이터 구조
인공지능
- 인공지능 – 자율적인 지능이나 행동을 보이는 시스템의 구현과 연구.
- 자동화된 추론 – Prolog에서 사용되는 엔진과 같이 사실과 규칙 데이터베이스에 대한 쿼리를 통해 결과에 대한 단계를 생성하는 엔진과 프로그래머의 도움을 받아 수학 이론을 증명하는 것을 목적으로 하는 자동화된 정리 프로버.
- 컴퓨터 비전 – 2차원 그림에서 3차원 물체를 식별하는 알고리즘입니다.
- 소프트 컴퓨팅, 매우 어려운 문제에 대한 부정확한 솔루션 사용:
- 자연어 처리 - 자연어(인간) 언어를 분석, 이해 및 생성하는 시스템 및 알고리즘 구축.
- 로보틱스 – 로봇의 동작을 제어하는 알고리즘입니다.
통신 및 보안
- 네트워킹 – 다양한 공유 미디어 또는 전용 미디어 간에 데이터를 안정적으로 통신하기 위한 알고리즘 및 프로토콜입니다.오류 수정도 포함됩니다.
- 컴퓨터 보안 – 컴퓨터 시스템과 컴퓨터 네트워크를 보호하는 실용적인 측면.
- 암호화 – 복잡도, 확률, 대수 및 숫자 이론의 결과를 적용하여 코드를 발명 및 해독하고 암호화 프로토콜의 보안을 분석합니다.
컴퓨터 아키텍처
- 컴퓨터 아키텍처 – 컴퓨터 시스템의 설계, 구성, 최적화 및 검증.주로 CPU와 메모리 서브시스템(및 이들을 접속하는 버스)에 관한 것입니다.
- 운영체제 – 컴퓨터 프로그램을 관리하고 사용 가능한 시스템의 기반을 제공하는 시스템입니다.
컴퓨터 그래픽스
- 컴퓨터 그래픽스– 시각 이미지를 합성하여 생성하는 알고리즘과 실제 세계에서 샘플링된 시각 및 공간 정보를 통합 또는 변경하기 위한 알고리즘입니다.
- 이미지 처리 – 계산을 통해 이미지에서 정보를 판별합니다.
- 정보 시각화 – 탐색과 이해를 위한 인간의 상호작용을 촉진하기 위해 추상 데이터를 표현하고 표시하는 방법.
동시, 병렬 및 분산 시스템
- 병렬 컴퓨팅 - 동시 계산의 이론과 실천.멀티태스킹 환경이나 멀티스레드 환경에서의 데이터 안전성.
- 동시성 (컴퓨터 사이언스)– 여러 개의 동시 실행 스레드를 사용한 컴퓨팅으로 여러 프로세서의 문제를 해결하기 위한 알고리즘을 고안하여 순차 실행과 비교하여 최대한 속도를 높입니다.
- 분산 컴퓨팅 – 네트워크상에서 여러 컴퓨팅 디바이스를 사용하여 공통의 목표 또는 태스크를 달성함으로써 모든 태스크에 대한 단일 프로세서의 기여에 수반되는 지연을 줄입니다.
데이터베이스
- 관계형 데이터베이스 – 데이터베이스의 이론 및 알고리즘 기반 설정.
- 구조화 저장소 - NoSQL 데이터베이스와 같은 비관계형 데이터베이스.
- 데이터 마이닝 – 문서 및 데이터베이스의 정보 검색 및 처리를 위한 알고리즘 연구. 정보 검색과 밀접하게 관련되어 있습니다.
프로그래밍 언어 및 컴파일러
- 컴파일러 이론– Automata 이론에 기초한 컴파일러 설계 이론.
- 프로그래밍 언어 프래그매틱스– 프로그래밍 언어의 분류법, 그 강점과 약점.객체 지향 프로그래밍과 같은 다양한 프로그래밍 패러다임.
- 프로그래밍 언어 이론
- 형식적 의미론 – 프로그램의 의미에 대한 엄밀한 수학적 연구.
- 유형 이론 – 데이터 유형의 공식 분석 및 이러한 유형을 사용하여 프로그램의 속성을 이해하는 것, 특히 프로그램 안전성.
과학 컴퓨팅
- 계산과학 – 수학적 모델과 정량적 분석 기법을 구축하고 컴퓨터를 사용하여 과학적 문제를 분석하고 해결합니다.
- 수치해석 – 근원찾기, 적분, 상미분방정식의 해법, 특수함수의 근사치 등 수학적 문제의 대략적인 수치해법.
- 심볼 계산 – 컴퓨터 대수라고도 하는 심볼 형식의 식을 조작 및 해결합니다.
- 계산물리 – 대규모 비분석 시스템 수치 시뮬레이션
- 계산 화학 – 화학 구조와 특성을 결정하기 위한 이론 화학의 계산 모델링
- 생물정보학 및 계산생물학– 컴퓨터 공학을 사용하여 생물학적 데이터를 유지, 분석, 저장하며 단백질 접힘, 기능 예측 및 계통 발생 등의 생물학적 문제를 해결합니다.
- 계산신경과학 – 신경생리학 계산모델링
소프트웨어 엔지니어링
- 형식적 방법 – 소프트웨어 설계에 대한 설명과 추론을 위한 수학적 접근법.
- 소프트웨어 엔지니어링 – 프로그램 설계, 개발 및 테스트의 원칙과 실천, 적절한 엔지니어링 프랙티스.
- 알고리즘 설계 – 알고리즘 이론의 아이디어를 사용하여 실제 작업에 대한 솔루션을 창의적으로 설계합니다.
- 컴퓨터 프로그래밍 – 알고리즘을 구현하기 위해 프로그래밍 언어를 사용하는 관행입니다.
- 인간과 컴퓨터의 상호작용– 사람들이 사용하는 컴퓨터 인터페이스의 연구 및 설계.
- 리버스 엔지니어링 – 임의의 기존 소프트웨어를 이해하기 위한 과학적 방법 적용.
계산 이론
- 오토마타 이론– 문제 해결을 위한 다양한 논리 구조.
- 계산가능성 이론– 현재 컴퓨터 모델에서 계산 가능한 것.앨런 튜링과 다른 사람들에 의해 개발된 증거는 무엇이 계산될 수 있고 무엇이 계산되지 않을 수 있는 가능성에 대한 통찰력을 제공한다.
- 계산 복잡성 이론 – 계산 클래스의 기본 한계(특히 시간과 스토리지 공간)입니다.
- 양자 컴퓨팅 이론 – 비트의 양자 중첩을 포함하는 계산 모델을 탐색합니다.
역사
직업
- 프로그래머(소프트웨어 개발자)
- 교사/교수
- 소프트웨어 엔지니어
- 소프트웨어 아키텍트
- 소프트웨어 테스터
- 하드웨어 엔지니어
- 데이터 분석가
- 인터랙션 디자이너
- 네트워크 관리자
- 데이터 사이언티스트
데이터 및 데이터 구조
프로그래밍 패러다임
「 」를 참조해 주세요.
외부 링크
- Curlie의 컴퓨터 과학 개요
- 컴퓨터 사이언스 권장 커리큘럼에 관한 ACM 보고서(2008)
- 컴퓨터 사이언스 무료 대학 강의 목록
- 컴퓨터 사이언스 참고 문헌집
- 컴퓨터 사이언티스트 사진 (베르트랑 마이어 갤러리)