Computer Science

[CS50 2026] Lecture 0

mamdragors 2026. 4. 21. 08:47


Computer Science
컴퓨터 과학은 정보에 대한 연구이다.
어떻게 표현하는가, 어떻게 처리하는가.

Computational Thinking
컴퓨터 사고는 컴퓨터 과학에서 얻은 아이디어를 현실 세계의 문제에 적용하는 것이다.

컴퓨터 과학은 문제 해결에 관한 것이고 프로그래밍은 그 과정에서 배우게 되는 도구일 뿐이다.


문제

입력  -->  [          ]  -->  출력

입력값 : 해결하고자 하는 문제
출력값 : 원하는 목표이자 해결책
[   ] : 입력값을 출력값으로 변환하는 어떤 과정. 이 것이 '문제 해결' 이고 컴퓨터 과학의 본질이다.

이 때, pc, 휴대폰, 등등 다양한 컴퓨터 기기를 사용한다면  정보, 즉 입력 과 출력은 어떻게 표현해야 할까.

컴퓨터는 0 과 1을 사용한다.

한 손으로 숫자를 표현한다면 몇까지 셀 수 있을까?
단순히 손가락의 갯수로 세면 5 까지 셀수 있다.
순서를 부여하고 손가락을 접으면 0 펴면 1 이라고 가정하면 32 까지 셀 수 있다. 이런 방식을 2진법 이라 부른다. 영어로는 binary 또는 base2 이다.

base-2 (binary)
101  =  1×2^2 + 0×2^1 + 1×2^0

base-10 (decimal)
101  = 1×10^2 + 0×10^1 + 1×10^0

손가락 하나 대신 전구로 표현한다면 꺼지면 0, 켜지면 1 로, 전기가 흐르면 1, 차단되면 0 이라고 약속한다. 이때 전구 하나를 1bit 라고부른다.
1bit는 값을 2개만 저장할수 있다. 그래서 더 큰 수를 표현하가 위해 8개의 bit 가 연속으로 나열된 byte 를 사용한다.
  1byte = 8bit
1byte 는 0부터 255 까지 256개의 숫자를 표현할 수 있다.

Binary          Decimal
00000000 = 0
00000001 = 1
00000010 = 2
00000010 = 3
     ...
11111111 = 255

이제 숫자는 전기로 표현할 수 있게 되었다. 그러면 문자는 어떻게 표현할까?
미국에서는 특정 숫자가 특정 알파벳 하나를 가리키도록 약속을 정했다. 그 약속이 ASCII (미국 정보 교환 표준 부호 :  Standard Code for Information Interchange American) 이다.

[ 아스키 코드의 일부]

48  0        65  A        97     a
49  1        66  B        98     b
50  2        67  C        99     c
51  3        68  D        100  d
52  4        69  E        101   e
53  5        70  F        102   f
..                ..                ..

ASCII(아스키)는 8bit 를 사용하는데 1개는 제어비트로, 7개는 문자 표현에 사용하여 총128개의 문자를 표현할 수 있다.
ASCII 로는 전세계의 모든 문자를 표현할 수 없다 그래서 생긴 약속이 Unicode(UTF-8) 이다.

Unicode(유니코드)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준으로 문자, 숫자, 특수문자 뿐 아니라 이모지까지 표현할 수 있다. 코드 값은 같지만  디바이스에 따라서 이모지의 디자인이 다르게 표현 되기도 한다.

문자 이외의 데이터는 어떻게 표현 될까?
빛은 Red, Green, Blue 로 이루어져 있다. 각 색의 양을 256 단계로 나눴을때 Red 0, Green 0, Blue 0 만큼 있다면 빛이 없으므로 검정색이다. Red 255, Green 255, Blue 255 가 있다면 흰색이다. 앞에서 1byte, 즉 8bit 는 256 개의 값을 표현할 수 있다는 것을 알았다. 즉 3byte 로 1pixel 을 표현 할 수 있다. 무수히 많은 픽셀들이 모여서 이미지가 된다.
마찬가지로 음성, 동영상 등의 정보들 역시 약속을 정해 2진수로 표현된다.


다시 문제로 돌아가서

입력  -->  [          ]  -->  출력

입력값과 출력값을 어떻게 표현하는지 알았다.
입력값이 어떤 문제 해결 과정 을 통해 출력 값으로 바뀐다.
여기서 '문제 해결 과정' 이 알고리즘이다.

알고리즘은 어떤 문제를 해결하기 위한 단계적 지침이고, 이것이 바로 컴퓨터 과학의 본질이다.

소프트웨어란 코드로 구현된 알고리즘이고
컴퓨터가 이해하는 코드는 단계별 명령일 뿐이다.

CS50 에서는 문제를 해결하기 위한 다양한 언어와 다양한 방법론통해 자신을 표현하는 방법을 배운다.
다양한 언어를 익히면 다양한 문제를 해결할 수 있을 뿐 아니라 더 나은 업무도구가 되어 시간을 절약할 수 있다.


https://youtu.be/UuIEbpQms8o

CS50x 2026 - Lecture 0 - Scratch

***This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.*** TABLE OF CONTENTS00:00:...

www.youtube.com

https://scratch.mit.edu

Scratch - Imagine, Program, Share

Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.

scratch.mit.edu


'Computer Science' 카테고리의 다른 글

CPU  (0) 2026.01.19