Knowledge Map

컴퓨팅 사고 본문

기타

컴퓨팅 사고

2017. 6. 12. 03:08

Computational Thinking

○ Computational Thinking ( 컴퓨팅 사고 ) 란? 

컴퓨팅 사고란 문제에 대한 해결책을 컴퓨터 연산 또는 알고리즘으로 나타낼 수 있는 사고 프로세스이다. 컴퓨팅 사고를 통해서 우리는 복잡한 문제를 이해하고 계산 가능하게 접근할 수 있도록 해서 해결책을 개발할 수 있게 해준다.


컴퓨팅 사고를 하는 사람은 데이터를 모으고 해당 문제를 이해하기 위해서 분석한다. 그런 다음 더욱 간단한 문제로 분해해서 본다. 또한 그 문제에 대해서만 해결을 하는 것이 아니라 세부사항을 제거하고 패턴을 찾아서 유사한 유형의 문제들을 해결할 수 있도록 추상화한다. 문제를 해결하기 위한 단계를 정의하고 가능하면 해결책을 테스트 및 디버깅 해보기 위한 모델로 만들어 시뮬레이션을 해본다.

○ Computational Thinking Concept

컴퓨팅 사고의 개념은 문제해결과 관련된 멘탈 프로세스( 추상화, 알고리즘 디자인, 분해, 패턴 인지 ) 와 설질적인 결과( 자동화, 데이터 표현, 패턴 일반화) 가 있다.


  • Data Analysis            패턴을 찾거나 통찰력을 개발하여 데이터를 이해한다.
  • Data Collection         정보들을 모은다.
  • Abstraction                주요 아이디어를 정의하기 위해 관련 정보들을 추출 및 식별한다.
  • Algorithm Design        유사한 문제 또는 작업을 해결하기 위해 각각의 명령들을 순서적인 단계로 작성한다.
  • Decomposition           데이터, 프로세스 또는 문제를 작고 다루기 쉬운 문제로 나눈다.
  • Pattern Recognition     데이터의 패턴, 경향, 규칙성을 관찰한다.
  • Automation               컴퓨터, 기계로 반복적인 작업을 수행한다.
  • Data Representation    적절한 그래프, 차트, 단어, 이미지로 데이터들을 묘사하고 구성한다.
  • Pattern Generalization  예측 결과를 테스트 하기 위해 관찰된 패턴의 모델, 규칙, 원리 또는 이론을 작성한다.
  • Parallelization             목표를 효율적 달성하기 위해 큰 작업을 여러개의 작은 작업으로 나뉘어 동시에 처리한다.
  • Simulation                 현실세계의 프로세스를 모방한 모델을 개발한다.


○ Computational Thinking Skill

  • 각종 도구들, 컴퓨터에서 문제 해결을 할 수 있게 문제를 공식화 한다.
  • 데이터를 논리적으로 정리하고 분석한다.
  • 모델과 시뮬레이션과 같이 추상화를 통해 데이터를 나타낸다.
  • 알고리즘적 사고를 통한 자동화된 솔루션
  • 해결책을 식별, 분석, 구현하여 각각의 단계들과 자원들에 대해서 가장 효율적, 효과적인 조합을 달성한다.
  • 해당 문제해결 프로세스를 일반화하여 더 많은 문제들에 반영할수 있게 법칙화 한다.

○ Computational Thinking 을 향상시키는 태도

  • 복잡성을 다룰수 있다는 자신감
  • 어려운 문제를 연구하고 작업할 수 있는 끈기
  • 애매모호함에 대한 관대함, 포용력 ( 제대로 된 답을 알지 못하는 모호함을 받아들이는 능력)
  • 답이 없는 문제를 다룰수 있는 능력 ( open ended problems )
  • 목표, 해결책에 달성하기 위해 다른 사람들과 일하고 소통할 수 있는 능력

○ 6가지 컴퓨팅 사고 연습

1. Analyzing the Effect of Computation

  • computational 기술로 가능할 수 있는 잠재적이거나 기존의 혁신에 대해 인지
  • 컴퓨팅 개발의 윤리적 내포된 의미를 인지
  • 사회에서 컴퓨팅 혁신의 영향을 인지
  • 디자인 결정의 내포된 의미를 분석
  • 컴퓨터, 전산의 산물에 대한 유용성 평가
  • 인간의 필요와 computational 기능성 간의 연결을 특성화
  • 관련 지적 재산권 문제에 대한 설명

2. Creating Computational Artifacts

  • 관련성있고 흥미로운 것으로 결과물을 만들기
  • 제시된 문제에 대한 해결책을 디자인해보기
  • 문제를 해결하기 위한 적절한 접근 방식을 선택하기
  • 미리 정의된 알고리즘을 적절히 사용하기
  • 프로그래밍 구조와 데이터 구조의 적절한 사용하기
  • 여러 기준을 사용하여 결과물(프로그램)을 평가하기
  • 에러의 수정과 파악하기
  • 적절한 기술을 사용하여 컴퓨팅 결과물(프로그램)을 개발해보기

3. Using Abstractions and Models

  • 데이터, 정보 및 지식이 전산 및 개발에서 어떻게 표현되는지에 대한 설명
  • 시뮬레이션을 이용하여 기존의 의문을 조사하고, 새로운 의문을 만든다.
  • 적절한 추상화 레벨에서 알고리즘 원칙을 선택한다.
  • 다른 수준의 추상화 사용
  • 모델, 시뮬레이션을 위한 디자인(설계) 명세 서술
  • 데이터 추상화를 사용
  • 모델링 되는 현상에 적합한 데이터 수집 또는 생성
  • 생성된 데이터와 경험적 샘플 비교

4. Analyzing Problems and Artifacts

  • 주어진 속성을 가지는 문제와 결과물(아티펙트)를 인지/확인
  • 문제를 해결할수 있는 tool 들을 비교
  • 제안된 솔루션이 가지는 문제점을 평가하고 해당 솔루션 사용이 가지는 내포된 의미
  • 적절하다고 정당화할수 있는 가능한 솔루션들에 대한 트레이드 오프를 분석
  • 프로그램 결과 분석
  • 문제 및 결과물의 특성을 분석

5. Communicating Processes and Results

  • 결과의 의미를 설명
  • 기술 또는 아티팩트(산물)의 영향을 설명
  • 컴퓨팅 산물의 행위 요약
  • 기술 또는 아티팩트(산물)에 대한 설명
  • 타당성과 적절성의 정당화

6. Working Effectively In Teams

  • 효과적인 팀워크 관행의 적용
  • 참가자들의 협업
  • 참가자들의 적극적 기여를 통한 아티팩트(결과물) 제작
  • 아티팩트(결과물) 구현과 기능, 사용을 묘사하는 문서



출처


https://edu.google.com/resources/programs/exploring-computational-thinking/#!ct-overview

https://csprinciples.cs.washington.edu/sixpractices.html

'기타' 카테고리의 다른 글

토큰 ( TOKEN )  (0) 2017.07.02
샘플 사이트들  (0) 2017.06.13
GIT에 특정 파일 제외하기  (0) 2017.05.10
구구단  (0) 2017.05.10
VMware 무한 NumLock 실행 중지시키기 ( Window 10 )  (3) 2017.01.17
Comments