2020/11/01 - [Learn/IT] - 하버드 컴퓨터 과학 강의 듣기 CS50
하버드 컴퓨터 과학 강의 듣기 CS50
www.youtube.com/watch?v=jjqgP9dpD1k 하버드 대학교에서 강의한 컴퓨터 과학(CS50) 영상 우리는 컴퓨터를 사용하여 문제를 해결한다. 그럼 컴퓨터는 어떤 원리로 작동할까? 비트와 바이트 컴퓨터는 비트bit
totalthink.tistory.com
알고리즘
내가 입력한 정보를 컴퓨터는 어떻게 가공하여 출력하는 걸까?
우리가 일상에서 문제를 해결하는 것과 마찬가지로 컴퓨터 또한 순서에 따라 필요한 동작을 하며 문제를 처리한다.
이를 알고리즘Algorithms 이라고 한다.
알고리즘이란 입력값input을 출력값output으로 바꾸기 위해 수행되는 규칙들의 순서적인 나열이다.
의사코드
영상에 나오는 일례로 우리가 영어 전화번호부에서 Mike Smith를 찾는다고 가정해보자.
여러가지 방법이 있지만 정확하면서 효율적인 방법으로 컴퓨터가 수행하는 알고리즘을 의사코드 Pseudo code로 작성해보면 아래와 같다.
1 전화번호부를 집어든다.
2 전화번호부의 중간을 편다.
3 페이지를 살핀다.
4 만약 Smith가 페이지에 있다면
5 그에게 전화를 건다.
6 그렇지 않고 만약 Smith가 펼친 책의 앞쪽에 있다면
7 앞쪽의 책의 중간을 편다.
8 3번째 라인으로 돌아간다.
9 그렇지 않고 만약 Smith가 펼친 책의 뒤쪽에 있다면
10 뒤쪽의 책의 중간을 편다.
11 3번째 라인으로 돌아간다.
12 그렇지 않으면
13 그만둔다.
우리 언어에 '동작을 나타내는' 동사가 있듯이, 컴퓨터의 언어에도 집어든다, 편다, 살핀다, 전화를 건다, 그만둔다와 같은 동사가 있고 이를 함수function이라고 부른다.
만약, 그렇지 않고 만약, 그렇지 않으면에 해당하는 if, else if, else는 조건이라고 부른다.
스미스가 페이지에 있다면, 앞쪽에 있다면, 뒤쪽에 있다면과 같이 답이 참true 혹은 거짓false으로 나오는 질문을 불리언Boolean으로 부른다. 수학자 Boole의 이름에서 따온것이며 참 혹은 거짓은 2진법에서 0또는 1로 표현할 수 있다.
3번째 라인으로 돌아간다라는 부분은 컴퓨터를 계속 일정구간으로 돌아가 반복하게 만드는 루프Loop라고 한다.
알고리즘의 이해를 돕는 영상
'Learn > IT' 카테고리의 다른 글
컴파일링이란? (0) | 2020.11.22 |
---|---|
하버드 컴퓨터공학 CS50 - C언어 배우기 (0) | 2020.11.07 |
CS50 - 정보의 표현 (0) | 2020.11.02 |
하버드 컴퓨터 과학 강의 듣기 CS50 (0) | 2020.11.01 |