CS50 2019 (David J. Malan) - 1

Minkyu Shin·2023년 3월 26일
0

CS

목록 보기
1/3
post-thumbnail

1. What is Computer Science?

  • 문제를 해결하는 과정 (Process of Problem Solving)
  • input -> ? -> output
    => ?에 무엇이 들어길지 고민하는 것
    -David J. Malan

결국, 어떤 output(결과)를 원할 때 그 문제를 어떻게 해결할지 답을 찾는 것


2. Computational Thinking

1. 이진법 (binary notation)

  • 컴퓨터는 0과 1의 조합만으로 이야기 함
  • 2의 거듭제곱을 사용하는 pattern
  • bit : binary digit, 이진 숫자 0 또는 1
  • 비트열 : 여러 숫자 조합을 나타내기 위해 비트를 연결하여 사용
    e.g. byte = 8개의 bit 조합 = 2^8개의 서로 다른 바이트 존재 가능
  • 컴퓨터는 수 많은 비트를 활용하여 정보를 표현
    e.g. on / off, charging / not chraging
  • 트랜지스터를 물리적으로 이용하여 정보를 표현, 값을 저장

2. 정보의 표현

  • 그렇다면 문자는 어떻게 표현 할까?
  • 컴퓨터가 숫자로 정보를 표현한다면... 문자를 표현하는 숫자를 정의하면 된다!
  • Unicode
  • 똑같은 원리로 색을 RGB로 표현
  • 컴퓨터는 0과 1을 사용하여 2진수를 나타내고
    -> 이를 통해 10진수를 나타내고
    -> 이를 통해 화면 상의 글자나 색을 나타내고
    -> 나아가 영상과 같은 것도 나타낸다
  • 결국 어떤 방법을 사용해서 정보를 나타내든 0과 1들로 표현이 가능

3. 알고리즘

3-1. 알고리즘이란?
  • 문제를 해결하는 단계적 방법 -> 앞서 고민한 ? 에 들어갈 것
  • input을 output으로 바꾸기 위해 수행되어야 할 규칙들의 순서적 나열
3-2. 좋은 알고리즘이란?
  • 정확하고 효율적인 알고리즘
  • 정확성도 높고, 작업을 완료하기까지 드는 시간과 노력이 적어지는 알고리즘
3-3. 의사 코드 (pseudo code)
  • 어떠한 언어로든 생각을 간결하게 정리한 코드와 비슷한 구문
  • e.g. 전화번호부에서 Mike Smith를 찾는 알고리즘
1. Pick up phone book
2. Open to middle of phoe book
3. Look at page
4. If Smith is on page
5.    Call Mike
6. Else if Smith is earlier in book
7.    Open to middle of left half of book
8.    Go back to line 3
9. Else if Smith is later in book
10.   Open to middle of right half of book
11.   Go back to line 3
12. Else 
13.   Quit
profile
개발자를 지망하는 경영학도

0개의 댓글