[CS50 2019] 0. Computational Thinking

모두를 위한 컴퓨터 과학

1. 비트와 바이트

비트 (Bit)

  • 정보를 저장하고 연산을 수행하기 위한 컴퓨터의 측정 단위
  • 이진 숫자라는 뜻을 가진 “Binary Digit”의 줄임말
  • 0과 1, 두 가지 값만 가질 수 있는 측정 단위
  • 컴퓨터는 비트를 가지고 수학적 연산을 하기 때문에, 2진수의 수 체계를 가짐

바이트 (Byte)

  • 많은 양의 데이터를 나타내기 위해 비트열을 사용
  • 바이트(byte)란 8개의 비트가 모여 만들어진 것
  • 즉, 256개의 서로 다른 바이트가 존재함

Byte

2. ASCII 코드

  • 문자를 컴퓨터가 이해할 수 있는 이진 데이터(0 또는 1)로, 혹은 그 반대로 변환하는 표준 방법
  • ASCII에서 소문자는 같은 대문자 글자보다 항상 2의 5제곱만큼 큼

유니코드 (Unicode)

  • 전 세계의 모든 문자를 표현할 수 있는, 100만 개 이상의 문자들을 포함하는 문자 인코딩 표준
  • ASCII 코드로 나타낼 수 없는 문자들을 표현하기 위해 만들어짐
  • 유니코드의 첫 128개의 문자는 ASCII의 128개의 문자와 동일하므로 서로 호환 가능

3. 알고리즘

  • 입력을 출력으로 바꾸기 위해 컴퓨터가 따르는 일련의 절차
  • 알고리즘을 평가할 때는 정확성도 중요하지만, 효율성도 중요
  • 효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일 수 있는지에 대한 척도

의사 코드 (pseudo code) 예시

pick up phone book
open to middle of phone book
look at names
if "Smith" is among names
    call Mike
else if "Smith" is earlier in book
    open to middle of left half of book
    go to line 3
else if "Smith" is later in book
    open to middle of right half of book
    go to line 3
else
    give up