CS50

[CS50] CH1.컴퓨팅 사고

peach_h 2023. 1. 26. 22:15

컴퓨터 과학 -  문제를 해결하는 것

어떤 Input이 들어왔을 때, Output을 만드는 중간 과정이다.

 

1. 2진법

컴퓨터는 2진법(0, 1) 으로만 말한다.

하지만 컴퓨터는 사진, 영상, 소리 다양한 일을 수행한다.

어떻게 하는 걸까 ?

 

우리는 많은 0과 1이 필요한데, 이것을 bit 이라고 한다.

bit : 0과 1로 신호를 나타내는 최소의 단위

 

bit이 컴퓨터랑 무슨 연관일까?

0과 1을 이용해 꺼짐과 켜짐을 표현할 수 있다.

컴퓨터는 bit을 활용해 정보를 표현하고, 물리적으로 실현한다.

-> 컴퓨터는 bit 형태로 데이터를 나타낸다

 

많은 정보를 표현하려면 8bit가 필요하다. ( 8 bit = 1 byte )

컴퓨터 안에는 수 많은 트랜지스터(=스위치)가 존재한다.

그리고 이 스위치들을 물리적으로 이용해 정보를 표현하고 값을 저장하는 것이다.

 

 

2. 정보의 표현

많은 스위치로 숫자를 표현한다면 숫자가 아닌 문자들은 어떻게 표현할까?

ASCII를 이용하여 숫자가 아닌 문자들, 기호까지도 표현이 가능하다.

ASCII - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

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

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

ko.wikipedia.org

예를들어, 우리는 먼 옛날부터 A를 65로 정했음

이러한 수를 2진법으로 나타내고, 컴퓨터 속 스위치를 활용하여 표현하는 것

 

ex ) 이모티콘 😘

이모티콘은 수 많은 점들로 이루어져있다.

이 점 하나하나를 RGB로 표현

RGB를 이용하면, 모든 색을 표현할 수 있음

-> 이 RGB를 0과 1로 컴퓨터에게 얼마나 사용할지 알려주어 색을 표현한다

( 빨강10 노랑10 파랑10 이런식으로 )

 

음악이나 다른 종류는 어떻게 할까?

음들을 숫자로 양자화하는 방식을 사용

 

 

3. 입력하는 법을 알았으니, 출력에 대해 말해보자

알고리즘 - 입력으로 부터 출력을 얻어내는 방법 -> 무언가를 해결하는 방법의 집합

 = Input을 Output의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열

 

ex ) Smith씨를 전화번호부에서 찾아보자

1~ 500페이지 까지 다뒤져보기 -> 너무오래걸림

1에서 250까지 검사 / 없다면 250 ~ 500까지 검사

이런식으로 범위를 점점 좁혀나가면, 시간이 훨씬 절약됨 !

1. 전화번호부 집기

2. 중간 펼치기

3. 페이지 보기

4. Smith가 페이지에 있으면

5.     전화하기

6. 중간보다 앞에 Smith가 있으면

7.     앞 페이지의 절반 펴기

8.     3번부터 다시 실행

9. 중간보다 뒤에 Smith가 있으면

10.     뒷 페이지의 절반 펴기

11.     3번부터 다시 실행

12. 전부 없으면

13.     그만두기

 

함수 - 컴퓨터에게 이 사람이 뭘할지 알려주는 동사

조건 - 여러 선택지 중 하나 고르기

불리언 - 답이 예/아니오 나 참/거짓 으로 나오는 질문 (0, 1로 표현하기 좋음)

루프 - 뭔가를 계속 반복하는 순환

 

 

4. 스크래치

컴퓨터가 뭘할지 단계적으로 프로그래밍 할 수 있는 언어

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

고양이 움직이기가 재밌음

 

 

 

 

 

 

 

 

강의정보

모두를 위한 컴퓨터 과학 (CS50 2019) > 오리엔테이션 : 부스트코스 (boostcourse.org)

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org