Computer Science
-
Python Basic and InstallationComputer Science/Basic Programming with Python 2021. 11. 3. 00:26
Python의 장점 Life is too short, you need python Python은 쉽고 간결하다. C에서는 "Hello world"를 출력하기 위해 6~8줄을 써야하지만, python에서는 한줄만 적으면 된다. print("Hello world") Python은 라이브러리가 많고 활용이 쉽다. 특히 BeeautifulSoup, Numpy, Pandas, Scipy, Scikit-learn 등 데이터 수집/분석을 위한 라이브러리가 많고, 아래와같이 간단한 명령어로 라이브러리(예시에서는 numpy)를 설치할 수 있고, 사용도 아주 쉽다. pip install numpy 최근, AI/ML 대부분의 라이브러리들은 Python 기반으로 이루어져있고, 첫 프로그래밍 언어로 Python을 배우거나, P..
-
Abstraction, Condition and More in Scratch | Harvard CS50 Week 0Computer Science/CS 50 Harvard 2021. 10. 31. 14:05
하버드 CS50 강의를 한글로 정리한것입니다. loop 위와같이 코드를 작성하면 고양이는 1초씩 간격을 두고 야옹~ 하고 우는 소리를 낸다. 하지만 이 코드에는 한가지 개선사항이 있다. 무엇일까? 지금은 3번만 울게끔 하기때문에 괜찮지만 만약 100번을 울게 하고싶다면? 코드가 아주 길어질것이다. 이럴때 사용할 수 있는것이 바로 loop이다. 마치 돌림노래처럼, 똑같은 부분을 반복하는것이다. repeat이라는 블럭을 사용해서 "울고 - 1초기다리기" 를 10번 반복 시키면, 위에 있는 코드와 같은 결과물을 만들어 낼수 있는데, 코드의 길이도 짧고, 개발자의 시간도 훨씬 절약된다. 만약 10번 반복을 이전과 같이 개발했다면 play sound 블록 10개, 1초기다리기 블록 10개, 총 20개의 블록이 필..
-
Scratch | Harvard CS50 Week 0Computer Science/CS 50 Harvard 2021. 10. 30. 18:54
Harvard 대학교 CS50 2021년 강의를 한글로 정리한것입니다. "Hello world" C로 "Hello, world"라는 메세지를 내뱉기 위해서는 아래와 같은 코드를 작성하면 된다. #include int main(void) { printf("hello, world\n"); } 만약 이것을 Python으로 하려면 이렇게 하면 된다. print("hello, world") Scratch 처음 프로그래밍을 배우는 사람이라면, 이것이 어떻게 다른지, 왜 다양한 언어가 존재하는지 모를것이다. 그런 사람들을 위해 시각화된 언어들이 존재하는데, 그중 Scratch라는 언어를 이용해서 블록을 움직이고 엮어서 알고리즘을 만들어볼것이다. 앞에서 보았던 C나 Python의 예시보다는 조금 친숙한 이미지이다. S..
-
Pseudocode | Harvard CS 50 Week 0Computer Science/CS 50 Harvard 2021. 10. 30. 15:11
Harvard CS50 강의를 한글로 정리한것입니다. Pseudocode 지난 내용에서 말했던 전화번호부에서 찾고자 하는 사람의 이름을 찾을 때의 알고리즘을, 정렬해본다면 어떨까? 영어나 한글같이 우리가 사용하는 언어를 이용해서 알고리즘을 나타내는것을 Pseudocode라고 하는데, 아래처럼 써볼 수 있다. 1 Pick up phone book // 전화번호부를 집고 2 Open to middle of phone book // 반절로 나눠서 3 Look at page // 페이지를 쳐다보고 4 If person is on page // 그사람이름이 페이지에 있다면 5 Call person // 그사람에게 전화한다 6 Else if person is earlier in book // 만약 그 사람의 이름이..
-
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..