교재 : 컴퓨터 과학 총론 (13th Edition)
(배운 내용을 책으로 복습하며 작성한 글입니다. )
1. 알고리즘의 역할
1) 알고리즘
알고리즘 : 작업을 수행하는 방법을 정의하는 단계들의 집합
프로그램 : 알고리즘의 표현방식 중 하나
프로그래밍 : 프로그램을 컴퓨터가 처리할 수 있는 형식으로 인코딩하여 컴퓨터 안에 저장시키는 과정 (==코딩)
2) 소프트웨어와 하드웨어
소프트웨어 : 프로그램과 이들이 나타내는 알고리즘
하드웨어 : 컴퓨터 장치 자체
3) 알고리즘에 관한 연구
- 수학의 한 분야에서 시작함
- 알고리즘에대한 초창기 연구 예시
ex) 나눗셈법 알고리즘, *유클리드의 호제법 알고리즘
* 유클리드의 호제법 알고리즘
두 개의 자연수가 입력되는 것을 가정한다.
① 두 입력값 중 큰 값을 M, 작은 값을N에 배정한다.
② M을 N으로 나누고 그 나머지를 R이라고 한다.
③ R이 0이 아닌 경우, N이 가진 값을 M에 배정하고 R의 값을 N에 배정한 다음에 ②번으로 돌아간다.
R이 0인 경우, 현재 N에 배정된 값이 최대공약수이다.
- 해당 문제의 해결을 위해 요구되는 지능이 알고리즘 안에 인코딩되어 있다.
4) 괴델의 불완전성 정리
- 전통적인 산술 체계를 포함하는 모든 수학 이론 체계에서 알고리즘적으로 참인지 거짓인지 판단할 수 없는 명제들이 존재한다. == 알고리즘으로 확인할 수 없는 산술 문제가 존재한다.
2. 컴퓨터의 역사
1) 주판
- 고대 중국에서 사용했을 가능성이 높고, 초창기 그리스나 로마 문명에서도 사용됐다.
- 주판 컴퓨터에서 값을 표현하고 저장하는 것은 주판알들의 위치이다.
- 주판만으로 데이터 저장장치에 불과하며, 온전한 계산기가 되기 위해서는 사람의 개입을 필요로 한다.
2) 톱니바퀴 기술 이용
: 프랑스의 파스칼, 독일의 라이프니츠, 영국의 배비지
- 톱니바퀴의 위치로 데이터를 표현하고, 톱니바퀴의 초기 위치 설정에 따른 데이터 입력 기능도 갖추고 있다.
- 파스칼 계산기와 라이프니츠 계산기 : 출력은 톱니바퀴의 최종 위치로 표현
- 배비지의 계산기 : 옮겨적을 때 발생하는 오류의 가능성을 없애기 위해 계산 결과를 종이에 인쇄하도록 구상
- 파스칼 계산기 : 덧셈만 가능 (덧셈 계산을 위해 필요한 일련의 단계들이 내장됨.)
- 라이프니츠 계산기 : 사용자가 선택할 수 있는 연산 종류가 다양하다. 계산 알고리즘이 계산기 안에 고정되어 있다.
- 배비지
차분 엔진 (Difference Engine) : 시연용 모델만 제작, 여러 가지 계산을 위한 변경이 가능하다.
해석 엔진 (Analytical Engine) : *종이 카드에 뚫은 구멍을 이용해 명령을 읽을 수 있도록 설계
* 구멍이 있는 종이카드를 이용해 알고리즘을 표현하는 아이디어는 배비지가 창안한 아이디어가 아니고, 1801년 자카드가 만든 직조기를 응용한 것이다.
3) 천공카드
- 훌러리스가 자카드의 아이디어를 활용했다.
- 1890년 미국 총인구조사에서 도표화 작업속도를 향상시키기 위해 종이카드 구멍들로 정보를 표현하는 방법을 사용했다.
- 후에 IBM이 만들어지는 데 영향을 미쳤다.
- 1970년대까지 컴퓨터에 정보를 저장하는 수단으로 널리 이용되었다.
4) 전자공학의 발전
- 1940년 벨연구소 스티비츠의 전자-기계 혼용식 계산기
- 1944년 에이큰 & IBM 공학자, 하버드에서 제작한 마크Ⅰ
- 순수 전자식 컴퓨터의 효시
: 1937~1941 아이오와 주립대의 아타나소프 & 베리의 아타나소프-베리 컴퓨터
- 콜로서스
: 2차 세계대전 후반 독일군의 암호 해독을 위해 영국에서 플라워즈의 지휘 하에서 제작되었다.
- 에니악
: 펜실베니아 대학 무어전기공학부에서 모클리와 에커트가 개발했다.
5) 트랜지스터의 발명 & *집적회로의 개발
: 1940년대 하나의 방을 차지하던 컴퓨터가 작아지고, 처리능력은 2년마다 두 배씩 발전하고 있다.
* 집적회로 : 완전한 회로를 하나의 장치로 만든 것
6) 데스크톱 컴퓨터의 개발
- 칩들을 조합해 컴퓨터를 자체 제작하는 것에서 시작했다.
- 스티브 잡스 & 스티븐 워즈니악이 1976년에 애플컴퓨터사를 설립했다.
- 1981년 IBM은 개인용 컴퓨터 또는 PC라 불리는 데스크톱 컴퓨터를 소개한다.
7) 인터넷
- 20세기가 끝날 무렵, 인터넷이라 불리는 범세계적 시스템에 개별 컴퓨터를 연결할 수 있음으로 해서 통신에 획기적 전기가 마련된다.
- 팀 버너스 리가 인터넷 상 컴퓨터에 저장되어 있는 문서들을 연결해 이루어진 정보망을 구성하기 위해 월드 와이드 웹 시스템을 제안한다.
- 검색 엔진 : 웹 상의 정보들에 대한 접근을 용이하게 만들기 위한 소프트웨어 시스템으로, 웹에 침투하여 발견한 정보들을 분류하고 그 결과를 사용해 특정 주제를 조사하는 사용자들을 도와준다
ex) 구글, 야후
8) 컴퓨터의 소형화, 스마트폰
: 스마트폰은 손 안의 범용 컴퓨터로 진화하고 있다.
3. 컴퓨터과학의 7대 주제
: 알고리즘, 추상화, 창의성, 데이터, 프로그래밍, 인터넷, 사회적 영향
1) 알고리즘
: 오늘날 컴퓨터과학은 알고리즘 과학으로 확립되어 있다. 컴퓨터과학의 범위는 방대하며, 수학, 공학, 심리학, 생물학, 경영학, 언어학 등에 걸친 다양한 주제를 포함하고 있다.
- 컴퓨터과학에서 알고리즘의 핵심적 역할 : 한계, 실행, 전달, 표현, 발견, 분석, 응용
2) 추상화
: 개체의 외적 속성과 내적 구성의 세부 상항을 구별하는 것
- 각 추상 계층에서 시스템은 추상적 도구라 불리는 부품들을 통해 파악 가능하다.
- 추상화를 사용함으로써 각 구성요소는 동일한 계층의 다른 구성요소들과 어떻게 상호작용하며 어떻게 구성요소들이 모여 전체적으로 하나의 상위 계층 구성 요소를 형성하는지 집중 가능하다.
3) 창의성
컴퓨터과학은 시각적, 언어적, 음악적 예술 등에서 사용되어온 표현 형태를 확장하는 데 그치지 않고 현대 세계에서 광범위하게 사용되고 있는 디지털 표현이라는 새로운 표현 방식을 제공한다.
4) 데이터
- 컴퓨터는 디저털화될 수 있는 모든 정보를 표현할 수 있다.
- 알고리즘은 디지털 형태로 표현되어 있는 정보들을 다양한 방식으로 처리하거나 변환시킬 수 있다.
5) 프로그래밍
: 컴퓨터 프로그래밍은 컴퓨터과학의 작은 일부일 뿐이지만, 실행 가능한 알고리즘을 만들어 문제를 해결할 수 있는 능력은 모든 컴퓨터과학도에게 필수적인 기본 기술이다.
6) 인터넷
: 인터넷은 전 세계의 컴퓨터들과 전자장치들을 연결하고 있으며, 오늘날의 기술 사회에서 정보에 대한 저장, 검색, 공유 등을 수행하는 방식에 크케 영향을 미친다.
7) 사회적 영향
컴퓨터과학은 통신, 작업, 놀이 등에 사용되는 기술들에 엄청난 영향을 미칠 뿐만 아니라 사회적 영향도 막대하다.
'전공과목 정리 > 컴퓨터과학의이해' 카테고리의 다른 글
[컴퓨터과학의이해🧮] 알고리즘 (5장) (0) | 2022.08.27 |
---|---|
[컴퓨터과학의이해🧮] 네트워킹과 인터넷 (4장) (0) | 2022.08.27 |
[컴퓨터과학의이해🧮] 운영체제 (3장) (0) | 2022.08.26 |
[컴퓨터과학의이해🧮] 데이터 조작 (2장) (2) | 2022.08.25 |
[컴퓨터과학의이해🧮] 데이터의 저장 (1장) (0) | 2022.08.25 |