cs50 1강
들어가기에 앞서
앞으로의 공부 내용은 모두 위 강의 내용을 바탕으로 작성될 예정입니다.
혹시 강의가 궁금하거나 보다 자세한 사항이 궁금하신 분들은 여기로 들어와서 강의를 보시면 될 것 같습니다(공짜임)
꼭 알고 가야하는 키워드
- 컴퓨터 과학은 무엇일까?
- 2진법의 정의와 why
- 비트와 바이트
- 정보와 컴퓨터의 소통방식
- 알고리즘 그리고 의사코드
컴퓨터 과학과 2진법
우선 이진법은 0과 1을 사용하여 우리를 둘러싼 세계를 표현해내는 방식이다.
놀라운 것은 컴퓨터는 우리가 익히 알고있는 수체계(100이라거나 1억이라거나) 외에도 이미지나 글자들 역시 모두 2진법을 통하여 소통을 한다는 것이다.
그렇다면 컴퓨터과학은 과연 이러한 소통 방식과 어떤 영향을 끼치길래 공부해야만 하는 것일까?
기본적으로 컴퓨터 과학은 문제 해결을 위한 학문인데, 당연 그 문제 해결은 입력과 출력으로 이루어져있다.
그리고 그 입출력을 해결하기 위한 표준적 표현방식이 2진법이다.2진법의 단위 비트
자, 비트는 오로지 0이냐 1이냐(다른 말로 표현하면 전구가 켜졌느냐 꺼졌느냐)만 존재한다.
그리고 이 비트들이 8개 모여 만들어진 결과물이 바로 비트열이다.
이러한 비트열들을 우리는 바이트라고 명명하기로 약속한 것이다.다양한 정보의 표현
위에서 컴퓨터는 숫자 이외에도 글자 사진 등을 모조리 0과 1로 바꾸어 소통해야한다고 짧게 언급한 적 있다.
아스키 코드
는 바로 128개 약속(부호)를 통해 대소문자 알파벳과 문장부호 등 간단한 문자들을 0과 1로 치환시키는 일종의 규약이다.유니코드는?
유니코드는 아스키 코드만으로 표현하기 어려운 한글이나 이모티콘 등을 보여줄 수 있도록 하는 약속 체계이다.
색상의 표현
우리가 보통 css에서 색상을 조절할 때에는
#색상명
을 많이 사용하지만, 사실 rgb값으로 컴퓨터와 소통하는 것 역시 가능하다.
그렇다면 얼핏 보았을 때에는 rgb값은 뭐 0과 1로만 이루어진 것이 아니니 이게 왜 컴퓨터와의 소통 체계인가 의구심이 들 수 있다.
간단하게 설명하자면, 색이 표현되는 방식은 2진법으로 r의 전구를 끌지 킬지 이런 식으로 이루어져있고 그 외에도 색의 농도를 2의 제곱들로 나타내는 것이다.
더 자세한 설명을 보고싶다면 디스플레이와 2진법에 좀 더 자세하고 친절한 내용이 나와있다.알고리즘
알고리즘이란 컴퓨터 과학의 본질적 요소인
입력
과출력
을 어떻게 하면 더 효율적인가에 대한 고민이나 마찬가지이다.
알고리즘은 보다 효율적인 선택을 위하여 명령 수행의 규칙들을 나열하는 방식인 셈이다.
즉 알고리즘은 정확한 정답 도출과 함께 효율성을 가지고 있어야만 한다.의사코드
알고리즘을 작성하기 위해 스케치를 하는 단계이다.
즉 필요한 행동이나 조건에 대해 컴퓨터가 해야할 절차를 정하는 단계로,c언어에서는 위 단계에서 해야하는 일에 해당하는 동사가 함수로 변환된다.
또한 행동에 있어서 때로는 조건이 필요한데 우리는 이 선택들(boolean)이 참이냐 거짓이냐에 따라 다른 행동을 부여할 수도 있다.
마지막으로 알아볼 키워드는 루프로 무언가를 반복하는 행위이며, 여기나온 선택 행동 루프 등은 서로에게 영향을 주며 어떠한 정답을 향해 나아가게 된다.
댓글남기기