Computer Science/CS 50 Harvard
-
Algorithms | Harvard CS 50 Week 0Computer Science/CS 50 Harvard 2021. 10. 29. 12:48
모든 내용은 하버드의 CS50 수업을 한글로 정리한것입니다. 다시 처음으로 돌아가서, 1과 0, binary bits로 우리는 컴퓨터가 알아들을 수 있도록 input과 output을 나타낼 수 있게 되었다. 그게 색깔이 될수도, 숫자, 알파벳, 한글, 음악, 이미지 또는 영상이 될 수 있다. 그렇다면, 이것들을 처리하는것은 무엇인가? 바로 알고리즘이다. Contacts 핸드폰의 전화번호찾는 Contacts기능을 생각해보자. 한글 또는 영문 순서대로 이름이 정렬되어있고, 각각의 이름에는 전화번호와 또다른 저장된 정보들을 볼 수 있다. 예전에는 어땠을까? 어렸을때 기억을 해보면 전화번호부라는것을 사용해서 번호를 찾았었던적이 있었다 (지금도 상호명등을 볼 수 있는 전화본호부가 존재하는것으로 보인다). 전화번호..
-
Images, video, sounds | Harvard CS 50 Week 0Computer Science/CS 50 Harvard 2021. 10. 28. 20:23
RGB bits를 이용해서 색깔 또한 나타낼 수 있다. 수많은 방법으로 색을 나타낼 수 있는데, 그중 가장 많이 사용되는것이 RGB인데, 빨강, 녹색, 파랑색이 얼마나 많이 섞여있는지를 나타내주는것이다. 예를 들어, 72, 73, 33이 앞에서 문자로 대입하면 Hi! 를 의미했다면, 색깔을 표현할 때, 앞에서부터 빨강, 녹색, 파랑의 값을 나타낼수도 있다. 각가의 숫자는 8bits로 256가지로 나누어질수도 있고, 즉 빨강, 녹색, 조합을 3 bytes(또는 24bits)로 나타냈을수도 있다. 이런 방식으로 더 다양한 수백만가지의 색깔을 나타낼 수 있다. 위 세 숫자를 색깔로 나타내면 아래와 같은 조금 어두운 노랑색이 된다. 마스크 이미지로 다시 돌아가서 생각해보자. 무슨 색이 어떻게 쓰였을까? 그것을 ..
-
글자와 이모티콘을 컴퓨터가 어떻게 알고있지? | Harvard CS50 Week 0 ScratchComputer Science/CS 50 Harvard 2021. 10. 27. 19:22
강의정보 ASCII 컴퓨터는 숫자로 대화한다. 그렇다면 컴퓨터에게 글자는 어떻게 알려줘야 좋을까? 바로 숫자와 글자를 map, 즉 매칭시켜주면 된다. 수십년전, 이렇게 숫자를 글자와 매칭하는 시스템을 만들었는데, 예를들면 알파벳 A는 65, B는 66과 같은 식이다. Binary(이진법)으로 표현하자면 "A"는 다음과 같다. 0 1 0 0 0 0 0 1 이런식으로 특수기호, 알파벳 대소문자를 연결해둔 map을 ASCII라고 한다. 아래 표를 보면, 각 숫자들이 어떻게 연결되어있는지 알 수 있다. 우리가 문자를 받았을 때, 사실 핸드폰에는 72, 73, 그리고 33과 같은 정보가 전달된다. 이 bits들은 ASCII를 잘 살펴보면 HI! 라는 텍스트인것을 확인할 수 있다. 더 정확하게는, 각 캐릭터(cha..
-
숫자를 나타내는 방법들 | Harvard CS 50 Week 0Computer Science/CS 50 Harvard 2021. 10. 26. 05:51
영상 강의 15:50 부터... 숫자를 세는 다양한 방법들 한 방에 몇명이 있는지 셀 때, 아마 우리는 손가락을 사용해서 1인당 1개의 손가락을 사용할것이다. 이 시스템은, unary(단항)라고 부르는데, 각각의 digit이 1을 의미하는것이다. 만약, 더 큰 숫자를 세야한다면, 우린 아마도 ten digits, 0부터 9라는 숫자들을 사용하는데, 이것을 decimal(십진법)이라고 부른다. 컴퓨터는 이보다 간단한 시스템을 쓰는데, 0과 1만을 사용하는 binary(이진법)이다. Binary (이진법) binary에서 0은 아래같이 나타낼 수 있다. 0 0 0 그리고 이것은 1이다 (여기서, 우리는 앞에 0 0 은 사실 안써도 되지만, 패턴을 간소화 하기위해서 붙여준것이다) 0 0 1 그리고, binar..
-
컴퓨터 공학이란? | Harvard CS50 Week 0 ScratchComputer Science/CS 50 Harvard 2021. 10. 26. 05:17
This is CS 50 | Week 0 Scratch 정말 좋은 세상이다. 하버드 수업을 실시간으로 또는 녹화 영상을 집에서 볼수 있다! CS50은 컴퓨터공학의 기본이 되는 지식을 배울 수 있는 수업이고, 하버드의 역사가 깊은 수업이다. 강의 슬라이드, 영상, 소스코드부터 노트까지 모두 하버드에서 공개를 하기 때문에 누구나 무료로 들을 수 있다. 유투브 채널도 있는데, 이번 가을 학기는 벌써 8주차가 되었고, 지난 학기들 영상부터 다양한 컴공과 지식을 얻을 수 있다. 오늘부터 시간날때마다 이 강의를 한글로 정리해보려고 한다. 컴퓨터공학이란 뭘까? 컴퓨터 공학(Computer Science)는 근본적으로 problem solving, 즉 문제를 푸는것이다. 단, 정확하게(precise) 그리고 체계적으로..