Skip to content

Latest commit

 

History

History
62 lines (51 loc) · 3.63 KB

File metadata and controls

62 lines (51 loc) · 3.63 KB

프로그래밍 맛보기

수업의 목표

  • 컴퓨터가 작동하는 방식을 체험해보기
  • 자연 언어와 프로그래밍 언어의 차이 이해하기, 프로그래밍 언어의 필요성 이해하기
  • 프로그래밍 언어 맛보기

컴퓨터처럼 생각해보기

  • 알고리즘 : 모호하지 않고 정확하고 유한하게 끝나는 것 ###상황: “11명으로 구성된 팀이 있다”
  1. [개인] 2~3명 단위로 구성된 소그룹 만들기. * 의견A: (1,2), (3,4), (5,6), (7,8), (9,10,11) * 의견B: (1,11), (2,10), (3,9), (4,8), (5,6,7) * 의견C: (1,2,3), (4,5,6), (7,8,9), (10,11) * 의견D: (1,5,9), (2,6,10), (3,7,11), (4,8)

  2. [개인] D 방법으로 나누는 절차를 글로 적어보기. * 의견: 4로 나눈 나머지가 같은 수끼리 묶는다 * 의견: 그룹을 네 개 만들고, 1~4까지를 각 그룹에 넣고, 5~8까지를 각 그룹에 넣고, 911은 첫 세 개 그룹에 넣는다. * 의견: 14조를 나누고, 제일 앞사람부터 각 조에 순서대로 넣는다.

  3. [설명] 자연 언어의 모호성 * 모호성을 줄이기 위하여 지시 의도를 밝힘 => "2~3명 단위로 구성된 소그룹 만든다. 되도록 2명 단위 그룹이 많아지도록 한다."

  4. [팀별] 다양한 사람과 교류하기 위해 1시간 단위로 소그룹을 바꾸고자 함 * 의견: 1,2,3그룹을 섞고, 4,5그룹을 섞는다. 그 다음엔 1,4그룹과, 2,3,5그룹을 섞는다. * 의견: 1~11을 나열한다. 제일 앞과 제일 뒤에서 하나씩 뽑아서 그룹을 만든다.

    • (1,11), (2,10), (3,9), (4,8), (5,6,7)
    • (1,7), (11,6), (2,5), (10,8), (3,4,9)
  5. [참고] “임의로”하는건 컴퓨터가 가장 못하는 일 중 하나. 컴퓨터가 만들어내는 난수는 의사난수(pseudo random number) Pseudo random number generator : 주기가 굉장히 긴 함수 Random seed : 주기의 시작점(주로 1/1000초의 현재 시간을 사용)

  6. [설명] 문제를 어떻게 나눌 것인가? 모듈화, 재활용, 재귀적 결합, 추상화, 소프트웨어 공학 * 모듈화 : 어떤 작은 단위로 나누는 것 * 재활용 : 실제로는 이미 알고있는 어떤 알고리즘으로 분해하여 풀이 해법들을 재활용 함. * 대부분의 알고리즘들은 거의 풀려 있음. * 재귀적 결합 : 어려운 개념을 한 마디로 표현할 수 있게 됨. * (eg) 어떤 자연수보다 하나 큰 수를 반환하라. -> Increment * 더하기>곱하기>거듭제곱>2의n승>제곱근> … 수 체계가 확장됨

  7. [설명] 지난 “네트워킹” 시간 팀 편성에 사용한 코드 살펴보기. 표준편차 활용하기 * a,b,c,d 중 (a,b)가 만날 때 마다 1씩 증가.>전체 숫자들의 표준편차가 작을수록 좋음. * __computable__하지만 __intractable__한 문제. * 5000번 해 본 후 가장 표준편차가 작은 솔루션을 선택.(Heuristic Method)

프로그래밍 언어 맛보기

스크래치 실습:

  • https://scratch.mit.edu 소개
  • 선그리기. 이동
  • 원 그리기. 이동과 회전(sequence)
  • 나선 그리기. 변수(variable), 연산자(operator)
  • 반복하기(repetition + recursive composition)
  • 점선 그리기(selection)

프랙탈 아트 소개: 나무 그리기

https://www.google.com/search?biw=758&bih=700&tbm=isch&sa=1&ei=Fi87W8e3OIyu8QX5w7OQAg&q=fractal+trees&oq=fractal+trees&gs_l=img.3..0i19k1.745.875.0.1231.2.2.0.0.0.0.100.192.1j1.2.0....0...1c.1.64.img..0.2.191...35i39k1j0i30k1.0.BMe1u5zIfwI

마크다운 문서 작성에 유용한 타이포라

https://typora.io/