메모
- 마인드맵을 위한 프로그램
- 순서도 기호
- 알고리즘에 대한 설명
1. 컴퓨팅 사고력 개요
1.1. 정의 및 배경
- 컴퓨팅 사고력(Computational Thinking, CT)
- 문제를 해결하기 위해 컴퓨터 과학의 개념과 원리를 차용하여 사고하는 방법
- 핵심 개념: 컴퓨터 과학자뿐만 아니라 누구나 갖춰야 할 보편적인 사고이자 기술이다. (읽기, 쓰기, 셈하기와 같은 필수 역량)
- 1980년 시무어 페퍼트(Seymour Papert) 교수가 처음 언급하였으며, 2006년 자넷 윙(Jeannette Wing) 교수가 대중화시켰다.
1.2. 필요성
- 4차 산업혁명 시대의 복잡한 문제를 해결하고 창의적·융합적 사고 능력을 키우기 위해 필수적이다.
- 단순한 코딩 기술이 아닌, 문제를 효율적으로 해결하는 절차와 역량을 의미한다.
1.3. 구성 요소
| Wing(2008) | CSTA & ISTE(2011) | Google for Education(2015) |
|---|---|---|
| - | 자료 수집 | 자료 수집 |
| - | 자료 분석 | 자료 분석 |
| - | - | 패턴 인식 |
| - | 자료 제시 | 자료 제시 |
| - | 문제 분해 | 분해 |
| 추상화 | 추상화 | 추상화 |
| - | - | 패턴 일반화 |
| - | 알고리즘 및 절차 | 알고리즘 디자인 |
| 자동화 | 자동화 | 자동화 |
| - | 병렬화 | 병렬화 |
| - | 시뮬레이션 | 시뮬레이션 |
- CSTA 및 영국 교육 기준
- 자료 수집, 분석, 표현
- 문제 분해
- 패턴 인식
- 추상화
- 알고리즘 및 절차
- 자동화, 시뮬레이션 등
2. 컴퓨팅 사고력과 코딩 교육
-
코딩(Coding)
- 해결하려는 문제를 절차와 방법으로 표현하는 과정으로, 컴퓨팅 사고력을 키우는 수단 중 하나
-
교육 방법
- EPL(교육용 프로그래밍 언어): 엔트리(Entry), 스크래치(Scratch) 등
- 피지컬 컴퓨팅: 로봇, 블록, 회로 등을 직접 만지며 학습
- 언플러그드(Unplugged): 컴퓨터 없이 놀이(보드게임, 퍼즐 등)를 통해 논리적 사고 학습
- 앱 인벤터(App Inventor): 블록 코딩으로 안드로이드 앱을 쉽게 개발하는 도구
3. 컴퓨팅 사고력의 단계별 상세 내용
3.1. 준비 단계: 자료 수집, 분석과 표현
-
자료 수집
- 인터넷 검색, 설문, 인터뷰, 센서, 공공데이터 등 다양한 경로로 문제 해결에 필요한 자료를 모으는 과정
-
자료 분석
- 수집된 자료의 통계적 특징을 찾고 의미를 파악하는 과정
-
자료 표현(Data Representation)
- 자료의 관계나 특성을 시각화하여 파악하기 쉽게 만드는 것
- 방법: 글, 차트, 그림, 표, 트리 구조(계층형), 그래프(네트워크형), 워드 클라우드 등 다양한 도식화 방법 사용
3.2. 시작 단계: 문제 분해
-
문제 분해(Decomposition)
- 개념: 복잡하고 큰 문제를 해결 가능한 작은 단위의 문제로 쪼개는 과정
- 효과: 작은 문제는 해결하기 쉽고 관리가 용이함
-
방법
- 분할과 정복(Divide & Conquer): 문제를 나눈(Divide) 뒤 해결(Conquer)하고 다시 합치는(Combine) 방식 (예: 이진 검색)
- 하향식(Top-down): 큰 부분에서 세부적인 부분으로 내려가며 분해 (예: 책의 목차, 마인드 맵)
3.3. 핵심 단계: 패턴 인식과 추상화
-
패턴 인식(Pattern Recognition)
- 분해된 문제들 사이에서 공통된 규칙, 경향, 유사성을 찾아내는 과정
- 복잡한 문제를 단순화하고 해결책을 예측하는 데 도움을 줌
-
추상화(Abstraction)
- 복잡한 자료나 현상에서 불필요한 세부 사항을 제거하고 핵심적인 특징(본질)만 뽑아내는 과정
- 일반화(Generalization): 핵심 요소만 간추려 모델을 만드는 것
- 사례:
- 지하철 노선도: 실제 지형/거리는 무시하고 역 간의 연결 관계라는 핵심 정보만 표현
- 커피 머신: 사용자에게는 조작 버튼만 보여주고(추상화), 관리자에게는 내부 구조를 보여줌
3.4. 구현 단계: 알고리즘과 자동화
-
알고리즘(Algorithm)
- 문제를 해결하기 위해 추상화된 핵심 원리를 일련의 절차(순서)로 표현한 것
- 유래: 페르시아 수학자 ‘알 콰리즈미’의 이름에서 유래
- 표현 방법: 자연어, 의사코드(Pseudo code), 순서도(Flow chart), 프로그래밍 언어 등
- 순서도 기호: 타원(시작/종료), 직사각형(처리), 마름모(판단), 평행사변형(입출력)
-
자동화(Automation)
- 설계된 알고리즘을 컴퓨터(프로그래밍 도구)를 통해 실제로 수행하게 하는 과정
- 도구: 스크래치, 엔트리, 블록리(Blockly), 파이썬(Python) 등
- 블록리 활용: 블록을 조립하면 자바스크립트, 파이썬 등의 텍스트 코드로 변환되어 실행됨
-
조건문 프로그래밍