티스토리 뷰
0. 컴퓨팅 사고
컴퓨터 과학은 문제 해결에 대한 학문이다.
입력을 받아 출력을 만들어 내는 과정을 문제 해결이라 하며, 이 과정이 곧 컴퓨터 과학을 의미한다.
1. 2진법
✔ 전기를 켜고 끄는 방식의 컴퓨터에게 적합하기 때문에, 데이터를 2진법을 사용해 표현한다.
✔ 0 은 false를 의미하고, 1은 true를 의미한다.
비트
✔ 정보를 저장하고 연산을 수행하기 위해 비트(bit)라는 측정 단위를 사용한다.
✔ 비트(bit)는 이진 숫자라는 뜻의 "binary digit" 의 줄임말이며, 0과 1 두 가지의 값만 가질 수 있는 측정 단위이다.
비트열
✔ 비트 하나로 표현할 수 있는 데이터에 양에는 한계가 있으므로, 여러 숫자의 조합을 컴퓨터에 나타내기 위해 비트열을 사용한다.
단위 | 정의 | 저장공간 크기 |
비트(bit) | 0 또는 1 | 예 / 아니오 |
바이트(byte) | 8비트 | 영어 알파멧 한 개 |
킬로바이트(KB) | 1,000 바이트 | 몇 개의 문단 |
메가바이트(MB) | 1,000 킬로바이트 | 1분 길이의 MP3 노래 |
기가바이트(GB) | 1,000 메가바이트 | 30분 길이의 HD 영화 |
테라바이트(TB) | 1,000 기가바이트 | '심슨네 가족' 열 여섯 시즌 |
2 . 정보의 표현
문자의 표현
✔ 문자를 숫자로 표현할 수 있도록 정해진 약속(표준)인 아스키코드(ASCII)가 존재한다.
✔ 아스키코드(ASCII)는 총 8비트로 표현되며 그 중 1비트(패리티 비트)는 통신 에러 검출을 확인하는 기능을 담당한다.
✔ 그렇기 때문에 아스키코드로는 2^7, 총 128개의 문자를 표현할 수 있다.
✔ 아스키코드(ASCII)의 128개의 문자는 영문 키보드에서 표현할 수 있는 영문(대소문자), 특수 기호 등 이 정의되어 있다.
✔ 유니코드는 아스키코드(ASCII)보다 많은 비트를 사용해 더 다양한 문자를 표현할 수 있도록 지원한다.
(예) 😂 → 10진법으로는 128,514 → 2진법으로는 11111011000000010
그림, 영상, 음악의 표현
✔ 스크린을 통해 보는 이미지는 점들의 조합으로 즉, 픽셀의 조합이다
✔ 픽셀 : 3가지 색을 서로 다른 비율로 조합하여 특정한 색을 가지는 점
✔ RGB(Red, Green, Blue) 방식 : rgb(72,73,33)
✔ hex컬러코드(16진법으로 색상을 표현)
✔ 영상과 음악 또한 숫자로 표현할 수 있다.
✔ 영상 : 여러장의 이미지를 빠르게 넘겨 움직이는 것처럼 보이도록해서 출력
✔ 음악 : 음과 길이, 그리고 음량 3가지 값을 숫자로 표현해 출력
3. 알고리즘
알고리즘
✔ 입력(input) 에서 받은 자료를 출력(output) 형태로 만드는 처리 과정
✔ 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열
✔ 정확성과 효율성(작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지) 이 중요하다
의사 코드
✔ 컴퓨터에게 명령을 절차적으로 파악할 수 있게 도움을 주는 코드
✔ 함수(function), 조건, 논리(boolean), 루프(loop)... 등의 요소로 이루어지며, 이는 곧 알고리즘의 구성요소
4. 스크래치
✔ 스크래치 : 그래픽 프로그래밍 언어로, 블록을 이용해 원하는작업을 수행할 수 있는 웹 서비스
✔ 정보를 저장하는 공간으로, 저장된 정보를 불러내어 재 사용할 수 있다.
✔ 조건문 : 조건이 참인지 거짓인지를 판단하여 더 복잡한 프로그램을 만들 수 있게 한다
✔ 루프 : 여러 명령을 한 데 묶어 여러번 반복하게 한다
[출처] 부스트코스 | 모두를 위한 컴퓨터 과학(CS50 2019)
'Computer Science > CS50' 카테고리의 다른 글
[CS50 5주차] 2. 포인터 (0) | 2021.02.12 |
---|---|
[CS50 5주차] 1. 메모리 주소 (0) | 2021.02.12 |
[CS50 4주차] 알고리즘 (0) | 2021.02.12 |
[CS50 3주차] 배열 (0) | 2021.02.12 |
[CS50 2주차] C언어 (0) | 2021.02.12 |