Knowledge Map
컴퓨팅 사고 본문
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
'기타' 카테고리의 다른 글
토큰 ( 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