1) 2진법
컴퓨터 과학은 문제 해결에 대한 학문이다
문제 해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다
그 중간에 있는 과정이 바로 컴퓨터 과학이다
2진법
0,1,2,3,4,5,6,7,8,9 총 10개의 기호로 표현하는 것 => 10진법
0과 1로만 표현하는 것 => 2진법
'1x100 + 2x10 + 3x1 = 123'
2진법에서 11은 2¹x1 + 1x1 = 3 이다
마찬가지로 2진법에서 100은 2²x1 + 2¹x0 + 1x0 = 4이다
2진법에서 하나의 자릿수를 표현하는 단위를 비트(bit)라고 한다
비트
정보를 저장하고 연산을 수행하기 위해 컴퓨터는 비트(bit)라는 측정 단위를 씁니다. 비트는 이진 숫자라는 뜻을 가진 “binary digit”의 줄임말이며, 0과 1, 두 가지 값만 가질 수 있는 측정 단위입니다. 디지털 데이터를 여러 비트들로 나타냄으로써 두 가지 값만을 가지고도 많은 양의 정보를 저장할 수 있습니다. 또한 컴퓨터는 저장되어 있는 데이터를 수정하기 위해 비트에 수학적 연산을 수행할 수 있습니다.
비트열
하나의 비트는 0과 1, 이 두 가지의 값만 저장할 수 있습니다. 컴퓨터 내부에서 물리적 표현될 때는, 켜고 끌 수 있는 스위치라고 생각할 수 있겠습니다. (켜기=1, 끄기=0)
하지만 비트 한 개는 많은 양의 데이터를 나타내기에 턱없이 부족합니다. 그렇기 때문에 여러 숫자 조합을 컴퓨터에 나타내기 위해 비트열을 사용합니다. 바이트(byte)는 여덟 개의 비트가 모여 만들어진 것입니다. 하나의 바이트에 여덟 개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기 때문에 2^8 = 256 개의 서로 다른 바이트가 존재할 수 있습니다.
바이트가 모이면 더 큰 단위가 될 수 있습니다. 킬로바이트는 1,000 바이트, 메가바이트는 1,000 킬로바이트(100만 바이트), 기가바이트는 1,000 메가바이트(10억 바이트)입니다. 테라바이트는 1,000 기가바이트(1조 바이트)이며, 심지어 페타바이트와 엑사바이트와 같은 더 큰 단위도 존재합니다.
2) 정보의 표현
문자의 표현
설명미국정보교환표준부호 ASCII(아스키코드/American Standard Code for Information Interchange)
총 128개의 부호로 정의, 알파벳 A는 10진수 기준으로 65, 알파벳 B는 66
10진법 기준으로 65이므로 26x1 + 25x0 + 24x0 + 23x0 + 22x0 + 2x0 + 1x1 (64+1)로 표현할 수 있습니다.
따라서 A를 2진법로 표현하면 1000001 입니다.
아스키코드의 상위버전 Unicode(유니코드) 더 많은 비트를 사용하여 다양한 문자 표현 가능
작은 점을 픽셀이라고 부르고, 각각의 픽셀은 세 가지 색을 서로 다은 비율로 조합하여 특정한 색을 갖는다
숫자들을 표현하는 방식을 RGB(Red, Green, Blue) 라고 부른다
3) 알고리즘
알고리즘은 입력(input)에서 받은 자료를 출력(output)형태로 만드는 처리 과정
알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열
알고리즘을 평가할 때는 정확성도 중요하지만, 효율설도 중요하다
효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지에 대한 것
의사코드는 필요한 행동이나 조건을 잘 설정하여 컴퓨터가 수행해야 하는 일을 절차적으로 파악할 수 있게 도와준다
1. 전화번호부를 집어 든다
2. 전화번호부의 중간을 편다
3. 페이지를 본다
4. 만약 Mike Smith가 페이지에 있으면
5. Mike Smith에게 전화한다.
6. 그렇지 않고 만약 Mike Smith가 앞 페이지에 있으면
7. 앞 페이지의 절반을 편다
8. 3번째 줄부터 다시 실행한다
9. 그렇지 않고 만약 Mike Smith가 뒷 페이지에 있으면
10. 뒷 페이지의 절반을 편다
11. 3번째 줄부터 다시 실행한다
12. 그러지 않으면
13. 그만둔다
노란색으로 강조된 부분들은 함수(functions) 으로 부른다
함수는 컴퓨터에게 이 경우에는 사람에게 무엇을 할지 알려주는 동사와 같다
노란색으로 강조된 부분들은 조건이라고 부른다
이것은 여러 선택지 중 하나를 고르는 것
불리언(Boolean), 답이 예(Yes) or 아니오(No) 혹은 True/False, 2진법에서 0/1로 나오는 질문을 뜻한다
루프(loop), 뭔가를 계속해서 반복하는 순환
4) 스크래치 : 기초