Computer Science/CS 50 Harvard
-
Types, format codes, operators | CS 50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 19:15
CS 50 Fall 2021 강의를 정리한 것 입니다. Types Variables를 이용하려면 다양한 Type들이 존재한다. 이런 type들을 이용해서 데이터를 나타낼 수 있다. bool, a Boolean expression of either true or false true인지 false인지 나타내는 bool, 또는 Boolean expression char, a single character like a or 2 a, 2, $ 와같은 하나의 캐릭터를 나타내는 char double, a floating-point value with more digits than a float 소수점을 나타낼 수 있고, float보다 더 많은 자리를 나타낼 수 있는 double float, a floating-poi..
-
main, header files, commands | CS 50 Week 1Computer Science/CS 50 Harvard 2021. 11. 6. 18:49
CS50 2021년 가을 강의를 한글로 정리한 것입니다. Main Scratch를 이용할 때, 우리는 위에 보이는 when flag clicked라는 버튼을 사용해서 프로그램을 동작시켰다. (물론 이 이외에도 다른 방식으로 프로그램을 동작시키는 방법도 있다). C언어에서는 이 블록 대신, main 이 이 역할을 대신한다. int main(void) { } 위 코드가 바로 main인데, curly braces, 즉 { 와 }는 코드를 감싸준다. Header files #include #include int main(void) { printf("hello, %s\n", get_string("What's your name? ")); } 이 코드를 보자. 위쪽에 #include 그리고 #include 와 같은 ..
-
Functions, arguments, return values, variables | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 5. 19:17
Harvard CS50 강의를 한글로 정리한것입니다. 이 다음 강의를 진행하기 위해서는, cs50의 라이브러리를 설치해야한다. 설치 과정에 대해서는 cs50 github페이지에 나와있다. printf scratch 프로그램을 배울 때, say 블록은 어떤 문장을 프린트 할 수 있게 해주었다. 이것을 C에서는 printf를 사용해서 다음과 같이 코딩할 수 있다. printf("hello, world"); printf 에서 f 뜻은 "formatted" string을 뜻한다. 즉, 원하는 포맷으로 문장을 만들어서 출력한다는 뜻이다. String이란, characters 또는 words들이 모인것이고, 앞뒤로 "" 를 붙여주면 스트링으로 인식한다. 괄호 또는 parentheses (), 는 inputs이나 a..
-
IDEs, compilers, interfaces | CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 4. 20:43
Code to binary #include int main(void) { printf("hello, world\n"); } 위 코드를 컴퓨터에서 프로그램으로 돌리려면 어떻게해야할까? 다시 돌아가서 컴퓨터가 저것을 어떻게 알아들을 수 있을까? 우리는 먼저 저 모든 것들을 컴퓨터가 알아들을 수 있게 1과 0들로 만들어주어야한다. 이작업을 인간이 하기에는 너무 오래 걸리기때문에, 프로그래밍을 하는 의미가 없어진다. 그래서 개발자들은 IDE들을 쓴다. IDE IDE라는것은 integrated development environment의 줄임말인데, 코드를 쓰고, 번역하고, 돌릴 수 있게 해주는 툴이다. IntelliJ, Eclipse, Visual Studio등이 가장 유명한 IDE들이다. 자, 그렇다면 Vis..
-
C | Harvard CS50 Week 1Computer Science/CS 50 Harvard 2021. 11. 4. 00:03
CS50 Week1 강의를 한글로 정리한것입니다. C는 이런식으로 생겼다. #include int main(void) { printf("hello, world\n"); } Scratch를 이용해서 코딩에 대한 이해를 할 때, 아래와 같은 것들을 배웠다. functions arguments, return values conditionals Boolean expressions loops variables … 이것들을 C로 쓴다면 어떨까? 사람의 언어들과 마찬가지로 이 언어에도 문법이 존재하고 규칙(Syntax)이 존재한다. 하지만, 언어를 조금씩 배워가는 아이처럼, 한꺼번에 모든것을 알 필요는 없다. 매일매일 해나가면 자연스럽게 익숙해진다. 그렇다면, 좋은 코드를 쓴다는것은 어떤것일까? 하버드 CS50 강의..
-
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 // 만약 그 사람의 이름이..