메모

  • 마인드맵을 위한 프로그램
  • 순서도 기호
  • 알고리즘에 대한 설명

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) 등
    • 블록리 활용: 블록을 조립하면 자바스크립트, 파이썬 등의 텍스트 코드로 변환되어 실행됨
  • 조건문 프로그래밍