프로그래밍 맛보기

수업의 목표

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

컴퓨터처럼 생각해보기

  • 알고리즘 : 모호하지 않고 정확하고 유한하게 끝나는 것

    상황: “11명으로 구성된 팀이 있다”

  • [개인] 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)
  • [개인] D 방법으로 나누는 절차를 글로 적어보기.

    • 의견: 4로 나눈 나머지가 같은 수끼리 묶는다
    • 의견: 그룹을 네 개 만들고, 1~4까지를 각 그룹에 넣고, 5~8까지를 각 그룹에 넣고, 9~11은 첫 세 개 그룹에 넣는다.
    • 의견: 1~4조를 나누고, 제일 앞사람부터 각 조에 순서대로 넣는다.
  • [설명] 자연 언어의 모호성

    • 모호성을 줄이기 위하여 지시 의도를 밝힘 => "2~3명 단위로 구성된 소그룹 만든다. 되도록 2명 단위 그룹이 많아지도록 한다."
  • [팀별] 다양한 사람과 교류하기 위해 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)
  • [참고] “임의로”하는건 컴퓨터가 가장 못하는 일 중 하나. 컴퓨터가 만들어내는 난수는 의사난수(pseudo random number) Pseudo random number generator : 주기가 굉장히 긴 함수 Random seed : 주기의 시작점(주로 1/1000초의 현재 시간을 사용)

  • [설명] 문제를 어떻게 나눌 것인가? 모듈화, 재활용, 재귀적 결합, 추상화, 소프트웨어 공학

    • 모듈화 : 어떤 작은 단위로 나누는 것
    • 재활용 : 실제로는 이미 알고있는 어떤 알고리즘으로 분해하여 풀이 해법들을 재활용 함.
    • 대부분의 알고리즘들은 거의 풀려 있음.
    • 재귀적 결합 : 어려운 개념을 한 마디로 표현할 수 있게 됨.
    • (eg) 어떤 자연수보다 하나 큰 수를 반환하라. -> Increment
    • 더하기>곱하기>거듭제곱>2의n승>제곱근> … 수 체계가 확장됨
  • [설명] 지난 “네트워킹” 시간 팀 편성에 사용한 코드 살펴보기. 표준편차 활용하기

    • 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/ #

results matching ""

    No results matching ""