본문 바로가기

Doc/컴퓨터

컴퓨터과학 CS50 2020 Lecture 0 : Scratch

 

 

 
 

<강의 필기>

 

 

 

Computing

computing이란 문제를 푸는 것이다.

 

computing의 작동 방식

일종의 blackbox를 거쳐 inputoutput이 된다.


문제가 해결되는 마법이 일어나는 과정을 따라가보자.

computing에서 inputoutput을 어떻게 표현할 수 있을까?

 

 

 

 

 

 

문제 1 숫자 세기

컴퓨터는 어떻게 숫자를 셀까?

인간은 숫자를 셀 때 손가락을 센다.

손가락을 세는 것보다는 decimal digit이 편한 해결 방법이다.

컴퓨터는 인간의 decimal digit보다 간단하게 binary digit을 사용한다.

 

binary digit01이 아닌 다른 숫자를 어떻게 표현할까?

 

0 1

 

binary digit의 자리수를 늘리면 된다.

자리수를 늘리기 위해서는 전구의 수를 늘려야 한다.

 

전구는 binary digit의 상징이다.

전구에 전기를 plug in하면 1이 되고 unplugin 하면 0이 된다.

 

여기서 전구의 개수를 늘려보자.

전구를 많이 쓰면 01이 아닌 더 많은 숫자를 표현할 수 있다.

 

전구 3개는 8개의 경우의 수(0 ~ 7)를 표현한다.

2^3 = 8

rightmost colum

hundreds place + tens place + ones place

sixtyfour place + thirtytwo place + sixteen place + eight place + four place + two place + one place

110010 = 50

 

전구 하나를 bit이라고 부르기도 한다.

binary digit의 최소단위이다.

 

 

 

 

 

문제 2 글자 쓰기

컴퓨터는 어떻게 글자를 쓸까?

 

letters of alphabetbinary number을 할당할 수 있다.

A’s Decimal Number is 65

B’s Decimal Number is 66

..

I’s Decimal Number is 73

 

 

특수문자 또한 가능하다.

33 is !

 


ASCII Code8 bit이다.

비유하자면 전구 8개로 작동하는 방식이다.

Each Character에는 각기 다른 8 bit가 부여되어 있다.

 

HI! = 72 73 33

 

 

ASCII Code의 한계

ASCII Code8 Bit 체제로 경우의 수 256개이다.

 

그러나 인간의 언어는 Accented Character을 포함하여

외국어 Asian. Arabic Langauge element is more thanr 256.

 

이 문제점을 해결하기 위해 Unicode가 탄생한다.

 

 

 

 

 

문제 3 그림 그리기

from electricty to number, from number to language으로

computing은 문제를 해결했다.

 

그렇다면 컴퓨터는 color는 어떻게 표현될까?

 

bit에는 RGB (Red. Green. Blue) 값이 하나씩 할당되어

컴퓨터 화면에 여러 개의 bitmixing한다.

 

redenss + greenness + blueness의 조합

 

화면의 점으로 분할되는데 이를 pixel이라고 한다.

coloful한 이미지를 뽑아내기 위해서는

더 많은 RGB pixel이 필요하기 때문에 killobyte. megabytes. gigabytes의 용량이 필요하다.

 

 

 

 

 

문제 4 비디오 재생하기

 

컴퓨터는 video file을 어떻게 표현하는가?

 

컴퓨터는 TV의 작동방식과 동일하다.

TV 화면을 보면 모니터에서 rapidly하게 RGB 픽셀을 바꾸는 것을 확인할 수 있다.

TV 비트 전환의 아날로그 옛날 방식 Andymation stp animation

 

 

 

 

프로그래밍

컴퓨터에는 모호하지 않고 정확하다.

알고리즘 전체를 고치는 것이 아니라 특정 영역에 위치한 버그를 고치는 방식을 따른다.

문제 전체를 쪼개고 쪼개서 큰 문제를 작은 문제로 나누어서

핵심적인 문제 영역에 파고들어가는 효율적인 해결 방식이다.

컴퓨터는 그 문제가 발생한 핵심 영역을 찾을 수 있도록 안내하고

프로그래머는 그 영역에 들어가 문제를 해결한다.

 

 

 

 

 

scratch

MIT 미디어 연구소의 교육용 프로그래밍 언어

pseudo code를 통해 알고리즘을 구현해본다.

 

 

pseudo code

컴퓨터 코드를 사람이 일상적으로 사용하는 말로 표현한다.

 

cat voice를 듣기 위해

목소리의 hyper parameterkitten으로 조정한다.

 

더 적은 퍼즐을 사용한다면

효율적인 더 좋은 프로그램이 된다.

 

sea lion의 울음소리에서 x, y, z... 로 음과 무음의 간격을 둔다.

 

고양이 울음소리 함수 정의

define meow

- repeat 3

- meow

 

 

 

 

 

 

 

강의 자료

 

Week 0 - CS50

Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, r

cs50.harvard.edu

 
 
 
It’s Rainig Men Music Video by Scratch Programming
 
 

https://scratch.mit.edu/projects/37412/

 

scratch.mit.edu

 

 
 
 

'Doc > 컴퓨터' 카테고리의 다른 글

컴퓨터과학 CS50 2020 Lecture 2 : Arrays  (0) 2022.05.27
컴퓨터과학 CS50 2020 Lecture 1 : C  (0) 2022.05.13
컴퓨터 구조 Fixed Point. Floating Point  (0) 2022.04.15
Hardware. Software  (0) 2022.04.15









>