상세 컨텐츠

본문 제목

부스트코딩 뉴비챌린지 스터디 1주차 : 컴퓨팅 사고

IT/스터디

by J KIMS 2020. 7. 14. 14:42

본문

반응형

부스트코딩 뉴비챌린지 스터디 1주차

Computational Thinking, Scratch

 

 

[부스트코스] 모두를 위한 컴퓨터 과학 (CS50 2019) 강좌소개 : edwith

- 부스트코스

www.edwith.org

 

위 강의를 듣고 중요하다고 생각한 내용들을 정리, 요약해보았습니다.

스터디에 참가중이지 않은 분들도 위 사이트에서 수강신청을 통해 듣는 것이 가능합니다.

1) 이진법 💡

 

컴퓨터와 연결된 유일한 물리적 자원은 전기 → 여기에는 ON/OFF 라는 두 가지 상태만이 존재함

→ 이는 2진법으로 표현하기에 적합함

 

직접 무대 위에서 전구를 끄고/키고 하는 것을 통해 이진법에 익숙해지도록 하는 수업 방식이 인상깊었다

 

십진법에서는 첫번째 자리가 10^0, 두번째 자리가 10^1, 세번째 자리가 10^3..

각 자리가 10의 거듭제곱을 나타낸다.

 

이진법에서 첫번째 자리는 2^0,두번째 자리는 2^1, 세번째 자리는 2^2 ..

각 자리가 2의 거듭제곱을 나타낸다. 그리고 오로지 숫자 0과 1만을 사용해 나타낸다.

 

컴퓨터는 이진법으로 표현한 하나의 자릿수를 비트(bit)라는 단위로 부른다.

그리고 여덟개의 비트가 모여서 하나의 바이트(byte)라는 단위를 형성한다.

 

즉, 1바이트 = 8비트 이다.

 

바이트보다 더 큰 단위로 킬로바이트가 존재한다. 킬로바이트는 1000바이트와 같다.

메가바이트는 1000킬로바이트와 같다. 같은 방식으로 기가바이트, 테라바이트도 존재한다.

 

Q1. 5를 2진법으로 바꿔보면 어떻게 될까요?

A1. 5 = 2^2 + 1 이니까 5를 2진법으로 바꾸면 101

 

 

2) 정보의 표현

 

컴퓨터에서 문자나 이미지는 어떻게 표현될까?

 

문자는 ASCII(아스키코드)라는 정해진 규칙에 따라 표현된다.

 

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

여기에 들어가면 아스키코드표를 확인해볼 수 있다.

 

예를 들면, 알파벳 A의 대문자는 아스키코드표에서 10진수로 65라고 정해져있다.

컴퓨터에서는 65를 이진법으로 변환한 1000001로 나타낸다.

 

아스키코드의 이름에 American이 들어가있듯이 이는 미국 중심적으로 만들어졌다.

후에 다양한 언어와 이모티콘(😎😜이런것들!!) 등을 나타내기 위해 아스키코드의 상위 그룹인 유니코드(Unicode)가 탄생한다.

 

마찬가지로 그림도 숫자로 표현될 수 있다.

우리는 그림이 무수한 점으로 이루어져있다는 개념에는 익숙하다.

그런 작은 점을 픽셀이라고 부르는데, 픽셀의 색을 나타내기위해 RGB 표현 방식을 이용한다.

 

RGB는 Red,Green,Blue의 앞글자를 딴 것인데, 이 세가지 색을 이용해 화면에 보이는 색을 만들어낸다.

예를 들면, 빨간색 72, 초록색 72, 파란색 33을 섞으면 우리 눈에는 노란색이 보인다.

이 RGB코드를 이용해 우리는 이미지를 숫자로 표현할 수 있는 것이다.

 

 

그렇다면 영상이나 우리가 즐겨 쓰는 밈같이 움직이는 사진은 어떻게 나타내는 걸까?

그것들은 사진을 연속적으로 무수히 이어붙인것과 동일하기 때문에 역시 숫자로 표현이 가능하다.

 

유명한 밈인 Cat Typing

 

Q2.  CS50을 2진법으로 표현해보세요.

A2.

C (아스키 코드 67) → 이진법 01000011

S (아스키 코드 83) → 이진법 01010011

50 → 이진법 00110010

.

.

CS50 → 01000011 01010011 00110010

 

 

3) 알고리즘

 

알고리즘은 입력(input)을 출력(output)형태로 만드는 처리과정.

 

같은 결과를 내도 여러가지 알고리즘이 존재할 것이며, 이때 정확하고 효율적인 알고리즘을 찾는 것이 중요함.

 

알고리즘은 의사코드(pseudo code)라는 방식으로 정리할 수 있음. (실제로 프로그램에 쓰이는 코드와는 다름)

 

Q3. 친구와 1부터 100까지 숫자 중 1가지 숫자를 맞추는 스무고개 게임을 하려고 합니다. 이 때 사용할 알고리즘을 의사코드로 표현하면 어떻게 될까요?

A3. 

1. 친구에게 1~100의 범위에서 숫자를 하나 고르게 한다.

2. 친구에게 숫자가 주어진 범위의 중간값 = (최솟값+최대값)/2 과 같냐고 묻는다

3. 친구가 같다고 한다면

4.    게임종료

5. 그렇지 않다면 숫자가 중간값 보다 큰지 묻는다

6.    그렇다면 최대값은 그대로 두고, 최솟값을 중간값으로 바꾼 뒤 2로 돌아간다.

7.    그렇지 않다면 최솟값은 그대로 두고, 최댓값을 중간값으로 바꾼 뒤 2로 돌아간다. 

 

관련 영상 ▼ 

 

 

반응형

관련글 더보기

댓글 영역